<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

<author contact="mailto:zbrown@tumblerings.org">Zack Brown</author>

<headquote><a href="http://www.tux.org/lkml/">linux-kernel FAQ</a> |
<a href="http://www.tux.org/lkml/#s3-1">subscribe to linux-kernel</a> | <a
href="http://www.uwsg.indiana.edu/hypermail/linux/kernel/index.html">linux-kernel
Archives</a> | <a href="http://www.kernelnotes.org/">kernelnotes.org</a>
| <a href="http://lxr.linux.no/">LxR Kernel Source Browser</a> |
<a href="http://www.memalpha.cx/Linux/Kernel/">All Kernels</a> | <a
href="http://perso.wanadoo.es/xose/linux/linux_ports.html">Kernel
Ports</a> | <a
href="http://jungla.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html">Kernel
Docs</a> | <a href="http://members.aa.net/~swear/pedia/kernel.html">Gary's
Encyclopedia: Linux Kernel</a></headquote>

<issue num="95" date="27 Nov 2000 00:00:00 -0800" />

<intro>

<p>Many, many thanks go to Bj&#246;rn Eriksson for pointing out a serious bug in
the <a href="../people.html">People Indices</a>, where not all occurrences
of a given name were being found in a given issue section. This should make
a big difference throughout a lot of back issues as well. Thanks, Bj&#246;rn!</p>

</intro>

<stats posts="1035" size="4214" contrib="322" multiples="157" lastweek="139">

<person posts="44" size="109" who="Alan Cox " />
<person posts="43" size="163" who="Jeff Garzik " />
<person posts="24" size="127" who="Linus Torvalds " />
<person posts="23" size="118" who="Alexander Viro " />
<person posts="23" size="70" who="Keith Owens " />
<person posts="22" size="91" who=" (Eric W. Biederman)" />
<person posts="22" size="83" who="&quot;H. Peter Anvin&quot; " />
<person posts="20" size="64" who="Tigran Aivazian " />
<person posts="19" size="74" who="&quot;Adam J. Richter&quot; " />
<person posts="18" size="77" who="Andrea Arcangeli " />
<person posts="16" size="93" who="Andrew Morton " />
<person posts="15" size="59" who="Christoph Rohland " />
<person posts="14" size="83" who="David Woodhouse " />
<person posts="14" size="45" who="Peter Samuelson " />
<person posts="13" size="49" who="Russell King " />
<person posts="13" size="40" who="Dan Aloni " />
<person posts="13" size="39" who="Rik van Riel " />
<person posts="12" size="50" who="David Ford " />
<person posts="12" size="41" who="Andi Kleen " />
<person posts="12" size="31" who="Andre Hedrick " />
<person posts="11" size="49" who="Rasmus Andersen " />
<person posts="11" size="34" who="Pavel Machek " />
<person posts="10" size="35" who="Werner Almesberger " />
<person posts="10" size="28" who="&quot;David S. Miller&quot; " />
<person posts="9" size="37" who="&quot;Richard B. Johnson&quot; " />
<person posts="8" size="40" who="Szabolcs Szakacsits " />
<person posts="8" size="30" who="Andries Brouwer " />
<person posts="8" size="28" who="&quot;H. Peter Anvin&quot; " />
<person posts="8" size="27" who=" (Rogier Wolff)" />
<person posts="8" size="27" who="&quot;Jeff V. Merkey&quot; " />
<person posts="7" size="30" who="Vojtech Pavlik " />
<person posts="7" size="28" who="Anton Altaparmakov " />
<person posts="7" size="28" who="&quot;Mike A. Harris&quot; " />
<person posts="7" size="24" who="&quot;Petr Vandrovec&quot; " />
<person posts="7" size="22" who="David Hinds " />
<person posts="7" size="17" who="" />
<person posts="6" size="38" who="David Won " />
<person posts="6" size="18" who="James M " />
<person posts="6" size="16" who="" />
<person posts="5" size="55" who="=?iso-8859-2?Q?Pawe=B3_Kot?= " />
<person posts="5" size="51" who="Rusty Russell " />
<person posts="5" size="50" who="Brian Gerst " />
<person posts="5" size="44" who="Jorge Nerin " />
<person posts="5" size="33" who="Harald Koenig " />
<person posts="5" size="28" who="Brad Douglas " />
<person posts="5" size="28" who="&quot;LA Walsh&quot; " />
<person posts="5" size="26" who="&quot;Jeff V. Merkey&quot; " />
<person posts="5" size="22" who="Tobias Ringstrom " />
<person posts="5" size="18" who="&quot;J . A . Magallon&quot; " />
<person posts="5" size="15" who="&quot;Samium Gromoff&quot; " />
<person posts="5" size="15" who="" />
<person posts="5" size="15" who="Timur Tabi " />
<person posts="5" size="14" who="Mikael Pettersson " />
<person posts="5" size="13" who="Andrey Savochkin " />
<person posts="4" size="61" who="dalecki " />
<person posts="4" size="23" who="" />
<person posts="4" size="18" who="Gert Wollny " />
<person posts="4" size="17" who="" />
<person posts="4" size="16" who="&quot;Dunlap, Randy&quot; " />
<person posts="4" size="12" who="Bartlomiej Zolnierkiewicz " />
<person posts="4" size="12" who="Torsten Duwe " />
<person posts="4" size="11" who="&quot;Barry K. Nathan&quot; " />
<person posts="4" size="10" who="Ingo Molnar " />
<person posts="4" size="10" who="Tom Leete " />
<person posts="4" size="9" who="James Simmons " />
<person posts="4" size="9" who="" />
<person posts="3" size="26" who="Christoph Hellwig " />
<person posts="3" size="17" who="Jes Sorensen " />
<person posts="3" size="15" who=" (Nick Holloway)" />
<person posts="3" size="15" who="Lars Kellogg-Stedman " />
<person posts="3" size="14" who="&quot;Corisen&quot; " />
<person posts="3" size="11" who="Daniel Phillips " />
<person posts="3" size="11" who="Erik Mouw " />
<person posts="3" size="11" who="Andrzej Krzysztofowicz " />
<person posts="3" size="11" who="&quot;Mohammad A. Haque&quot; " />
<person posts="3" size="10" who="Robert Lynch " />
<person posts="3" size="9" who="Erik Andersen " />
<person posts="3" size="9" who="Mark Hindley " />
<person posts="3" size="9" who="Tim Waugh " />
<person posts="3" size="9" who="Juan " />
<person posts="3" size="9" who="Dennis " />
<person posts="3" size="9" who=" (Linus Torvalds)" />
<person posts="3" size="8" who="Greg KH " />
<person posts="3" size="8" who="Hans Grobler " />
<person posts="3" size="8" who="Chmouel Boudjnah " />
<person posts="3" size="7" who="Olaf Titz " />
<person posts="3" size="7" who="&quot;Albert D. Cahalan&quot; " />
<person posts="3" size="6" who="adrian " />
<person posts="2" size="56" who="Jakub Jelinek " />
<person posts="2" size="26" who="John Cavan " />
<person posts="2" size="18" who="Geert Uytterhoeven " />
<person posts="2" size="15" who="&quot;Sergey Volkoff&quot; " />
<person posts="2" size="12" who="Jasper Spaans " />
<person posts="2" size="11" who="Michael Rothwell " />
<person posts="2" size="10" who="Thomas Molina " />
<person posts="2" size="10" who="Stephen Rothwell " />
<person posts="2" size="10" who="Rene Rebe " />
<person posts="2" size="10" who="Marc Lehmann " />
<person posts="2" size="9" who="Miles Lane " />
<person posts="2" size="9" who="Neil Brown " />
<person posts="2" size="9" who="Anton Altaparmakov " />
<person posts="2" size="9" who="Matthias Juchem " />
<person posts="2" size="8" who="Guus Sliepen " />
<person posts="2" size="8" who="Alex Romosan " />
<person posts="2" size="8" who="David Lang " />
<person posts="2" size="8" who="Yann Dirson " />
<person posts="2" size="8" who="" />
<person posts="2" size="7" who="Pavel Rabel " />
<person posts="2" size="7" who="Dave Seff " />
<person posts="2" size="7" who="David Relson " />
<person posts="2" size="7" who="safemode " />
<person posts="2" size="7" who="Olaf Kirch " />
<person posts="2" size="7" who="David Schleef " />
<person posts="2" size="7" who="George Anzinger " />
<person posts="2" size="6" who="Dax Kelson " />
<person posts="2" size="6" who="&quot;M.H.VanLeeuwen&quot; " />
<person posts="2" size="6" who="Frank Davis " />
<person posts="2" size="6" who="J Sloan " />
<person posts="2" size="6" who="Matti Aarnio " />
<person posts="2" size="6" who="Andreas Dilger " />
<person posts="2" size="6" who="Steven Cole " />
<person posts="2" size="6" who="Ingo Oeser " />
<person posts="2" size="6" who="Frank van Maarseveen " />
<person posts="2" size="6" who="Ralf Baechle " />
<person posts="2" size="6" who="Adam Lazur " />
<person posts="2" size="6" who="Juri Haberland " />
<person posts="2" size="6" who="Roger Larsson " />
<person posts="2" size="6" who="Ion Badulescu " />
<person posts="2" size="6" who="Ian Grant " />
<person posts="2" size="6" who="Nishant Rao " />
<person posts="2" size="6" who="Chris Wedgwood " />
<person posts="2" size="5" who="Jan Niehusmann " />
<person posts="2" size="5" who="Steven Cole " />
<person posts="2" size="5" who="Andreas Jaeger " />
<person posts="2" size="5" who="Marcelo Tosatti " />
<person posts="2" size="5" who="Christoph Hellwig " />
<person posts="2" size="5" who="James A. Sutherland " />
<person posts="2" size="5" who="Igmar Palsenberg " />
<person posts="2" size="5" who="Rui Sousa " />
<person posts="2" size="5" who="Jan Kara " />
<person posts="2" size="5" who="Horst von Brand " />
<person posts="2" size="5" who="Vasil Kolev " />
<person posts="2" size="5" who="Francois romieu " />
<person posts="2" size="5" who="Chris Evans " />
<person posts="2" size="5" who="Jacob Luna Lundberg " />
<person posts="2" size="5" who="Xavier Bestel " />
<person posts="2" size="5" who="Michal Jaegermann " />
<person posts="2" size="5" who="Max Inux " />
<person posts="2" size="5" who="=?iso-8859-1?q?willy=20tarreau?= " />
<person posts="2" size="5" who="Frank van Maarseveen " />
<person posts="2" size="4" who=" (Miquel van Smoorenburg)" />
<person posts="2" size="4" who="Max Inux " />
<person posts="2" size="4" who="&quot;jim M.&quot; " />
<person posts="2" size="4" who="Gregory Maxwell " />
<person posts="2" size="4" who="Richard Henderson " />
<person posts="2" size="4" who="Bernd Eckenfels " />
<person posts="2" size="4" who="Anil Kumar Prasad " />
<person posts="1" size="50" who="Admin Mailing Lists " />
<person posts="1" size="36" who="" />
<person posts="1" size="19" who="" />
<person posts="1" size="12" who="Peter Rottengatter " />
<person posts="1" size="11" who="Jes Sorensen " />
<person posts="1" size="9" who="Will Day " />
<person posts="1" size="9" who="Dan Browning " />
<person posts="1" size="8" who="jeffrey " />
<person posts="1" size="7" who="&quot;Robert M. Love&quot; " />
<person posts="1" size="7" who="Jakob Sandgren " />
<person posts="1" size="6" who="Zdenek Kabelac " />
<person posts="1" size="5" who="Petko Manolov " />
<person posts="1" size="5" who="Dan Podeanu " />
<person posts="1" size="5" who="Kevin Shanahan " />
<person posts="1" size="5" who="" />
<person posts="1" size="5" who="Riley Williams " />
<person posts="1" size="5" who="Philippe Troin " />
<person posts="1" size="5" who="George R. Kasica " />
<person posts="1" size="5" who="Kurt Garloff " />
<person posts="1" size="5" who="Benjamin Herrenschmidt " />
<person posts="1" size="4" who="Arjan van de Ven " />
<person posts="1" size="4" who="Paul Clements " />
<person posts="1" size="4" who="Bryan Mayland " />
<person posts="1" size="4" who="Kaj-Michael Lang " />
<person posts="1" size="4" who="Jesse Pollard " />
<person posts="1" size="4" who="Corey Minyard " />
<person posts="1" size="4" who="Josue Emmanuel Amaro " />
<person posts="1" size="4" who="&quot;Rajiv Majumdar&quot; " />
<person posts="1" size="4" who="&quot;News Publishing&quot; " />
<person posts="1" size="4" who="&quot;Adam J. Richter&quot; " />
<person posts="1" size="4" who="Johannes Erdfelt " />
<person posts="1" size="4" who="&quot;Allen, David B&quot; " />
<person posts="1" size="4" who=" (Marlys Kohnke)" />
<person posts="1" size="4" who="Bill Triplett " />
<person posts="1" size="4" who="Pete Toscano " />
<person posts="1" size="4" who="&quot;Jon Burgess&quot; " />
<person posts="1" size="4" who="=?iso-8859-1?Q?Thomas_K=F6hler?= " />
<person posts="1" size="4" who="Eric Reischer " />
<person posts="1" size="4" who="&quot;Ying Chen/Almaden/IBM&quot; " />
<person posts="1" size="4" who="Ari Pollak " />
<person posts="1" size="3" who="Giacomo Mulas " />
<person posts="1" size="3" who="Martin Mares " />
<person posts="1" size="3" who="Tigran Aivazian " />
<person posts="1" size="3" who="Petr Vandrovec " />
<person posts="1" size="3" who="David Trcka " />
<person posts="1" size="3" who="&quot;Hen, Shmulik&quot; " />
<person posts="1" size="3" who="Helge Hafting " />
<person posts="1" size="3" who="&quot;\&quot;Mike O\\\\'Connor\&quot;&quot; " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Pekka Pietikainen " />
<person posts="1" size="3" who="Anders Eriksson " />
<person posts="1" size="3" who="Jan Dvorak " />
<person posts="1" size="3" who="Thorsten Kranzkowski " />
<person posts="1" size="3" who="Mike Dresser " />
<person posts="1" size="3" who="Roland Bauerschmidt " />
<person posts="1" size="3" who="Doug Alcorn " />
<person posts="1" size="3" who="Michael Peddemors " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="&quot;John D. Kim&quot; " />
<person posts="1" size="3" who="Camm Maguire " />
<person posts="1" size="3" who="&quot;Gnea&quot; " />
<person posts="1" size="3" who="Jan Kara " />
<person posts="1" size="3" who="Scott Murray " />
<person posts="1" size="3" who="Todd " />
<person posts="1" size="3" who="Donald Becker " />
<person posts="1" size="3" who="Steven Walter " />
<person posts="1" size="3" who="Jordan " />
<person posts="1" size="3" who="Peter Denison " />
<person posts="1" size="3" who="Andrew Ryan " />
<person posts="1" size="3" who="&quot;Michael H. Warfield&quot; " />
<person posts="1" size="3" who="David Riley " />
<person posts="1" size="3" who="Mikulas Patocka " />
<person posts="1" size="3" who="Jens Axboe " />
<person posts="1" size="3" who="=?iso-8859-2?Q?Jaros=B3aw_Bekas?= " />
<person posts="1" size="3" who="Malcolm Beattie " />
<person posts="1" size="3" who="Antony Suter " />
<person posts="1" size="3" who="Jean Wolter " />
<person posts="1" size="3" who="Pete Zaitcev " />
<person posts="1" size="3" who="linux-kernel " />
<person posts="1" size="3" who="&quot;Heupink, Mourik Jan C.&quot; " />
<person posts="1" size="3" who="Francis Galiegue " />
<person posts="1" size="3" who="Chng Tiak-Jung " />
<person posts="1" size="3" who="&quot;Arnaud S . Launay&quot; " />
<person posts="1" size="3" who="Marc Mutz " />
<person posts="1" size="3" who="" />
<person posts="1" size="3" who="Guest section DW " />
<person posts="1" size="2" who="Vesselin Atanasov " />
<person posts="1" size="2" who="Vincent " />
<person posts="1" size="2" who=" (Arjan van de Ven)" />
<person posts="1" size="2" who="David Feuer " />
<person posts="1" size="2" who="&quot;Chris Swiedler&quot; " />
<person posts="1" size="2" who="Florian Weimer " />
<person posts="1" size="2" who="Luca Montecchiani " />
<person posts="1" size="2" who=" (Jamie Fifield)" />
<person posts="1" size="2" who="Cezary Kaliszyk " />
<person posts="1" size="2" who="Kai Germaschewski " />
<person posts="1" size="2" who="dep " />
<person posts="1" size="2" who="Lars Gaarden " />
<person posts="1" size="2" who="&quot;Chris Swiedler&quot; " />
<person posts="1" size="2" who="Marcus Sundberg " />
<person posts="1" size="2" who="Pierre Etchemaite " />
<person posts="1" size="2" who="&quot;Luuk van der Duim&quot; " />
<person posts="1" size="2" who="Johannes Erdfelt " />
<person posts="1" size="2" who="&quot;Maciej W. Rozycki&quot; " />
<person posts="1" size="2" who="Gary Lawrence Murphy " />
<person posts="1" size="2" who="Matthias Andree " />
<person posts="1" size="2" who="&quot;Willis L. Sarka&quot; " />
<person posts="1" size="2" who="GOTO Masanori " />
<person posts="1" size="2" who="john slee " />
<person posts="1" size="2" who="Anton Blanchard " />
<person posts="1" size="2" who="J Sloan " />
<person posts="1" size="2" who="Olivier Galibert " />
<person posts="1" size="2" who="Martin Hoeller " />
<person posts="1" size="2" who="&quot;Aamir Dogar&quot; " />
<person posts="1" size="2" who="Bill Wendling " />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;Forever shall I be.&quot; " />
<person posts="1" size="2" who="Richard Henderson " />
<person posts="1" size="2" who="bert hubert " />
<person posts="1" size="2" who="Nicolas Pitre " />
<person posts="1" size="2" who="&quot;Stephen Gutknecht (linux-kernel)&quot; " />
<person posts="1" size="2" who="CaT " />
<person posts="1" size="2" who="James Stevenson " />
<person posts="1" size="2" who="John Levon " />
<person posts="1" size="2" who="&quot;Karnik, Rahul&quot; " />
<person posts="1" size="2" who=" (Christer Weinigel)" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="Drizzt " />
<person posts="1" size="2" who="John Summerfield " />
<person posts="1" size="2" who="Thomas Fuhrich " />
<person posts="1" size="2" who="Andrzej Krzysztofowicz " />
<person posts="1" size="2" who="Matthew Kirkwood " />
<person posts="1" size="2" who="Richard Jerrell " />
<person posts="1" size="2" who="Michel LESPINASSE " />
<person posts="1" size="2" who="Peter Svensson " />
<person posts="1" size="2" who="Mike Kravetz " />
<person posts="1" size="2" who=" (Arjan van de Ven)" />
<person posts="1" size="2" who="" />
<person posts="1" size="2" who="&quot;Matthew Carlisle&quot; " />
<person posts="1" size="2" who="(Chip Schweiss) " />
<person posts="1" size="2" who="Robert Cohen " />
<person posts="1" size="2" who="Pete Clements " />
<person posts="1" size="2" who="Eyal Lebedinsky " />
<person posts="1" size="2" who="Jeff Epler " />
<person posts="1" size="2" who="Zach Brown " />
<person posts="1" size="2" who="Cort Dougan " />
<person posts="1" size="2" who="Zhiruo Cao " />
<person posts="1" size="2" who="Sushil Agarwal " />
<person posts="1" size="2" who="Ben Ford " />
<person posts="1" size="2" who="Oleg Drokin " />
<person posts="1" size="2" who="Gianluca Anzolin " />
<person posts="1" size="2" who="&quot;W. Michael Petullo&quot; " />
<person posts="1" size="2" who="Andreas Osterburg " />
<person posts="1" size="2" who="&quot;Per Jessen&quot; " />
<person posts="1" size="2" who="=?utf-8?B?6LCi5bOw?= " />
<person posts="1" size="2" who="Michael Elizabeth Chastain " />
<person posts="1" size="2" who="Andrew Park " />
<person posts="1" size="2" who="&quot;Sean B. Estabrooks&quot; " />
<person posts="1" size="2" who="Jonathan Corbet " />
<person posts="1" size="2" who="herman dumont " />
<person posts="1" size="2" who="Fabrice Peix " />
<person posts="1" size="1" who="John McCutchan " />
<person posts="1" size="1" who="&quot;Andreas S. Kerber&quot; " />

</stats>

<section
  title="Status Of PCMCIA For 2.4"
  subject="[PATCH] pcmcia event thread. (fwd)"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.1/0941.html"
  posts="46"
  startdate="13 Nov 2000 05:08:50 -0800"
  enddate="18 Nov 2000 22:30:51 -0800"
>
<topic>PCI</topic>

<mention>Pavel Machek</mention>
<mention>Linus Torvalds</mention>

<p>David Woodhouse posted a patch to fix some PCMCIA stuff, and added, <quote
who="David Woodhouse">If the fact that i82365 and tcic are broken in 2.4
isn't on Ted's critical list, then I think it probably ought to have been -
and this should fix it.</quote> But Jeff Garzik replied, <quote who="Jeff
Garzik">It's purposefully not on Ted's critical list, the official line is
"use pcmcia_cs external package" if you need i82365 or tcic instead of yenta
AFAIK.</quote> Pavel Machek was a bit dismayed by this, and asked for
confirmation from Theodore Y. Ts'o. Ted in turn replied:</p>

<quote who="Theodore Y. Ts'o">

<p>It was Linus who said that Pcmcia crashing wasn't necessarily a critical
bug since 2.2 didn't have Pcmcia support in-kernel, and that for 2.4, it
was likely that most distributions would be best served to ship with David
Hind's external pcmcia driver.</p>

<p>That was several months ago, and perhaps things have changed.  But that
was I didn't spend time worrying about tracking PCMCIA bug reports; there
were a non-trivial number of them, and they were mostly of the form "doesn't
work on XXX hardware", "causes kernel oops on YYYY hardware", etc.</p>

</quote>

<p>David Hinds brought folks uptodate with, <quote who="David Hinds">Some of
these have been resolved, but some remain.  They have not been easy things to
decipher since they involve interactions between the PCI subsystem, PCMCIA,
and specific hardware.</quote> Alan Cox also replied to Ted, saying, <quote
who="Alan Cox">From a practical point of view that currently means 'delete
Linus tree pcmcia regardless of what you are doing' since the modules from
David Hinds and Linus pcmcia are not 100% binary compatible for all cases.
It isnt possible for anyone to ship a useful system with Linus pcmcia unless
the ISA stuff is fixed.</quote> Russell King pointed out that deleting
PCMCIA from the tree would leave ARM machines with no PCMCIA support, but
Alan replied, <quote who="Alan Cox">It would actually have made no difference
as said code didnt actually work anyway.</quote> A couple posts later, Russell
clarified:</p>

<quote who="Russell King">

<p>I was referring to the embedded-type ARM devices of which I have two sat in
front of me (both are manufactured within the past year so are "current") and
about half the platforms that "ARM Linux" covers have some form of PCMCIA.</p>

<p>Some ARM CPUs even have the PCMCIA controller embedded within them (look
at arch/arm/tools/mach-types - each entry containing a reference to SA1100
means that particular platform has the ability to use PCMCIA).</p>

<p>All of the drivers for these devices were written around the in-kernel
PCMCIA code.</p>

</quote>

<p>Linus Torvalds got into the act and there were some patch exchanges, but
nothing explicitly came out regarding whether the patches would be taken into
the main tree.</p>

</section>

<section
  title="Serious Dell 5000e Laptop Power Management Problems"
  subject="APM oops with Dell 5000e laptop"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.1/1014.html"
  posts="13"
  startdate="13 Nov 2000 14:54:37 -0800"
  enddate="18 Nov 2000 13:02:14 -0800"
>

<p>Dax Kelson reported, <quote who="Dax Kelson">I just got a Sceptre 6950
(also known as a Dell 5000e), I just installed Red Hat 7.0 on it, and got
an APM related oops at boot.</quote> He also noticed that this problem
had been reported before, though no solution had been found. Brad Douglas
replied, <quote who="Brad Douglas">We have an open ticket with Compal (the
manufacturer) about the problem.  The 32-bit Get Power Status (0AH) call
is broken.</quote> But Alan Cox added in response to Dax, <quote who="Alan
Cox">This is not a Linux problem</quote> [...] <quote who="Alan Cox">There
are no fixes. Return the faulty equipment to the vendor and suggest they
get a QA department.</quote> Dax replied, <quote who="Dax Kelson">Supposedly
there will be a BIOS update in the "future" to correct this problem,</quote>
and suggested that the kernel try to work around this problem, as it did
with other hardware problems, since a lot of folks were expected to buy that
laptop. Alan rejoined, <quote who="Alan Cox">And I hope many many of these
people demand BIOS upgrades or send them back.</quote> John D. Kim replied,
<quote who="John D. Kim">most of them will be running Windows, and Windows
seem to work fine with it.  So these companies aren't going to see too many
requests unless anyone who's even considering buying a new laptop complain
about this.  Compal provides no communication channel for the consumers, so we
have to go through the big companies like dell.  When I e-mailed dell's tech
support I got a response from a guy who had *no* idea what linux is.</quote>
Pavel Machek replied shortly, <quote who="Pavel Machek">Disable apm and be
done with that!  I do not see why this is a problem. Just add comment to
apm.c, there are more comments about b0rken machines in there.</quote></p>

</section>

<section
  title="Hand Editing '.config' Files"
  subject="newbie, 2.4.0-test11-pre4 no compile when CONFIG_AGP=y"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.1/1078.html"
  posts="4"
  startdate="14 Nov 2000 00:56:13 -0800"
  enddate="14 Nov 2000 06:43:54 -0800"
>

<p>Stephen Gutknecht had some problems building the kernel, and posted a
link to the <a href="http://www.roundsparrow.com/Linux/240oni815/">steps
he took</a> to do the compile. After looking this over, Keith Owens replied,
<quote who="Keith Owens">Hand editing the .config file gives undefined results.
Make all changes through menuconfig or xconfig.  The config system does lots
of work behind the scenes which is not peformed if you hand edit.</quote>
Jeff Garzik replied, <quote who="Jeff Garzik">Hand editing works just fine...
You just have to remember to run "make oldconfig" afterwards.</quote>
But Richard B. Johnson corrected, <quote who="Richard B. Johnson">Only
__sometimes__. There are "questions" that will be skipped even in `make
oldconfig` if some things are hand edited. Hand editing, followed by `make
oldconfig` works only if you know what you are doing.</quote> End Of Thread
(tm).</p>

</section>

<section
  title="NatSemi CS5530 Sound Support"
  subject="NatSemi CS5530 Sound Support"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.1/1405.html"
  posts="3"
  startdate="15 Nov 2000 17:05:29 -0800"
  enddate="15 Nov 2000 21:37:34 -0800"
>

<p>Matthew Carlisle asked if there were any plans to support a sound driver
for the Cyrix/NatSemi CS5530 chipset. Alan Cox replied, <quote who="Alan
Cox">None whatsoever. Use the sb16 driver.</quote> But Chng Tiak-Jung
added, <quote who="Chng Tiak-Jung">Go register as a developer on National
Semiconductor's website and you can download the source to the native audio
support for CS5530. However, my understanding is that this driver will only
work on system with BIOS that support VSA2, so you may need to upgrade your
BIOS first.</quote></p>

</section>

<section
  title="Large File Support"
  subject="Large File Support"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.2/0009.html"
  posts="4"
  startdate="15 Nov 2000 23:44:37 -0800"
  enddate="16 Nov 2000 06:24:58 -0800"
>

<p>Andreas S. Kerber asked if it was possible to handle 10G
files under Linux, and Andreas Jaeger gave a pointer to the <a
href="http://www.suse.de/~aj/linux_lfs.html">Large File Support In Linux</a>
page and replied, <quote who="Andreas Jaeger">Yes, with recent 2.4 kernels
or a patched 2.2 kernel - and a recompiled glibc.</quote></p>

</section>

<section
  title="Guide To Submitting Patches"
  subject="RFC: &quot;SubmittingPatches&quot; text"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.2/0151.html"
  posts="10"
  startdate="16 Nov 2000 13:32:40 -0800"
  enddate="18 Nov 2000 05:36:48 -0800"
>
<topic>BSD: FreeBSD</topic>
<topic>Compression</topic>
<topic>Disks: SCSI</topic>
<topic>Framebuffer</topic>
<topic>MAINTAINERS File</topic>
<topic>USB</topic>

<mention>Linus Torvalds</mention>
<mention>Gary Lawrence Murphy</mention>

<p>Jeff Garzik proposed:</p>

<quote who="Jeff Garzik">

<p>I'd like to put the following document into the kernel tree as
linux/Documentation/SubmittingPatches, and would like to get comments
on it.</p>

<p>I've likely left out a lot in Section 2... additions welcome.  I don't
want to get too domain-specific in section 2, but I would like to cover as
many "unwritten general rules" as possible.</p>

<p>

<b>

How to Get Your Change Into the Linux Kernel<br />
                or<br />
        The Unofficial Linus HOWTO

</b>    

</p>

<p>For a person or company who wishes to submit a change to the Linux kernel, the
process can sometimes be daunting if you're not familiar with "the system."
This text is a collection of suggestions which can greatly increase the
chances of your change being accepted.</p>

<p>

<b>

SECTION 1 - CREATING AND SENDING YOUR CHANGE

</b>

</p>

<ol>

<li>

<p>"diff -u"</p>

<p>Use "diff -u" or "diff -urN" to create patches.</p>

<p>All changes to the Linux kernel occur in the form of patches, as generated
by diff(1).  When creating your patch, make sure to create it in "unified
diff" format, as supplied by the '-u' argument to diff(1).  Patches should be
based in the root kernel source directory, not in any lower subdirectory.</p>

<p>To create a patch for a single file, it is often sufficient to do:</p>

<blockquote>

<p>

        SRCTREE=/usr/src/linux<br />
        MYFILE=drivers/net/mydriver.c<br />
&#160;<br />
        cd $SRCTREE<br />
        cp $MYFILE $MYFILE.orig<br />
        vi $MYFILE      # make your change<br />
        diff -u $MYFILE.orig $MYFILE &gt; /tmp/patch

</p>

</blockquote>

<p>To create a patch for multiple files, you should unpack a "vanilla",
or unmodified kernel source tree, and generate a diff against your own
source tree.  For example:</p>

<blockquote>

<p>

        MYSRC=/devel/linux-2.4<br />
&#160;<br />
        tar xvfz linux-2.4.0-test11.tar.gz<br />
        mv linux linux-vanilla<br />
        diff -urN linux-vanilla $MYSRC &gt; /tmp/patch

</p>

</blockquote>

</li>

<li>

<p>Describe your changes.</p>

<p>Describe the technical detail of the change(s) your patch includes.</p>

<p>Be as specific as possible.  The WORST descriptions possible include
things like "update driver X", "bug fix for driver X", or "this patch includes
updates for subsystem X.  Please apply."</p>

<p>If your description starts to get long, that's a sign that you probably
need to split up your patch.  See #3, next.</p>

</li>

<li>

<p>Separate your changes.</p>

<p>Separate each logical change into its own patch.</p>

<p>For example, if your changes include both bug fixes and performance
enhancements for a single driver, separate those changes into two or more
patches.  If your changes include an API update, and a new driver which uses
that new API, separate those into two patches.</p>

<p>On the other hand, if you make a single change to numerous files, group
those changes into a single patch.  Thus a single logical change is contained
within a single patch.</p>

<p>If one patch depends on another patch in order for a change to be
complete, that is OK.  Simply note "this patch depends on patch X" in your
patch description.</p>

</li>

<li>

<p>Select e-mail destination.</p>

<p>The arbiter of all Linux kernel changes is Linus Torvalds.  His e-mail
address is torvalds@transmeta.com.</p>

<p>He gets a lot of e-mail.  I mean a LOT.  So you want to do your best to
avoid sending him e-mail.  :)</p>

<p>Before sending your change to Linus, look through the MAINTAINERS file
and the source code, and determine if your change applies to a specific
subsystem of the kernel, with an assigned maintainer.  If so, e-mail that
person instead.</p>

<p>If no maintainer is listed, or the maintainer does not respond,
send your patch to the primary Linux kernel developer's mailing list,
linux-kernel@vger.kernel.org, in addition to Linus.  Most kernel developers
monitor this e-mail list, and can comment on your changes.</p>

</li>

<li>

<p>Select your CC (e-mail carbon copy) list.</p>

<p>Other kernel developers besides Linus need to be aware of your change,
so they want comment on it and offer code review and suggestions.</p>

<p>When e-mailing your change, typically the change is copied to the primary
Linux kernel developer's mailing list, linux-kernel@vger.kernel.org.
Other mailing lists are available for specific subsystems, such as USB,
framebuffer devices, the VFS, the SCSI subsystem, etc.</p>

<p>Even if the maintainer did not respond in step #4, make sure to ALWAYS
copy the maintainer when you change their code.</p>

<p>If your change is in any way large (conceptually, not byte size) or
controversial, you should copy linux-kernel@vger.kernel.org, so that the
change can be discussed.</p>

</li>

<li>

<p>No MIME, no links, no compression, no attachments.  Just plain text.</p>

<p>Linus and other kernel developers need to be able to read and comment on
the changes you are submitting.  It is important for a kernel developer to
be able to "quote" your changes, using standard e-mail tools, so that they
may comment on specific portions of your code.</p>

<p>For this reason, all patches should be submitting e-mail "inline".</p>

<p>Do not attach the patch as a MIME attachment, compressed or not.  Many
popular e-mail applications will not always transmit a MIME attachment as
plain text, making it impossible to comment on your code.  A MIME attachment
also takes Linus a bit more time to process, decreasing the likelihood of
your MIME-attached change being accepted.</p>

</li>

<li>

<p>E-mail size.</p>

<p>When sending patches to Linus, always follow step #6.</p>

<p>Large changes are not appropriate for mailing lists, and some maintainers.
If your patch, uncompressed, exceeds 40Kb in size, it is preferred that you
store your patch on an Internet-accessible server, and provide instead a URL
(link) pointing to your patch.</p>

</li>

<li>

<p>Name your kernel version.</p>

<p>It is important to note, either in the subject line or in the patch
description, the kernel version to which this patch applies.</p>

</li>

<li>

<p>Don't get discouraged.  Re-submit.</p>

<p>After you have submitted your change, be patient and wait.  If Linus likes
your change and applies it, it will appear in the next version of the kernel
that he releases.</p>

<p>However, if your change doesn't appear in the next version of the kernel,
there could be any number of reasons.  It's YOUR job to narrow down those
reasons, correct what was wrong, and submit your updated change.</p>

<p>It is quite common for Linus to "drop" your patch without comment.  That's
the nature of the system.  If he drops your patch, it could be due to</p>

<p>

<ul>

<li>A style issue (see section 2),</li>
<li>An e-mail formatting issue (re-read this section)</li>
<li>A technical problem with your change</li>
<li>He gets tons of e-mail, and yours got lost in the shuffle</li>
<li>You are being annoying (See Figure 1)</li>

</ul>

</p>

<p>When in doubt,</p>

</li>

</ol>

<p>

<b>

SECTION 2 - HINTS, TIPS, AND TRICKS

</b>

</p>

<p>This section lists many of the common "rules" associated with code
submitted to the kernel.  There are always exceptions... but you must have
a really good reason for doing so.  You could probably call this section
Linus Computer Science 101.</p>

<p>

<ol>

<li>

<p>Read Documentation/CodingStyle</p>

<p>Nuff said.  If your code deviates too much from this, it is likely to be
rejected without further review, and without comment.</p>

</li>

<li>

<p>#ifdefs are ugly</p>

<p>Code cluttered with ifdefs is difficult to read and maintain.  Don't do it.
Instead, put your ifdefs in a header, and conditionally define 'static inline'
functions, or macros, which are used in the code.  Let the compiler optimize
away the "no-op" case.</p>

<p>Simple example, of poor code:</p>

<blockquote>

<p>

        dev = init_etherdev (NULL, 0);<br />
        if (!dev)
<blockquote>
                return -ENODEV;
</blockquote>
        #ifdef CONFIG_NET_FUNKINESS
<blockquote>
                init_funky_net(dev);
</blockquote>
        #endif

</p>

</blockquote>

<p>Cleaned-up example:</p>

<p>(in header)</p>

<blockquote>

<p>

        #ifndef CONFIG_NET_FUNKINESS<br />
        static inline void init_funky_net (struct net_device *d) {}<br />
        #endif

</p>

</blockquote>

<p>(in the code itself)</p>

<blockquote>

<p>

        dev = init_etherdev (NULL, 0);<br />
        if (!dev)
<blockquote>
                return -ENODEV;
</blockquote>
        init_funky_net(dev);

</p>

</blockquote>

</li>

<li>

<p>'static inline' is better than a macro</p>

<p>Static inline functions are greatly preferred over macros.  They provide
type safety, have no length limitations, no formatting limitations, and
under gcc they are as cheap as macros.</p>

<p>Macros should only be used for cases where a static inline is clearly
suboptimal [there a few, isolated cases of this in fast paths], or where it
is impossible to use a static inline function [such as string-izing].</p>

<p>'static inline' is preferred over 'static __inline__', 'extern inline',
and 'extern __inline__'.</p>

</li>

<li>

<p>Don't over-design.</p>

<p>Don't try to anticipate nebulous future cases which may or may not be
useful:  "Make it as simple as you can, and no simpler"</p>

</li>

</ol>

</p>

</quote>

<p>There was general approval of this list, and some discussion of
improvement. Peter Samuelson pointed out, <quote who="Peter Samuelson">For
nontrivial changes you should basically never send them straight to Linus
(unless you yourself are a maintainer) -- first offer them up on mailing lists
and get feedback.  Tell people to look in MAINTAINERS for the appropriate list,
with possible CC to linux-kernel.</quote> But he added, <quote who="Peter
Samuelson">for simple typo corrections and such, Linus should probably get
a CC even if you are mailing another maintainer.  I.e. one less level of
indirection for the trivial stuff.</quote></p>

<p>He also added a tenth item, <quote who="Peter Samuelson">Make sure your
patch is up to date, and keep it that way.  Until it is accepted into the
main tree, you need to make sure it always applies without errors to the most
recent kernels, including pre-patches.  (Line offsets are OK; the 'patch'
command has no trouble with these.)  This can be a lot of work when the kernel
is in a volatile state, but it is good if you can make sure that you are
no more than 2 or 3 days behind "the latest".  Note that if you followed 3)
and your patch is small and self-contained, in many cases you won't need to
change it for weeks.</quote></p>

<p>And an eleventh, <quote who="Peter Samuelson">If Linus or others tell you a
change is stupid, chances are they have a point.  If you must argue your case,
use technical reasoning, not marketing.  Arguments like "but XXX OS does it
this way" carry very little weight -- instead, give us independent reasons why
"this way" is good.  Linux is not Solaris, NT, FreeBSD, or BeOS, and we like
it that way.  Arguments like "but XXX is required for better YYY compliance"
carry more weight, but you may still need to justify why YYY compliance
is important, and why it can't be achieved another way.  Arguments like
"but we have BIGNUM customers / software vendors / gov't agencies who will
deploy/support Linux as soon as it has feature XXX" are completely worthless,
unless you can show that those customers, vendors or agencies have solid
technical reasons to want feature XXX (as opposed to "but XXX OS does it
this way and we don't want to port our software" reasons).</quote></p>

<p>Elsewhere, Alan Cox suggested the title, "Care And Operation Of Your Linus
Torvalds". He also felt Jeff should include a reminder that <quote who="Alan
Cox">If your mailer is mangling patches then someone may ask you to resend
them using MIME.</quote> He also said, somewhat cryptically for those not
already in the know, <quote who="Alan Cox">Include Tigrans recommended
exclude list and info.</quote> Tigran Aivazian replied:</p>

<quote who="Tigran Aivazian">

<p>Alan Cox is very concise. I shall interpret :)
He refers to the dontdiff file I currently maintain on: <a
href="http://www.moses.uklinux.net/patches/dontdiff">http://www.moses.uklinux.net/patches/dontdiff</a>
and the command line to make the patch would become:</p>

<p>diff -urN -X dontdiif linux $MYSRC &gt; /tmp/mysrc.patch</p>

</quote>

<p>Gary Lawrence Murphy replied that he'd folded this information into the
<a href="http://kernelbook.sourceforge.net:80/wiki/?PreparingPatches">Kernel
Wiki</a> on sourceforge.</p>

</section>

<section
  title="Using Oracle On Latest Development Kernels"
  subject="ORACLE and 2.4-test10"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.2/0339.html"
  posts="9"
  startdate="17 Nov 2000 09:53:56 -0800"
  enddate="18 Nov 2000 09:28:44 -0800"
>

<p>Someone asked if there were any known issues with using Oracle-8.1.6.1R2
on the latest development kernels. Alan Cox replied, <quote who="Alan
Cox">SHM is resolved but O_SYNC is not yet fixed. You could therefore
easily lose your entire database.</quote> Jeff V. Merkey replied, <quote
who="Jeff V. Merkey">When we ported Oracle to NetWare, we found that making
changes to the core file systems in NetWare that Oracle needed would tank FS
performance, so we came up with something called direct FS, a separate File
System interface just for Oracle.</quote> Alan replied, <quote who="Alan
Cox">Its called O_DIRECT and kiovecs. Its already there. Much more generic
than an 'oraclefs'.</quote></p>

</section>

<section
  title="Status of 'vgacon'"
  subject="who's maintaning vgacon.c ?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.2/0347.html"
  posts="3"
  startdate="17 Nov 2000 10:21:34 -0800"
  enddate="17 Nov 2000 12:14:34 -0800"
>
<topic>Framebuffer</topic>

<p>Someone asked who currently maintained 'vgacon.c', and guessed it might be
James Simmons; but James replied, <quote who="James Simmons">I do some console
work but mostly for 2.5.X. Their is no offical maintainer for this sub system
as of now.</quote> Jeff Garzik agreed that no one currently maintained it,
but added, <quote who="Jeff Garzik">James has been hacking around in fbdev
for a while and knows his way around video stuff, so he has posted a few
patches for vgacon.</quote></p>

</section>

<section
  title="Some Explanation Of Modules Exporting Symbols"
  subject="EXPORT_NO_SYMBOLS vs. (null) ?"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.2/0450.html"
  posts="8"
  startdate="17 Nov 2000 21:15:35 -0800"
  enddate="19 Nov 2000 00:12:13 -0800"
>
<topic>Backward Compatibility</topic>

<p>Jeff Garzik asked, <quote who="Jeff Garzik">What is the difference between
a module that exports no symbols and includes EXPORT_NO_SYMBOLS reference,
and such a module that lacks EXPORT_NO_SYMBOLS?  Alan once upbraided me
for assuming they were the same :)</quote> Keith Owens explained, <quote
who="Keith Owens">When modules were first introduced, all symbols were
automatically exported.  For kernel 2.0 compatibility, a module without
EXPORT_NO_SYMBOLS actually exports everything.  There are flags on insmod to
override this default.  modutils 2.5 will remove this backwards compatibility,
no module will export symbols unless they are explicitly exported.</quote></p>

</section>

<section
  title="Some Developer Interaction"
  subject="[PATCH] x86 mm init cleanup"
  archive="http://www.uwsg.indiana.edu/hypermail/linux/kernel/0011.2/0494.html"
  posts="3"
  startdate="18 Nov 2000 08:22:46 -0800"
  enddate="18 Nov 2000 08:39:38 -0800"
>

<mention>Brian Gerst</mention>

<p>Brian Gerst posted a patch to 'arch/i386/mm/init.c' and Tigran Aivazian
replied, <quote who="Tigran Aivazian">while you were there, so close to
paging_init() why not also correct the wrong comment at the top of the
function? It talks about 0-4M pagetables whereas we really setup (see head.S)
0-8M.</quote> Brian posted a one-liner, and the thread ended.</p>

</section>

</kc>

