<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

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

<issue num="252" date="12 Feb 2004 00:00:00 -0800" />

<stats posts="889" size="4067" contrib="330" multiples="134" lastweek="162">

<person posts="88" size="524" who="Greg KH" />
<person posts="19" size="71" who="Timothy Miller" />
<person posts="18" size="57" who="Vojtech Pavlik" />
<person posts="15" size="49" who="Andrew Morton" />
<person posts="14" size="53" who="Linus Torvalds" />
<person posts="13" size="60" who="Martin Schlemmer" />
<person posts="11" size="49" who="Adrian Bunk" />
<person posts="11" size="46" who="Bartlomiej Zolnierkiewicz" />
<person posts="11" size="36" who="&quot;H. Peter Anvin&quot;" />
<person posts="10" size="36" who="john stultz" />
<person posts="10" size="29" who="Geert Uytterhoeven" />
<person posts="9" size="44" who="Rusty Russell" />
<person posts="9" size="32" who="John Bradford" />
<person posts="9" size="26" who="Pavel Machek" />
<person posts="9" size="24" who="Jeff Garzik" />
<person posts="8" size="41" who="&quot;Wiran, Francis&quot;" />
<person posts="8" size="35" who="Roland McGrath" />
<person posts="8" size="34" who="Con Kolivas" />
<person posts="8" size="27" who="Ingo Molnar" />
<person posts="8" size="27" who="Petri Kaukasoina" />
<person posts="8" size="24" who=" (=?iso-8859-1?q?M=E5ns_Rullg=E5rd?=)" />
<person posts="8" size="22" who="&quot;Matthias Urlichs&quot;" />
<person posts="7" size="97" who="Matthew Wilcox" />
<person posts="7" size="41" who="Thomas Davis" />
<person posts="7" size="26" who="timothy parkinson" />
<person posts="7" size="25" who="&quot;Randy.Dunlap&quot;" />
<person posts="7" size="23" who="Andries Brouwer" />
<person posts="7" size="22" who="Jean Delvare" />
<person posts="7" size="20" who="Jens Axboe" />
<person posts="7" size="20" who="Matt Mackall" />
<person posts="6" size="53" who="Willem Riede" />
<person posts="6" size="43" who="Mark Haverkamp" />
<person posts="6" size="29" who="Lincoln Dale" />
<person posts="6" size="29" who="Frodo Looijaard" />
<person posts="6" size="29" who=" (Eric W. Biederman)" />
<person posts="6" size="25" who="Gene Heskett" />
<person posts="6" size="24" who="Marcelo Tosatti" />
<person posts="6" size="22" who="OGAWA Hirofumi" />
<person posts="6" size="21" who="David Weinehall" />
<person posts="6" size="20" who="Christian Unger" />
<person posts="5" size="47" who="DaMouse Networks" />
<person posts="5" size="26" who="&quot;David S. Miller&quot;" />
<person posts="5" size="21" who="Hollis Blanchard" />
<person posts="5" size="21" who="JG" />
<person posts="5" size="17" who="Bill Davidsen" />
<person posts="5" size="16" who="(Valdis.Kletnieks)" />
<person posts="5" size="15" who="Russell King" />
<person posts="5" size="13" who="Andi Kleen" />
<person posts="5" size="12" who="Jonas Diemer" />
<person posts="5" size="12" who="Daniel Jacobowitz" />
<person posts="4" size="35" who="Deepak Saxena" />
<person posts="4" size="32" who="Andreas Gruenbacher" />
<person posts="4" size="19" who="Warren Togami" />
<person posts="4" size="15" who="Nick Piggin" />
<person posts="4" size="14" who="Len Brown" />
<person posts="4" size="14" who="Adam Belay" />
<person posts="4" size="14" who="Charles Shannon Hendrix" />
<person posts="4" size="14" who="&quot;J.A. Magallon&quot;" />
<person posts="4" size="12" who="Mans Matulewicz" />
<person posts="4" size="12" who="Catalin BOIE" />
<person posts="4" size="12" who="Joseph Pingenot" />
<person posts="4" size="12" who="bert hubert" />
<person posts="4" size="11" who="Matthias Andree" />
<person posts="3" size="61" who="&quot;Durairaj, Sundarapandian&quot;" />
<person posts="3" size="52" who=" (Joshua Kwan)" />
<person posts="3" size="31" who="YOSHIFUJI Hideaki / =?iso-2022-jp?B?GyRCNUhGIzFRTEAbKEI=?=" />
<person posts="3" size="18" who="Hugh Dickins" />
<person posts="3" size="17" who="Helge Hafting" />
<person posts="3" size="13" who="&quot;Brown, Len&quot;" />
<person posts="3" size="12" who="Marcel Holtmann" />
<person posts="3" size="11" who="David =?iso-8859-1?q?Mart=EDnez=20Moreno?=" />
<person posts="3" size="11" who="&quot;Maciej W. Rozycki&quot;" />
<person posts="3" size="10" who="Jim McCloskey" />
<person posts="3" size="10" who="Martin Mares" />
<person posts="3" size="10" who="&quot;Kevin P. Fleming&quot;" />
<person posts="3" size="9" who="&quot;Mark Williams (MWP)&quot;" />
<person posts="3" size="9" who="Neil Brown" />
<person posts="3" size="8" who="=?koi8-r?Q?=22?=Andrey Borzenkov=?koi8-r?Q?=22=20?=" />
<person posts="3" size="8" who="Bernd Schubert" />
<person posts="3" size="8" who="Sam Ravnborg" />
<person posts="3" size="8" who="(viro)" />
<person posts="3" size="7" who="&quot;James H. Cloos Jr.&quot;" />
<person posts="3" size="7" who="Esben Stien" />
<person posts="3" size="7" who="Stephen Anthony" />
<person posts="2" size="83" who="Max Asbock" />
<person posts="2" size="46" who="Amit Gurdasani" />
<person posts="2" size="32" who="&quot;claudiu b&quot;" />
<person posts="2" size="30" who="Kevin Shanahan" />
<person posts="2" size="20" who="Huw Rogers" />
<person posts="2" size="19" who="=?ISO-8859-1?Q?Luis_Miguel_Garc=EDa?=" />
<person posts="2" size="17" who="Jake Moilanen" />
<person posts="2" size="14" who="Michael Jonsson" />
<person posts="2" size="12" who="Markus Schaber" />
<person posts="2" size="9" who="Patrick Mansfield" />
<person posts="2" size="9" who="Kai Militzer" />
<person posts="2" size="9" who="Theodore Ts'o" />
<person posts="2" size="8" who=" (Miklos Szeredi)" />
<person posts="2" size="8" who="Tom Sightler" />
<person posts="2" size="8" who="Steinar Hauan" />
<person posts="2" size="8" who="&quot;Michael V. David&quot;" />
<person posts="2" size="7" who="&quot;Bob Nelson&quot;" />
<person posts="2" size="7" who="&quot;Yu, Luming&quot;" />
<person posts="2" size="7" who="Roland Dreier" />
<person posts="2" size="7" who="Andrey Borzenkov" />
<person posts="2" size="7" who="Francois Romieu" />
<person posts="2" size="7" who="&quot;Leonid Grossman&quot;" />
<person posts="2" size="7" who="Mike Gabriel" />
<person posts="2" size="6" who="Peter Osterlund" />
<person posts="2" size="6" who="Andreas Hartmann" />
<person posts="2" size="6" who="&quot;Richard B. Johnson&quot;" />
<person posts="2" size="6" who="Anders Karlsson" />
<person posts="2" size="6" who="Grant Grundler" />
<person posts="2" size="6" who="markus reichelt" />
<person posts="2" size="6" who="Carl-Daniel Hailfinger" />
<person posts="2" size="6" who=" (bill davidsen)" />
<person posts="2" size="6" who="Roger Larsson" />
<person posts="2" size="5" who="BlaisorBlade" />
<person posts="2" size="5" who="Andreas Jellinghaus" />
<person posts="2" size="5" who="Andreas Metzler" />
<person posts="2" size="5" who="Dave Jones" />
<person posts="2" size="5" who="Bart Samwel" />
<person posts="2" size="5" who="Gerd Knorr" />
<person posts="2" size="5" who="&quot;Mark M. Hoffman&quot;" />
<person posts="2" size="5" who="Arnd Bergmann" />
<person posts="2" size="5" who="Rafael Pereira" />
<person posts="2" size="5" who="Jeremy Jackson" />
<person posts="2" size="5" who="&quot;Jinu M.&quot;" />
<person posts="2" size="4" who="Julien Rebetez" />
<person posts="2" size="4" who="Erik Mouw" />
<person posts="2" size="4" who="jshankar" />
<person posts="2" size="4" who="&quot;olivier.serrano&quot;" />
<person posts="2" size="4" who="Paul Mackerras" />
<person posts="2" size="4" who="&quot;P. Christeas&quot;" />
<person posts="2" size="3" who="=?iso-8859-1?Q?Markus_H=E4stbacka?=" />
<person posts="1" size="32" who="Roland Kuhn" />
<person posts="1" size="26" who="Shailabh Nagar" />
<person posts="1" size="25" who="Komuro" />
<person posts="1" size="23" who="Adam Koszela" />
<person posts="1" size="20" who="(haiquy)" />
<person posts="1" size="19" who="&quot;Li, Shaohua&quot;" />
<person posts="1" size="18" who="Peter Hartzler" />
<person posts="1" size="18" who="Bradley Chapman" />
<person posts="1" size="13" who="Tobias Bengtsson" />
<person posts="1" size="11" who="Michael Hunold" />
<person posts="1" size="9" who="Mark Borgerding" />
<person posts="1" size="9" who="Tim Connors" />
<person posts="1" size="9" who="Todor Todorov" />
<person posts="1" size="9" who="Wojciech 'Sas' Cieciwa" />
<person posts="1" size="8" who="Dmitry Torokhov" />
<person posts="1" size="8" who="Sasa Ostrouska" />
<person posts="1" size="7" who="Michael A Halcrow" />
<person posts="1" size="6" who="Tim Cambrant" />
<person posts="1" size="6" who="Jean Tourrilhes" />
<person posts="1" size="5" who="Andi Kleen" />
<person posts="1" size="5" who="Mike Anderson" />
<person posts="1" size="5" who="Stephen Clark" />
<person posts="1" size="5" who="&quot;Martin J. Bligh&quot;" />
<person posts="1" size="5" who="&quot;Mukker, Atul&quot;" />
<person posts="1" size="5" who="Jesse Pollard" />
<person posts="1" size="5" who="&quot;Yang, Chen&quot;" />
<person posts="1" size="4" who="&quot;Alexander Y. Fomichev&quot;" />
<person posts="1" size="4" who="Santiago Garcia Mantinan" />
<person posts="1" size="4" who="Vladimir Kondratiev" />
<person posts="1" size="4" who="Jean-Luc Cooke" />
<person posts="1" size="4" who="&quot;Nakajima, Jun&quot;" />
<person posts="1" size="4" who="Fabrice Bellet" />
<person posts="1" size="4" who="Eyal Lebedinsky" />
<person posts="1" size="4" who="Ian Hastie" />
<person posts="1" size="4" who="Tim Connors" />
<person posts="1" size="4" who="Olaf Hering" />
<person posts="1" size="4" who="Chris Friesen" />
<person posts="1" size="4" who="(linux)" />
<person posts="1" size="4" who="Christoph Stueckjuergen" />
<person posts="1" size="3" who="Roman Kagan" />
<person posts="1" size="3" who="Jan-Benedict Glaw" />
<person posts="1" size="3" who="Eddie Kohler" />
<person posts="1" size="3" who="Jan Harkes" />
<person posts="1" size="3" who="&quot;Christian Hesse&quot;" />
<person posts="1" size="3" who="&quot;Sergey S. Kostyliov&quot;" />
<person posts="1" size="3" who="Steve Youngs" />
<person posts="1" size="3" who="root" />
<person posts="1" size="3" who="David Gibson" />
<person posts="1" size="3" who="Jose Luis Domingo Lopez" />
<person posts="1" size="3" who=" (John)" />
<person posts="1" size="3" who="Marco Roeland" />
<person posts="1" size="3" who="Patrick Caulfield" />
<person posts="1" size="3" who="Hugo Mills" />
<person posts="1" size="3" who="Mourn" />
<person posts="1" size="3" who="Robert Love" />
<person posts="1" size="3" who="&quot;Donald H. Gudehus&quot;" />
<person posts="1" size="3" who="Brice Goglin" />
<person posts="1" size="3" who="&quot;Robert M. Hyatt&quot;" />
<person posts="1" size="3" who="Roberto Sanchez" />
<person posts="1" size="3" who="Micha Feigin" />
<person posts="1" size="3" who="Tim Connors" />
<person posts="1" size="3" who="matthew patton" />
<person posts="1" size="3" who="jw schultz" />
<person posts="1" size="3" who="&quot;Yury V. Umanets&quot;" />
<person posts="1" size="3" who=" (Walter Harms)" />
<person posts="1" size="3" who="&quot;David Schwartz&quot;" />
<person posts="1" size="3" who="(mcornils)" />
<person posts="1" size="3" who="Kay Sievers" />
<person posts="1" size="3" who="Yoichi Yuasa" />
<person posts="1" size="3" who="Stephen Smoogen" />
<person posts="1" size="3" who="Erik Hensema" />
<person posts="1" size="3" who="Ben Schofield" />
<person posts="1" size="3" who="Herbert Xu" />
<person posts="1" size="3" who="Troy Benjegerdes" />
<person posts="1" size="3" who="&quot;J. Bruce Fields&quot;" />
<person posts="1" size="3" who="hanasaki" />
<person posts="1" size="3" who="=?koi8-r?Q?=22?=Bansh=?koi8-r?Q?=22=20?=" />
<person posts="1" size="3" who="David =?iso-8859-15?q?Mart=EDnez=20Moreno?=" />
<person posts="1" size="3" who="Clemens Schwaighofer" />
<person posts="1" size="3" who="Torrey Hoffman" />
<person posts="1" size="3" who="Martin Hicks" />
<person posts="1" size="3" who=" (Jesse Barnes)" />
<person posts="1" size="3" who="&quot;Marcel J.E. Mol&quot;" />
<person posts="1" size="3" who="Willy Tarreau" />
<person posts="1" size="3" who="&quot;Tolentino, Matthew E&quot;" />
<person posts="1" size="3" who="Alex Williamson" />
<person posts="1" size="3" who="Christoph Hellwig" />
<person posts="1" size="3" who="Glen Turner" />
<person posts="1" size="3" who="Adam Sampson" />
<person posts="1" size="3" who="john moser" />
<person posts="1" size="3" who="Mike Fedyk" />
<person posts="1" size="3" who="Kieran" />
<person posts="1" size="2" who="Mikael Pettersson" />
<person posts="1" size="2" who="Andy Isaacson" />
<person posts="1" size="2" who="Kallol Biswas" />
<person posts="1" size="2" who="Stephen Smalley" />
<person posts="1" size="2" who="Duncan Sands" />
<person posts="1" size="2" who="Markus =?ISO-8859-1?Q?H=E4stbacka?=" />
<person posts="1" size="2" who="David Hinds" />
<person posts="1" size="2" who="=?iso-8859-1?Q?Arnd_Bergmann?=" />
<person posts="1" size="2" who="Urban Widmark" />
<person posts="1" size="2" who="IWAMOTO Toshihiro" />
<person posts="1" size="2" who="ioana alexandrescu" />
<person posts="1" size="2" who="&quot;Martin Bogomolni&quot;" />
<person posts="1" size="2" who="Thomas Sailer" />
<person posts="1" size="2" who="&quot;Dan Podeanu&quot;" />
<person posts="1" size="2" who="Alan" />
<person posts="1" size="2" who="Florian Weimer" />
<person posts="1" size="2" who="Dan Lenski" />
<person posts="1" size="2" who="David Ford" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Ari_Mittil=E4?=" />
<person posts="1" size="2" who="&quot;Michal Semler (volny.cz)&quot;" />
<person posts="1" size="2" who="Lai Zit Seng" />
<person posts="1" size="2" who="Paul Jackson" />
<person posts="1" size="2" who="Frank Gevaerts" />
<person posts="1" size="2" who="Ulrich Weigand" />
<person posts="1" size="2" who="Mathieu Allard" />
<person posts="1" size="2" who="&quot;Maciej Soltysiak&quot;" />
<person posts="1" size="2" who="Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?=" />
<person posts="1" size="2" who="Junio C Hamano" />
<person posts="1" size="2" who="Adrian Cox" />
<person posts="1" size="2" who="Jos Hulzink" />
<person posts="1" size="2" who="Jamie Lokier" />
<person posts="1" size="2" who="=?ISO-8859-1?Q?Nicol=E1s_Lichtmaier?=" />
<person posts="1" size="2" who="Florian Engelhardt" />
<person posts="1" size="2" who="george young" />
<person posts="1" size="2" who="Stefan Smietanowski" />
<person posts="1" size="2" who="Alan Cox" />
<person posts="1" size="2" who="Christophe Saout" />
<person posts="1" size="2" who="Tomas Zvala" />
<person posts="1" size="2" who="James Schmidt" />
<person posts="1" size="2" who="kallol biswas" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="Matt Domsch" />
<person posts="1" size="2" who="Daniel Pittman" />
<person posts="1" size="2" who="Vincenzo Ciaglia" />
<person posts="1" size="2" who="Matthew Dobson" />
<person posts="1" size="2" who=" (Linda Dunaphant)" />
<person posts="1" size="2" who="Andrew Gray" />
<person posts="1" size="2" who="Ognen Duzlevski" />
<person posts="1" size="2" who="=?iso-8859-1?q?Steve=20Kieu?=" />
<person posts="1" size="2" who="Rudo Thomas" />
<person posts="1" size="2" who="Stian Jordet" />
<person posts="1" size="2" who="Greg Norris" />
<person posts="1" size="2" who="Nikita Danilov" />
<person posts="1" size="2" who="Jean Revertera" />
<person posts="1" size="2" who="David Ford" />
<person posts="1" size="2" who="Herbert Poetzl" />
<person posts="1" size="2" who="Marc-Christian Petersen" />
<person posts="1" size="2" who="Nigel Cunningham" />
<person posts="1" size="2" who="&quot;Miquel van Smoorenburg&quot;" />
<person posts="1" size="2" who="Bob Gill" />
<person posts="1" size="2" who="Derek Foreman" />
<person posts="1" size="2" who="James Bottomley" />
<person posts="1" size="2" who=" (Arthur Othieno)" />
<person posts="1" size="2" who="Matthias Hentges" />
<person posts="1" size="2" who="Tim Hockin" />
<person posts="1" size="2" who="Xose Vazquez Perez" />
<person posts="1" size="2" who="&quot;Eric Von York Sr.&quot;" />
<person posts="1" size="2" who="Zwane Mwaikambo" />
<person posts="1" size="2" who="Matt Bernstein" />
<person posts="1" size="2" who="&quot;Prakash K. Cheemplavam&quot;" />
<person posts="1" size="2" who="Kiko Piris" />
<person posts="1" size="2" who="0xLJC0EED3C2z/0xLJB7FECEF1C6F7CFB5CDB3D1D0B7A2B4A6z/0xLJC1AACFEBz" />
<person posts="1" size="2" who="Henti Smith" />
<person posts="1" size="2" who="Felipe Alfaro Solana" />
<person posts="1" size="2" who="Flexy" />
<person posts="1" size="2" who="Chris Meadors" />
<person posts="1" size="2" who="&quot;Dan McGrath&quot;" />
<person posts="1" size="2" who="Emmanuel Guiton" />
<person posts="1" size="2" who="Jes Sorensen" />
<person posts="1" size="2" who="Michael Knigge" />
<person posts="1" size="2" who="Rus Foster" />
<person posts="1" size="2" who="Michael Schierl" />
<person posts="1" size="2" who="Brian Davids" />
<person posts="1" size="2" who="Jan Kokoska" />
<person posts="1" size="2" who="Dan Christian" />
<person posts="1" size="2" who="Patrick Caulfield" />
<person posts="1" size="2" who="Carlo Salinari" />
<person posts="1" size="2" who="Urban Widmark" />
<person posts="1" size="2" who="Seiichi Nakashima" />
<person posts="1" size="2" who="&quot;Emma Driessen&quot;" />
<person posts="1" size="2" who="Krzysztof Halasa" />
<person posts="1" size="2" who="(Andries.Brouwer)" />
<person posts="1" size="2" who="Rui Saraiva" />
<person posts="1" size="2" who="John Cherry" />
<person posts="1" size="2" who="Mariusz Mazur" />
<person posts="1" size="2" who="&quot;Darcy Fouche&quot;" />
<person posts="1" size="2" who="(Andries.Brouwer)" />
<person posts="1" size="1" who="Dan Brow" />
<person posts="1" size="1" who="backblue" />
<person posts="1" size="1" who="Attila BODY" />
<person posts="1" size="1" who="Mike Ni" />
<person posts="1" size="1" who="john cherry" />
<person posts="1" size="1" who="(rhowarth)" />

</stats>

<section
  title="Linux 2.6.2-rc2 Released"
  subject="Linux v2.6.2-rc2"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1i58Q-38t-3%40gated-at.bofh.it"
  posts="9"
  startdate="25 Jan 2004 18:48:24 -0800"
  enddate="30 Jan 2004 13:41:05 -0800"
>
<topic>Kernel Release Announcement</topic>
<topic>USB</topic>
<topic>Version Control</topic>

<p>Linus Torvalds announced Linux 2.6.2-rc2, saying:</p>

<quote who="Linus Torvalds">

<p>It's being uploaded right now, and the BK trees should already be
uptodate.</p>

<p>There's a x86-64 update and IRDA updates here, and a number of USB storage
fixes. The rest is pretty small.</p>

</quote>

</section>

<section
  title="Ongoing FAT Filesystem Support"
  subject="PATCH to access old-style FAT fs"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1ij28-6Kg-5%40gated-at.bofh.it"
  posts="17"
  startdate="26 Jan 2004 09:39:49 -0800"
  enddate="01 Feb 2004 06:51:11 -0800"
>
<topic>FS: FAT</topic>

<p>Frodo Looijaard said:</p>

<quote who="Frodo Looijaard">

<p>I have created and attached a new version of my old-style FAT filesystem
patch, this time for the 2.6.0 kernel. It can also be found on <a
href="http://debian.frodo.looijaard.name/">http://debian.frodo.looijaard.name/</a>.</p>

<p>Some old implementation of the FAT standard mark the end of the directory
file index by inserting a filename beginning with a byte 00.  All entries
after it should be ignored, even though they are not marked as deleted. At
least some EPOC releases (an OS used on Psion PDAs, for example) still use
this policy.</p>

<p>The included patch adds the `oldfat' mount option for FAT-based
filesystems. Without it, doing an 'ls' on old-style FATs will show a lot of
garbage, both old files that have been deleted, and bogus entries that have
never been filled.</p>

<p>If you do not use the `oldfat' mount option, FAT filesystems should work
exactly as before. I have been very careful not to change the logic of the
FAT driver, in order not to break anything. In fact, the patch could probably
be optimized a bit, but I wanted to keep it as risk-free as possible.</p>

<p>It should be safe to mount a normal FAT filesystem with the `oldfat' mount
option. I have been doing that on and off with some local Win98 filesystems
without any trouble. Actually, the only reason I have introduced the mount
option is to keep the new logic strictly seperated from the old driver.</p>

<p>All feedback would be very welcome. This patch is released under the
GPL. Feel free to include it in stock kernels.</p>

<p>Debian users can install the .deb on <a
href="http://debian.frodo.looijaard.name">http://debian.frodo.looijaard.name</a>
and have the patch applied automatically when compiling 2.6.x kernels.</p>

</quote>

<p>H. Peter Anvin replied, <quote who="H. Peter Anvin">It's not just "old
implementations" -- it's the spec.</quote> He went on, <quote who="H. Peter
Anvin">After reaching a filename beginning with 00, no further data should
be assumed to be in that filesystem.  MS-DOS itself would only do that when
formatting the filesystem, so *all* the subsequent entries would be assumed to
start with 00, but that doesn't really seem to be to spec.</quote> Hirofumi
Ogawa replied:</p>

<quote who="Hirofumi Ogawa">

<p>The new cluster for directory entries must be initialized by 0x00.
And, when the directory entry is deleted, the name[0] is updated by 0xe5
not 0x00.</p>

<p>So, if the name[0] is 0x00, it after, all bytes in cluster is 0x00.</p>

<p>The fat driver can stop at name[0] == 0x00, but this is just optimization.
The behavior shouldn't change by this.</p>

</quote>

<p>H. Peter replied:</p>

<quote who="H. Peter Anvin">

<p>I looked at the spec, and yes, that is how the spec reads:</p>

<p>If DIR_Name[0] == 0x00, then the directory entry is free (same as for
0xE5), and there are no allocated directory entries after this one (all of
the DIR_Name[0] bytes in all of the entries after this one are also set to
0). The special 0 value, rather than the 0xE5 value, indicates to FAT file
system driver code that the rest of the entries in this directory do not
need to be examined because they are all free.</p>

<p>I guess the original poster has found filesystems which have a 0 followed
by garbage.  In cases like that, the cardinal rule for FAT is WWDD (What
Would DOS Do)... since I'm pretty sure DOS stops examining at that point,
we should do the same.</p>

<p>It's the same thing as with using 0xF8 for ending clusters; it's correct
according to spec, but WWDD says 0xFF is the right thing.</p>

</quote>

<p>Hirofumi replied:</p>

<quote who="Hirofumi Ogawa">

<p>The new cluster for directory entries must be initialized by 0x00.
This is required by spec.</p>

<p>If cluster has garbage, the fat driver needs to do such the following
part. Stop at DIR_Name[0] == 0 is not enough, and I don't think DOS does
this.</p>

</quote>

<p>Frodo replied that if the new cluster for directory entries really did
require an 0x00 intialization, it meant that EPOC filesystems violated that
specification. He added, <quote who="Frodo Looijaard">As I said, I *think*
it is safe to have my patch always applied (that is, stop when DIR_Name[0]
== 0, and be careful to add a new DIR_Name[0] = 0 entry when new entries
are added at the back). It would conform to the standard.  But I would not
really be surprised if there was yet another FAT implementation somewhere
out there that breaks the standard in some other subtle way, which works
now but exhibits problems with my patch.  That is why I made it a mount
option.</quote> Hirofumi replied:</p>

<quote who="Hirofumi Ogawa">

<p>"stop when DIR_Name[0] == 0" should be added after cleanup. The option
is not needed.</p>

<p>Honestly, I wouldn't like to add the "add a new DIR_Name[0] = 0" part.
The option is added easy, but it is not removed easy. And we must maintain it.
(BTW, looks like that patch is buggy)</p>

<p>Those stuff makes a change of the normal path difficult really. At the
same reason, I removed the fat_cvf stuff.</p>

</quote>

<p>Frodo said he'd be willing to maintain the patch separately for those who
needed it; and asked what bugs Hirofumi had seen. Hirofumi said a separate
patch would be best; and he went into some details on problems with Frodo's
patch.  This prompted Frodo to release a new patch, saying:</p>

<quote who="Frodo Looijaard">

<p>I have attached a newer, better behaving version of my patch:</p>

<p>

<ul>

<li>Implements new mount option oldfat for FAT-derived filesystems.</li>

<li>Stops scanning dirs when DIR_Name[0] = 0 when oldfat is set</li>

<li>Writes a 0 to the next entry DIR_Name[0] when overwriting an entry which
has DIR_Name[0] = 0 when oldfat is set</li>

</ul>

</p>

<p>It has been tested with both msdos and vfat filesystems and seems to work
well (unlike the patch of a few days ago, which had some issues).</p>

<p>Once you get around to cleaning up the code and making the
stop-scanning-dirs-on-zero the default way, the patch can be shrunken to
include only the third item.</p>

</quote>

<p>H. Peter objected again, <quote who="H. Peter Anvin">Please don't call
this "oldfat".  There is nothing about this which is "old-style"; it's a
workaround for a bug in a specific OS.</quote> Andries Brouwer also said in
response to the new patch:</p>

<quote who="Andries Brouwer">

<p>The DOS situation is not so much that 0 is an end-of-dir marker.  It marks
that this entry, and all following entries, has never been used.</p>

<p>For the time being there is no justification for "oldfat".  The only
place where this behaviour has been reported (not only by you, I saw several
references) is on Psion PDAs. So "psion" would be a more obvious name,
if a mount option is needed.</p>

<p>And maybe no mount option is needed.</p>

<p>Your 2nd and 3rd points can be done always, I think, unless our FAT code
should mimic the DOS FAT behaviour (on non-DOS filesystems).</p>

</quote>

<p>Shortly thereafter Frodo posted a new patch, saying:</p>

<quote who="Frodo Looijaard">

<p>another update of the patch, which addresses some of the reactions and
concerns which I got in reply:</p>

<p>

<ul>

<li>The mount option is now called `epoc' instead of `oldfat'</li>

<li>fat_search_long now jumps directly to EODir when it finds a zero-marked
entry (it took some hard looking, but I belief this is safe).</li>

<li>fat_readdirx logic is slightly simplified (but can't jump to EODir on
a zero-marked entry, regrettably).</li>

</ul>

</p>

<p>Thanks for your feedback!</p>

<p>I'll try to keep this patch up-to-date with new 2.6
kernels. The latest version can always be found on <a
href="http://debian.frodo.looijaard.name/">http://debian.frodo.looijaard.name/</a></p>

</quote>

</section>

<section
  title="Encrypted Filesystem; User-Space Filesystem"
  subject="Encrypted Filesystem"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1ijbP-6SO-5%40gated-at.bofh.it"
  posts="14"
  startdate="26 Jan 2004 09:46:29 -0800"
  enddate="02 Feb 2004 07:36:39 -0800"
>
<topic>BSD: FreeBSD</topic>
<topic>BSD: NetBSD</topic>
<topic>Extended Attributes</topic>
<topic>FS: Coda</topic>
<topic>FS: NFS</topic>
<topic>FS: ext3</topic>
<topic>FS: ramfs</topic>
<topic>OOM Killer</topic>
<topic>Version Control</topic>
<topic>Virtual Memory</topic>

<mention>Erez Zadok</mention>

<p>Michael A Halcrow said:</p>

<quote who="Michael A Halcrow">

<p>I have some time this year to work on an encrypted filesystem for Linux.
I have surveyed various LUG's, tested and reviewed code for currently
existing implementations, and have started modifying some of them.  I would
like to settle on a single approach on which to focus my efforts, and I am
interested in getting feedback from the LKML community as to which approach
is the most feasible.</p>

<p>This is the feature wish-list that I have compiled, based on personal
experience and feedback I have received from other individuals and groups:</p>

<p>

<ul>
<li>Seamless application to the root filesystem
<ul>
 <li>Layered over the entire root filesystem</li>
 <li>Unencrypted pass-through mode with minimal overhead</li>
 <li>Files are marked as  ``encrypted'' or ``unencrypted'' and treated
    accordingly by the encryption layer</li>
</ul>
</li>
<li>Key-&gt;file association
<ul>
 <li>As opposed to key-&gt;blkdev or key-&gt;directory granularity</li>
 <li>No encryption metafiles in directories, instead placing that
    information into Extended Attributes</li>
 <li>May break some backup utilities that are not EA-aware; may require
    another mode where encryption metadata is stored in a header block
    on the encrypted file</li>
 <li>Directories can be flagged as ``encrypted-only'', where any new
    files created in that directory are, by default, encrypted, with
    the key and permissions defined in the directory's metadata</li>
 <li>Processes may have encryption contexts, whereby any new files they
    create are encrypted by default according to the process'
    authentication</li>
 <li>Make as much metadata about the file as confidential as possible
    (filesize, executable bit, etc.)</li>
</ul>
</li>
<li>Pluggable encryption (I wouldn't mind using a block cipher in CTR
   mode)</li>
<li>Authentication via PAM
<ul>
 <li>pam_usb</li>
 <li>Bluetooth</li>
 <li>Kerberos</li>
 <li>PAM checks for group membership before allowing access to certain
    encrypted files</li>
</ul>
</li>
<li>Rootplug-based LSM to provide key management (necessary to use
   LSM?)</li>
<li>Secret splitting and/or (m,n)-threshold support on the keys</li>
<li>Signatures on files flagged for auditing in order to detect
   attempts to circumvent the encryption layer (via direct
   modifications to the files themselves in the underlying filesystem)</li>
<li>Ad-hoc groups for access to decrypted versions of files
<ul>
 <li>i.e., launch web browser, drop group membership by default (like
    capability inheritance masks) so that the browser does not have
    access to decrypted files by default; PAM module checks for group
    membership before allowing access (explicit user authorization on
    application access requests)</li>
</ul>
</li>
<li>Userland utilities to support encrypted file management</li>
<li>Extensions to nautilus and konqueror to be able to use these
   utilities from a common interface (think: right-click, encrypted)</li>
<li>Distro installation integration</li>
<li>Transparent shredding, where the underlying filesystem supports it</li>
<li>Versioning and snapshots (CVS-ish behavior)</li>
<li>Design to work w/ SE Linux</li>
</ul>

</p>

<p>These are features that have been requested, but are not necessarily hard
requirements for the encrypted filesystem.  They are just suggestions that
I have received, and I am not convinced that they are all feasible.</p>

<p>There are several potential approaches to an encrypted filesystem with
these features, all with varying degrees of modification to the kernel itself,
each with its own set of advantages and disadvantages.</p>

<p>Options that I am aware of include:</p>

<p>

<ul>

<li>NFS-based (CFS, TCFS)
<ul>
 <li>CFS is mature</li>
 <li>Performance issues</li>
 <li>Violates UNIX semantics w/ hole behavior</li>
 <li>Single-threaded</li>
</ul>
</li>

<li>Userland filesystem-based (EncFS+FUSE, CryptoFS+LUFS)
<ul>
 <li>Newer solutions, not as well accepted or tested as CFS</li>
 <li>KDE team is using SSHFS+FUSE</li>
</ul>
</li>

<li>Loopback (cryptoloop) encrypted block device
<ul>
 <li>Mature; in the kernel</li>
 <li>Block device granularity; breaks most incremental backup
    applications</li>
</ul>
</li>

<li>LSM-based
<ul>
 <li>Is this even possible?  Are the hooks that we need there?</li>
</ul>
</li>

<li>Modifications to VFS (stackable filesystem, like NCryptfs)
<ul>
 <li>Very low overhead claimed by Erez Zadok</li>
 <li>Full implementation not released</li>
 <li>Key-&gt;directory granularity</li>
 <li>Evicts cleartext pages from the cache on process death</li>
 <li>Uses dcache to store attaches</li>
 <li>Other niceties, but it's not released...</li>
</ul>
</li>

</ul>

</p>

<p>My goal is to develop an encrypted filesystem ``for the desktop'', where
a user can right-click on a file in konqueror or nautilus and check the
``encrypted'' box, and all subsequent accesses by any processes to that
file will require authentication in order for the file to be decrypted.
I have already made some modifications to CFS to support this functionality,
but I am not sure at this moment whether or not CFS is the best route to go
for this.</p>

<p>I have had requests to write a kernel module that, when loaded,
transparently starts acting as the encryption layer on top of whatever root
filesystem is mounted.  For example, an ext3 partition may have encrypted
files strewn about, which are accessible only after loading the module
(and authenticating, etc.).</p>

</quote>

<p>Mark Borgerding had a number of comments; among them he said, <quote
who="Mark Borgerding">Per-file signatures will severely affect random access
performance.  Changing 1 byte in a 1 GB file would require the whole thing
to be reread.</quote> Felipe Alfaro Solana suggested, <quote who="Felipe
Alfaro Solana">What about calculating signatures on a per-block basis
instead?</quote> And Pavel Machek replied, <quote who="Pavel Machek">Hmm,
having md5's in indirect blocks would be very nice for detecting cable
problems ;-). That's usefull even without encryption.</quote></p>

<p>Elsewhere, Adam Sampson took the opportunity to point out that a
user-space filesystem mechanism would allow a lot of cool stuff if it
were included in the kernel. Since a variety of user-space filesystem
implementations existed, he asked why none had yet been included. This
would help enable encryption, and also <quote who="Adam Sampson">network
filesystems, various sorts of specialised caching (such as Zero Install),
automounter-like systems, prototyping and so on.</quote> Andy Isaacson pointed
out, <quote who="Andy Isaacson">There are a lot of subtle and not-so-subtle
problems in this space.  For example, I really liked the paging example
given in section 3.1 of "A toolkit for user-level file systems", David
Mazieres, Proceedings of the 2001 USENIX Technical Conference available at <a
href="http://www.fs.net/sfswww/pubs.html">http://www.fs.net/sfswww/pubs.html</a></quote>
Jan Harkes also replied to Adam, saying:</p>

<quote who="Jan Harkes">

<p>Ehh, Coda's kernel module does just that. It is used by the userspace
cache manager of the Coda Distributed File System.</p>

<p><a href="http://www.coda.cs.cmu.edu/">http://www.coda.cs.cmu.edu/</a></p>

<p>But several other projects seem to be using it,</p>

<p><a href="http://uservfs.sourceforge.net/">http://uservfs.sourceforge.net/</a><br />
<a href="http://dav.sourceforge.net/">http://dav.sourceforge.net/</a></p>

<p>The interface to userspace a bit clumsy to work with, but there are
kernel modules for FreeBSD/NetBSD/Solaris and an experimental one for Windows
2000/NT/XP, which makes any significant changes a bit of a pain.</p>

<p>It does have it's pecularities, reads and writes are not passed up
to userspace, only the open and close VFS calls. This makes the module
reasonably quite simple as it doesn't have to deal with VM issues and it
isn't susceptible to deadlocks,</p>

<pre>   app wants to read data from a file -&gt;
   userspace application requires memory allocation to provide this data -&gt;
   VM tries to write out dirty data associated with the Coda mountpoint ==
   deadlock</pre>

<p>So whole file caching keeps the kernel module more portable and simplifies
the userspace code. But it makes things like streaming reads/writes or quotas
impossible. If you want to provide encryption there you would have to store
an unencrypted copy of every open file somewhere on disk or in ramfs/tmpfs
and incur the cost of (de)crypting (and (de)compressing) whenever it is
opened or closed.</p>

</quote>

<p>Jean-Luc Cooke felt that encrypted loopback already solved this; but there
was no discussion.</p>

<p>Elsewhere, Miklos Szeredi also replied to Andy, saying:</p>

<quote who="Miklos Szeredi">

<p>I'm planning on submitting FUSE for inclusion into 2.7 (and maybe 2.6 if
that is acceptable).  I feel that FUSE has been maturing lately with some
very <a href="http://www.inf.bme.hu/~mszeredi/fuse/Filesystems">interesting
applications</a>.</p>

<p>Here are the reasons for _not_ including it:</p>

<p>

<ol>

<li>There are already two filesystems in kernel that are perfectly
    usable for this purpose: NFS and CODA</li>

<li>There are currently two competing userspace filesystem layers that
    have about the same "market share": LUFS and FUSE.  Why should we
    prefer one over the other</li>

</ol>

</p>

<p>I'll try to refute myself on these points:</p>

<p>

<ol>

<li>Both NFS and CODA were designed for something different.  IOW they
    are not optimized for the purpose of supporting userspace
    filesystems.  NFS is slow and there are problems with coherency of
    the underlying and the mounted filesystem.  CODA does not support
    random file access (or even streaming), only reading whole files.
    It also has a miriad of small problems when used for exporting a
    userspace fs (I've been personally burned many times while doing
    AVFS over CODA).</li>

<li>This one is harder to get rid of, especially because I don't want
    to delve into the technical merits of one or the other (I'd be a
    bit biased).  But I have compared both the kernel interface and
    the library API of LUFS and FUSE and they are very similar.  And
    that is a good thing, because it makes possible to support LUFS
    filesystems with the FUSE kernel module and vica versa.</li>

</ol>

</p>

</quote>

<p>Pavel pointed to the deadlock described above by Jan, and asked how FUSE
dealt with that problem. Miklos replied:</p>

<quote who="Miklos Szeredi">

<p>

<ol>

<li>In FUSE normal writes go through the cache, so no dirty pages are created.
The only possibility to create dirty pages is with shared writable mapping,
and this is rare</li>

<li>Userspace filesystem app can be multithreaded, so probably write can be
satisfied even if read is pending.</li>

<li>The 2.6 kernel provides asynchronous page writeback, so even if a writeback
is blocking forever the VM will continue to try to free up memory.</li>

<li>If no memory can be freed, then the allocation will fail, so the read
will fail: no deadlock.</li>

<li>Even if the memory allocation was caused by a page fault, which cannot
fail, the worst case is that the OOM killer is invoked, and memory is freed
up: no deadlock.</li>

</ol>

</p>

<p>So with the asynchronous page writeback mechanism the 2.6 kernel is very
immune to this kind of deadlock.  I have tested this with a little program
which behaves very nastily in this respect (I can send you this if you're
interested).  And I was able to invoke the OOM killer if there was no swap,
but there was never a deadlock.</p>

</quote>

<p>Pavel was impressed, and there was some speculation on ways Miklos'
description might possibly break down; but nothing conclusive came out
of it.</p>

</section>

<section
  title="UDF Write Support For DVD And CD Media Under 2.6"
  subject="Status of UDF write on DVD-R(W) and CD-R(W) disks?"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1iXVF-1oe-7%40gated-at.bofh.it"
  posts="6"
  startdate="28 Jan 2004 05:20:01 -0800"
  enddate="30 Jan 2004 14:35:50 -0800"
>

<p>Stephen Anthony asked about the status of UDF write support on
DVD and CD media, specifically, incremental write support, so that
these media would behave like write-only hard drives. Jeremy Jackson
suggested, <quote who="Jeremy Jackson">Google for packet-patch.
I've had this for about 9 months, although I don't use it much, and
it doesn't work well with Adaptec/Roxio direct-CD.</quote> Stephen
replied that that solution was only for 2.4 kernels, while he was
looking for something to use under 2.6. Peter Osterlund replied,
<quote who="Peter Osterlund">Patches for 2.6 are available here: <a
href="http://w1.894.telia.com/~u89404340/patches/packet/2.6/"></a>http://w1.894.telia.com/~u89404340/patches/packet/2.6/</quote>.</p>

</section>

<section
  title="Some Discussion Of Hyperthreading Implementation"
  subject="[PATCH] 2.6.1 Hyperthread smart &quot;nice&quot;"
  archive="http://groups.google.com/groups?hl=en&amp;lr=lang_en&amp;ie=UTF-8&amp;oe=UTF-8&amp;safe=off&amp;selm=fa.i3si845.30iv3p%40ifi.uio.no"
  posts="14"
  startdate="29 Jan 2004 00:17:42 -0800"
  enddate="03 Feb 2004 14:59:29 -0800"
>
<topic>Assembly</topic>
<topic>Hyperthreading</topic>
<topic>SMP</topic>

<p>Con Kolivas said:</p>

<quote who="Con Kolivas">

<p>this is not the "right way" to do it, but it works here and now for those
who have P4HT processors.</p>

<p>A while back we had an lkml thread about the problem of running low
priority tasks on hyperthread enabled cpus in SMP mode. Brief summary: If
you run a P4HT in uniprocessor mode and run a cpu intensive task at nice +20
(like setiathome), the most cpu it will get during periods of heavy usage
is about 8%. If you boot a P4HT in SMP mode and run a cpu intensive task at
nice +20 then if you run a task even at nice -20 concurrently, the nice +20
task will get 50% of the cpu time even though you have a very high priority
task. So ironically booting in SMP mode makes your machine slower for running
background tasks.</p>

<p>This patch (together with the ht base patch) will not allow a priority
>10 difference to run concurrently on both siblings, instead putting the low
priority one to sleep. Overall if you run concurrent nice 0 and nice 20 tasks
with this patch your cpu throughput will drop during heavy periods by up to 10%
(the hyperthread benefit), but your nice 0 task will run about 90% faster. It
has no effect if you don't run any tasks at different "nice" levels. It does
not modify real time tasks or kernel threads, and will allow niced tasks to
run while a high priority kernel thread is running on the sibling cpu.</p>

<p><a
href="http://ck.kolivas.org/patches/2.6/2.6.1/experimental/">http://ck.kolivas.org/patches/2.6/2.6.1/experimental/</a>.
There are other patches that go with it which is why these have slight
offsets but should work ok.</p>

</quote>

<p>After some discussion, public and private, Con said:</p>

<quote who="Con Kolivas">

<p>Criticism was laid at the previous patch for the way a more "nice" task
might never run on the sibling cpu if a high priority task was running. This
patch is a much better solution.</p>

<p>What this one does is the following; If there is a "nice" difference between
tasks running on logical cores of the same cpu, the more "nice" one will run
a proportion of time equal to the timeslice it would have been given relative
to the less "nice" task.  ie a nice 19 task running on one core and the nice
0 task running on the other core will let the nice 0 task run continuously
(102ms is normal timeslice) and the nice 19 task will only run for the last
10ms of time the nice 0 task is running. This makes for a much more balanced
resource distribution, gives significant preference to the higher priority
task, but allows them to benefit from running on both logical cores.</p>

<p>This seems to me a satisfactory solution to the hyperthread vs nice problem.
Once again this is too arch. specific a change to sched.c for mainline,
but as proof of concept I believe it works well for those who need something
that works that they can use now.</p>

<p><a
href="http://ck.kolivas.org/patches/2.6/2.6.1/experimental/">http://ck.kolivas.org/patches/2.6/2.6.1/experimental/</a></p>

<p>The stuff on my website is incremental with my other experiments, but
the attached patch applies cleanly to 2.6.1</p>

</quote>

<p>Ingo Molnar was very impressed with this basic rule, saying, <quote
who="Ingo Molnar">the higher prio task will get at least as much raw (unshared)
physical CPU slice as it would get without HT.</quote> Con replied:</p>

<quote who="Con Kolivas">

<p>Glad you agree.</p>

<p>From the anandtech website a description of the P4 Prescott (next generation
IA32) with hyperthreading shows this with the new SSE3 instruction set:</p>

<blockquote>

<p>"Finally we have the two thread synchronization instructions ??? monitor
and mwait. These two instructions work hand in hand to improve Hyper Threading
performance. The instructions work by determining whether a thread being sent
to the core is the OS??? idle thread or other non-productive threads generated
by device drivers and then instructing the core to worry about those threads
after working on whatever more useful thread it is working on at the time."</p>

</blockquote>

<p>At least it appears Intel are well aware of the priority problem, but full
priority support across logical cores is not likely. However I guess these new
instructions are probably enough to work with if someone can do the coding.</p>

</quote>

<p>Ingo replied:</p>

<quote who="Ingo Molnar">

<p>these instructions can be used in the idle=poll code instead of rep-nop.
This way idle-wakeup can be done via the memory bus in essence, and the idle
threads wont waste CPU time. (right now idle=poll wastes lots of cycles on
HT boxes and is thus unusable.)</p>

<p>for lowprio tasks they are of little use, unless you modify gcc to sprinkle
mwait yields all around the 'lowprio code' - not very practical i think.</p>

</quote>

<p>Con was revolted by that prospect, and said:</p>

<quote who="Con Kolivas">

<p>Looks like the kernel is the only thing likely to be smart enough to do
this correctly for some time yet.</p>

<p>Nick, any chance of seeing something like this in your sched domains? (that
would be the right way unlike my hacking sched.c directly for a specific
architecture).</p>

</quote>

<p>But Ingo replied:</p>

<quote who="Ingo Molnar">

<p>no, there's no way for the kernel to do this 'correctly', without further
hardware help. mwait is suspending the current virtual CPU a bit better than
rep-nop did. This can be exploited for the idle loop because the idle loop
does nothing so it can execute the rep-nop. (mwait can likely also be used
for spinlocks but that is another issue.)</p>

<p>user-space code that is 'low-prio' cannot be slowed down via mwait,
without interleaving user-space instructions with mwait (or with rep-nop).</p>

<p>this is a problem area that is not solved by mwait - giving priority
to virtual CPUs should be offered by CPUs, once the number of logical
cores increases significantly - if the interaction between those cores is
significant. (there are SMT designs where this isnt an issue.)</p>

</quote>

</section>

<section
  title="Linux 2.4.25-pre8 Released"
  subject="Linux 2.4.25-pre8"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1jswr-3Oz-15%40gated-at.bofh.it"
  posts="3"
  startdate="29 Jan 2004 12:41:52 -0800"
  enddate="30 Jan 2004 03:34:40 -0800"
>
<topic>Disks: SCSI</topic>
<topic>FS: CIFS</topic>
<topic>FS: smbfs</topic>
<topic>Power Management: ACPI</topic>
<topic>USB</topic>

<p>Marcelo Tosatti announced 2.4.25-pre8, saying:</p>

<quote who="Marcelo Tosatti">

<p>This release contains a big USB merge, architecture updates (Alpha, SPARC,
x86/64), SCSI driver updates (cpqarray and MPT fusion), smbfs support for
CIFS Unix extensions and large files (backported from 2.6), "ACPICA" merge
and ACPI fixes, merge jgarzik's net driver fixes, amongst others.</p>

<p>This is probably the last -pre.</p>

</quote>

</section>

<section
  title="PC300 Update For 2.6"
  subject="[PATCH] PC300 update"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1j56P-820-25%40gated-at.bofh.it"
  posts="1"
  startdate="30 Jan 2004 09:52:42 -0800"
>
<topic>Forward Port</topic>
<topic>Ioctls</topic>

<mention>Linus Torvalds</mention>

<p>Marcelo Tosatti said to Linus Torvalds:</p>

<quote who="Marcelo Tosatti">

<p>This patch forward ports a few important fixes from the 2.4 driver. This
changes have been well tested.</p>

<p>Please apply.</p>

<p>Changelog:</p>

<p>

<ul>

<li>Update maintainer email address</li>
<li>Mark pci_device_id list with __devinitdata.</li>

</ul>

</p>

<p>Greg: rmk and hch checked this and found no problem.
  A bunch of other drivers are doing the same.</p>

<p>

<ul>

<li>Set correct protocol type on packet receive (this caused the kernel to
  drop all packets received)</li>
<li>Add #ifdef DEBUG around debug printk()</li>

</ul>

</p>

<p>Greg, Christoph: dprintk()/etc would be nice, but we're not trying
a rewrite here. Yes its ugly but its consistent with the rest.
Maybe we can do it for the whole driver, later on.</p>

<p>

<ul>

<li>ioctl: Add missing size checks before
  copying data from userspace.</li>

</ul>

</p>

</quote>

</section>

<section
  title="Linux 2.6.2-rc3 Released"
  subject="Linux 2.6.2-rc3"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1jTdb-1DB-1%40gated-at.bofh.it"
  posts="3"
  startdate="30 Jan 2004 18:27:00 -0800"
  enddate="01 Feb 2004 12:19:53 -0800"
>
<topic>FS: XFS</topic>
<topic>Hot-Plugging</topic>
<topic>I2C</topic>
<topic>Kernel Release Announcement</topic>
<topic>PCI</topic>
<topic>Power Management: ACPI</topic>
<topic>USB</topic>

<p>Linus Torvalds announced 2.6.2-rc3, saying:</p>

<quote who="Linus Torvalds">

<p>The bulk of this is an ACPI update, but there's USB, ia-64, i2c, XFS and
PCI hotplug updates here too.</p>

<p>Please don't send in anything but critical fixes until after the final
2.6.2 release.</p>

</quote>

</section>

<section
  title="Netwosix Linux Distribution Version 1.0 Released For Kernel 2.6.1"
  subject="ANNOUNCEMENT: Linux Netwosix 1.0 with Kernel 2.6.1 is released"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1k1Xe-u1-9%40gated-at.bofh.it"
  posts="2"
  startdate="31 Jan 2004 10:54:27 -0800"
  enddate="31 Jan 2004 06:05:51 -0800"
>
<topic>BSD</topic>

<p>Vincenzo Ciaglia said:</p>

<quote who="Vincenzo Ciaglia">

<p>It's my pleasure to announce that Linux Netwosix 1.0 is released and runs
the kernel 2.6.1 by default.  It seems to be the first linux distro with
this kernel. I'm hopeful on this kernel.  Linux Netwosix is a powerful and
optimized Linux distribution for servers and Network Security related jobs.
It can be also used for special operations as penetration test with its
big collection of softwares and sources security oriented. It's a ligh
distribution created for the requirements of every SysAdmin and it's very
portable and highly configurable. Our philosophy is to give a big liberty
of configuration to the SysAdmin. Only in this way he/she can configure a
powerful and stable server machine. Linux Netwosix have also a powerful ports
system +(Nepote) similar to the xBSD systems but more flexible and usable.</p>

<p>Here the announcement release:<br />
<a href="http://www.netwosix.org/announce.html">http://www.netwosix.org/announce.html</a></p>

</quote>

</section>

<section
  title="Input Drivers FAQ For 2.6"
  subject="2.6 input drivers FAQ"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1kmIh-1qa-17%40gated-at.bofh.it"
  posts="32"
  startdate="01 Feb 2004 02:06:44 -0800"
  enddate="02 Feb 2004 13:19:26 -0800"
>
<topic>Bug Tracking</topic>
<topic>Power Management: ACPI</topic>
<topic>USB</topic>

<mention>Jesse Barnes</mention>

<p>Vojtech Pavlik documented:</p>

<quote who="Vojtech Pavlik">

<p>Common problems and solutions with 2.6 input drivers:</p>

<p align="center"><b>Problems:</b></p>

<p>How do I get a list of the input devices in my system?<br />
How can I check that the input drivers have found my devices correctly?</p>

<p align="center"><b>Solution:</b></p>

<p>'cat /proc/bus/input/devices' and 'dmesg' are your friends here. The first
lists all devices known to the input core with their properties, and the
latter shows the messages from boot. There you can spot any errors that
happened in the probing process.</p>

<p align="center"><b>Problems:</b></p>

<p>I'm getting double clicks when I click only once.<br />
My scroll wheel scrolls by two lines/screens instead of one.<br />
My mouse moves too fast.</p>

<p align="center"><b>Solution:</b></p>

<p>Check your XFree86 config file.</p>

<p>You probably have two "mouse" entries there, one pointing to /dev/psaux and
the other to /dev/input/mice, so that you can get both your PS/2 and USB
mouse working on 2.4.</p>

<p>2.6 uses the input subsystem for both PS2 and USB, and thus both devices
will report events from both mice, resulting in doubled events.</p>

<p>Remove either the /dev/psaux or /dev/input/mice entry, depending what suits
you better for 2.4 compatibility should you ever need go back to 2.4.</p>

<p align="center"><b>Problems:</b></p>

<p>My mouse wheel is not working in X.<br />
My Logitech (MousManPS/2) mouse stopped working in X.<br />
My extra buttons don't work in X.</p>

<p align="center"><b>Solution:</b></p>

<p>Check your XFree86 config file.</p>

<p>Make sure the mouse protocol is set to "ExplorerPS/2", as that is what the
2.6 kernel exports to applications regardless of the real mouse type.</p>

<p>Make sure you have an "ZAxisMapping 4 5" entry.</p>

<p>Make sure you have an entry for remapping the extra buttons above 5.</p>

<p align="center"><b>Problem:</b></p>

<p>Kernel reports:<br />
        atkbd.c: Unknown key released (translated set 2, code 0x7a on isa0060/serio0).<br />
        atkbd.c: This is an XFree86 bug. It shouldn't access hardware directly.</p>

<p align="center"><b>Solution:</b></p>

<p>Well, the kernel means what it says. XFree86 boldly goes and accesses the
keyboard controller registers when it starts up. This is a bad thing to do,
as it can conflict with the kernel using these registers at the same time.
The kernel spots this and complains, and in most cases is not affected by
the problem.</p>

<p>So, unless you are an XFree86 developer and can fix X, ignore this
message.</p>

<p align="center"><b>Problem:</b></p>

<p>I get the message above, but I'm not running X.</p>

<p align="center"><b>Solution:</b></p>

<p>Other applications (for example kbdrate) may also access the keyboard
controller. This will trigger the same message.</p>

<p>Fix your application / utility or ignore the message.</p>

<p align="center"><b>Problem:</b></p>

<p>My multimedia keys don't work at all and instead emit a message like
this:</p>

<p>        atkbd.c: Unknown key pressed (translated set 2, code 0x83 on isa0060/serio0).<br />
        atkbd.c: Use 'setkeycodes e003 &lt;keycode&gt;' to make it known.<br />
        atkbd.c: Unknown key released (translated set 2, code 0x83 on isa0060/serio0).<br />
        atkbd.c: Use 'setkeycodes e003 &lt;keycode&gt;' to make it known.</p>

<p align="center"><b>Solution:</b></p>

<p>Do what the kernel says. Use the setkeycodes utility with the suggested
scncode value. For the keycode value, look into /usr/include/linux/input.h,
where is a list of all defined Linux keycodes.</p>

<p>Then you can verify that the keyboard works correctly by using the evtest
program:</p>

<p>        evtest /dev/input/event#</p>

<p>Where # is the number of the input device that is your keyboard.</p>

<p align="center"><b>Problem:</b></p>

<p>setkeycodes refuses to work with keycodes above 127.</p>

<p align="center"><b>Solution:</b></p>

<p>Get a recent version of the kbd package, and recompile on a 2.6 kernel.</p>

<p align="center"><b>Problem:</b></p>

<p>Ok, evtest shows everything correctly, but I get incorrect keysyms assigned
to these keys in XFree86.</p>

<p align="center"><b>Solution:</b></p>

<p>While the 2.6 kernel tries to use the "standard" scancodes as much as
possible, it is not posible for all keys.</p>

<p>A good solution is to modify the XKB keyboard definition to match the
scancodes one can obtain from 'showkeys -s', after the above problem is
solved and the keys work in evtest.</p>

<p>An better solution would be to write a kernel-2.6 keyboard definition, as
the scancodes are the same for every type of keyboard, independend of the
hardware. This is called hardware abstraction.</p>

<p>A perfect solution would be to get X to use the event protocol. If you're an
XFree86 developer, you might consider this.</p>

<p align="center"><b>Problem:</b></p>

<p>My PC Speaker is not beeping anymore in 2.6.</p>

<p align="center"><b>Solution:</b></p>

<p>Enable it in the kernel config. Go to Drivers-&gt;Input-&gt;Misc-&gt;PC Speaker.</p>

<p align="center"><b>Problem:</b></p>

<p>My Synaptics touchpad lost the ability of tap-to-click, scroll, etc.</p>

<p align="center"><b>Solution:</b></p>

<p>The easy solution is to pass psmouse.proto=imps on the kernel command line,
or proto=imps on the psmouse module command line. This will restore 2.4
behavior.</p>

<p>A better solution is to download the new XFree86 Synaptics driver that
cooperates with the input drivers nicely, from:</p>

<p><a href="http://w1.894.telia.com/~u89404340/touchpad/index.html">http://w1.894.telia.com/~u89404340/touchpad/index.html</a></p>

<p>This will allow you to configure the behavior of the touchpad in detail and
give you all the features it can do, including palm detection and similar.</p>

<p>In case you want to get this running at the console, too, an updated GPM
package can be found here:</p>

<p><a href="http://www.geocities.com/dt_or/gpm/gpm.html">http://www.geocities.com/dt_or/gpm/gpm.html</a></p>

<p align="center"><b>Problem:</b></p>

<p>When I switch my KVM, my PS/2 mouse goes all crazy.</p>

<p align="center"><b>Solution:</b></p>

<p>Use psmouse.proto=bare on the kernel command line, or proto=bare on the
psmouse module command line.</p>

<p align="center"><b>Problem:</b></p>

<p>I'm getting these:</p>

<p>        psmouse.c: PS/2 mouse at serio0 lost synchronization, throwing 2 bytes away.</p>

<p align="center"><b>Solution:</b></p>

<p>Check your mouse cable. If this only happens when you move your mouse in a
certain way, fix the mouse cable or replace the mouse.</p>

<p>Check your kernel and harddisk settings. This message can also happen when
the mouse interrupt is delayed more than one half of a second. Make sure DMA
is enabled for your harddrive and CD-ROM. Kill your ACPI/APM battery
monitoring applet. Try disabling ACPI, frequency scaling. Make sure your
time is ticking correctly, often with frequency scaling it gets unreliable.
Even if you're using the ACPI PM Timer as a clock source - actually this
often leads to the above problem.</p>

<p align="center"><b>Problem:</b></p>

<p>My keyboard autorepeat is not as snappy as it used to be in the 2.5
series.</p>

<p align="center"><b>Solution:</b></p>

<p>Use atkbd.softrepeat=1 on the kernel command line, or "softrepeat=1" on
atkbd module command line. This will enable kernel internal repeat
generation, which is much more flexible and allows higher repeat rates and
shorter repeat delays than the keyboard itself does.</p>

<p align="center"><b>Problem:</b></p>

<p>kbdrate doesn't work when I use atkbd.softrepeat.</p>

<p align="center"><b>Solution:</b></p>

<p>Get an up-to-date version of the kbd package. Recompile on 2.6.</p>

<p align="center"><b>Problem:</b></p>

<p>I've read through the whole file, and it did not help me at all!</p>

<p align="center"><b>Solution:</b></p>

<p>Either you didn't have any problem in the first place, or it's something
that is not very often and thus not listed. Try contacting the driver
author/maintainer, the kernel mailing list, or enter the problem into the
Linux kernel bugzilla.</p>

</quote>

<p>Jesse Barnes was overjoyed to see this document, and immediately found a
solution to one of his long-term problems.</p>

</section>

<section
  title="Support For IBM RSA Service Processor"
  subject="[PATCH] Driver for IBM RSA service processor (1/2)"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1kSf7-4CA-5%40gated-at.bofh.it"
  posts="4"
  startdate="02 Feb 2004 11:29:56 -0800"
  enddate="03 Feb 2004 18:49:35 -0800"
>
<topic>FS: sysfs</topic>

<p>Max Asbock said:</p>

<quote who="Max Asbock">

<p>Here is a device driver for the IBM xSeries RSA service processor.
The ibmasm driver is mainly intended to be used in conjunction with a user
space API and systems management applications that need to get in-band access
to the service processor, such as sending commands or waiting for events.
For the remote video feature the driver relays remote mouse and keyboard
events to user space.  By itself the driver also allows the OS to make use
the UART on the service processor board as a regular serial line.</p>

<p>The user interface to the driver is a custom file system. It does not use
sysfs since the operations on the files are somewhat beyond the one file /
one value rule for sysfs.  Since it is not strictly a char driver I put it
into the drivers/misc directory.</p>

</quote>

</section>

<section
  title="Some UML Fixes For 2.6.2-rc3-mm1"
  subject="[patch] uml-fixes-2.6.2-rc3-mm1-A2"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1l80D-1I4-19%40gated-at.bofh.it"
  posts="1"
  startdate="03 Feb 2004 04:05:05 -0800"
>
<topic>User-Mode Linux</topic>

<p>Ingo Molnar said:</p>

<quote who="Ingo Molnar">

<p>the attached patch fixes UML on 2.6.2-rc3-mm1:</p>

<p>

<ul>

<li>generic: dmapool.o depends on CONFIG_PCI</li>

<li>x86: reshuffle the way TASK_SIZE is defined on x86. [UML relied
        on a specific order of definitions within the x86 header files,
        the  4/4 patch broke this assumption.]</li>

<li>UML: sys_call_table.c: syscall layout changed</li>

<li>UML: um_arch.c: handle_sysrq() changed</li>

</ul>

</p>

<p>UML compiles &amp; works fine with this patch applied.</p>

</quote>

</section>

<section
  title="udev 016 Released"
  subject="[ANNOUNCE] udev 016 release"
  archive="http://www.google.com/groups?hl=en&amp;lr=&amp;ie=UTF-8&amp;selm=1lflA-8vq-15%40gated-at.bofh.it"
  posts="9"
  startdate="03 Feb 2004 12:13:59 -0800"
  enddate="03 Feb 2004 20:25:08 -0800"
>
<topic>FS: devfs</topic>
<topic>FS: sysfs</topic>
<topic>Hot-Plugging</topic>

<p>Greg KH said:</p>

<quote who="Greg KH">

<p>I've released the 016 version of udev.  It can be found at:<br />
        <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-016.tar.gz">kernel.org/pub/linux/utils/kernel/hotplug/udev-016.tar.gz</a></p>

<p>rpms built against Red Hat FC1 are available at:<br />
        <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-016-1.i386.rpm">kernel.org/pub/linux/utils/kernel/hotplug/udev-016-1.i386.rpm</a><br />
with the source rpm at:<br />
        <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-016-1.src.rpm">kernel.org/pub/linux/utils/kernel/hotplug/udev-016-1.src.rpm</a></p>

<p>udev allows users to have a dynamic /dev and provides the ability to
have persistent device names.  It uses sysfs and /sbin/hotplug and runs
entirely in userspace.  It requires a 2.6 kernel with CONFIG_HOTPLUG
enabled to run.  Please see the udev FAQ for any questions about it:<br />
        <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ">kernel.org/pub/linux/utils/kernel/hotplug/udev-FAQ</a></p>

<p>For any udev vs devfs questions anyone might have, please see:<br />
        <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev_vs_devfs">kernel.org/pub/linux/utils/kernel/hotplug/udev_vs_devfs</a></p>

</quote>

</section>

</kc>

