linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Linux 2.4.22-pre10-ac1
@ 2003-08-01 22:16 Alan Cox
  2003-08-02  4:09 ` Barry K. Nathan
  2003-08-03 10:57 ` [patch] 2.4.22-pre10-ac1: fix tp600.c compile warning Adrian Bunk
  0 siblings, 2 replies; 10+ messages in thread
From: Alan Cox @ 2003-08-01 22:16 UTC (permalink / raw)
  To: linux-kernel

Linux 2.4.22-pre10-ac1
	Just tracking Marcelo - merge pre10
	- Remove bcm4400 now b44 is in
o	Merge ALi5455 updates				(Ni Wei)
o	Merge Cmedia cmpci updates			(C L Tien)
	| Lots of updates but this should get all the newer hardware working
o	Merge ATI Radeon IGP GART support
o	Add VIA CLE266 to AGP tables			(me)
o	Update wolfson driver, move to miscdev		(Liam Girdwood)
o	NFS root fixes					(Herbert Pötzl)
o	CCISS maintainer change and shared IRQ fix	(Mike Miller)
o	PWC updates					(Nemosoft)
o	Merge requeest_firmware back port		(Manuel Estrada Sainz)
o	Fix hd only non modular build			(Jerome Chantelauze)
o	Remove bogus check in siimage			(Kresimir Kukulj, me)
o	Fix softdog non nowayout behaviour		(me)
o	VIA IDE timing check fix			(Jiho)
o	Fix UDMA66 on old pdc202xx with one drive	(Jürgen Stohr)
o	Tdfxfb big endian and memor sizing fixes	(Richard Drummond)
o	Initial SGI Altix IDE driver merge		(Aniket Malatpure)
	| Still scope for further work but this is self contained
o	Further Configure.help updating			(Steven Cole)
o	Use isochronous not isosynchronous		(Geert Uytterhoeven)
o	Fix tiny data leak in old stat			(various)
o	Add help for CONFIG_IEEE1394_OUI_DB		(Adrian Bunk)
o	Further SATA driver updates			(Jeff Garzik)
o	Ensure HAS_TSC is always set to Y or N		(Jan-Benedict Glaw)
o	Fix missing include for ppc32			(Olaf Herring)
o	AMD7xx TCO driver update			(Zwane Mwaikambo)
o	Add more PCI router entries			(Jeff Garzik)
o	Fix cpia __FUNCTION__ warnings			(Michael Buesch)
o	Remove un-needed range checks in cpia		(Michael Buesch)
o	Update i810 watchdog to handle ICH5/ICH5R	(Wim Van Sebroeck)
o	Update promise Configure.help			(Ruth Ivimey-Cook)
o	Fix settrigger compliance with OSS API		(Thomas Sailer)
o	Fix syntax error in PPC64 config check		(Alan Brady)
o	Update required quota tools			(Steven Cole)
o	CPUfreq updates					(Dominik Brodowski)

Linux 2.4.22-pre6-ac1
	Merge to Marcelo 2.4.22-pre6
	- Replaces the -ac O_DIRECT changes with Marcelo style
	- Quota is now as Christoph merged plus the autoload patch
o	Fix the escaped xapic bits. I think we now	(me)
	have it right but acpi=off may be broken
o	Keyboard driver updates for stuck key fix	(Chris Heath)
o	Update scsi blacklists				(Tom Coughlan)
o	Update Maintainers				(OGAWA Hirofumi)
o	Fix usb scanner unplug oops			(Sergey Vlasov)
o	Fix netfilter circular dependancy		(Sérgio Monteiro Basto)
o	Fix a USB memory scribble			(David Brownell)
o	Configure.help updates				(Steven Cole)
o	Fix oom_kill rekilling bug			(Marc-Christian Petersen)
o	Fix cciss idents				(Mike Miller)
o	Fix 5 accidentally removed configure.help bits	(Steven Cole)
o	Fix highpoint crash case			(Wilfried Weissmann)
o	Add late registration of IDE driver hook/debug	(me)
o	Add Wolfson as maintainers for their codecs	(Liam Girdwood)
o	Fix ide-floppy double reporting			(me)
o	Further proc/ptrace/etc stuff			(Solar Designer)
o	The tty procfile can reveal keycounts make	(Solar Designer)
	it root only
o	Add missing -EFAULT checks for sysctl		(Solar Designer)
o	ia32 on ia64 size check				(Solar Designer)

Linux 2.4.22-pre3-ac1
	Resync with Marcelo makes it a lot smaller
o	Fix k7 powernow					(Duncot Bruno)
o	Update DRM driver maintainer info		(Rik Faith)
o	Export acpi_disabled for drivers		(Stelian Pop)
o	Fix duplicate cpu_has				(Mikael Pettersson)
o	Fix x86_64 show_regs				(Mikael Pettersson)
o	Fix yenta hang with PCI serial int		(Russell King)
o	Fix warning in bootsect.S with newer cpp	(Michael Buesch)
o	Fix scsi debug mode10 bug			(Jeff Garzik)
o	Fix vicam build with older gcc			(Margit Schubert-White)
o	Fix sbni build with newer gcc			(Margit Schubert-White)
o	Fix isdn_ppp warnings with newer gcc		(Michael Buesch)
o	Fix nsp scsi warnings				(Michael Buesch)
o	Fix warning in fs/buffer.c			(Michael Buesch)
o	Fix warning in svcsock.c			(Michael Buesch)
o	Quota autoloading				(Jan Kara)
o	Read lapic version correctly			(Venkatesh Pallipadi)
o	Add S/390 qeth driver core		(Utz Bacher, Cornelia Huck, 
						 Frank Pavlic, Andreas Hermann)
o	Add S/390 qdio driver core			(Utz Bacher)
o	Fix negative numbers in Configure		(Mikael Starvik)
o	Add missing configuration help texts		(Steven Cole)
o	Fix cs46xx/i810 audio crash on unload		(Josko Plazonic)
o	Fix bcm4400 with newer binutils			(Adrian Bunk)
o	Update ata-scsi driver				(Jeff Garzik)
o	Add Intellinet USB2 ethernet idents		(David Hollis)
o	Fix & bracketing in mm/filemap.c		(J A Magallon, me)
o	Remove duplicate config.in entries		(Steven Cole)
o	Fix codec register before probe case		(me)
o	Wolfson AC97 touchscreen driver			(Liam Girdwood)
	| Needs an official device id yet...
o	Intelfb updates					(David Dawes)
o	Intelfb makefile fix				(me)
o	Scsi scan race fix				(T Prashanth)
o	Make acpi handle hardware with no smm cmd port	(Jesse Barnes)

Linux 2.4.21-ac4
o	Fix the postfix problem				(Stephen Tweedie)
o	Put in the not so nice ide scsi crash fix	(me)
	| This fixes the first 99% of the problem so its
	| a definite improvement for now
o	Fix exec file handling semantics		(me)
	| Noted by Paul Starzetz
o	Export mmu cr4 flag data for direct render	(Ian Romanick)
o	Resync various bits of missing docs		(Steven Cole)
o	Implement 2.5 like block exclusive for CD	(Arjan van de Ven)
	in 2.4 (some burner like tools want it)
o	Fix nVidia AGP					(Marcelo Penna Guerra)
o	JFS full file system fix			(Dave Kleikamp)
o	Add arch specific code for SH-64 processor	(Paul Mundt)
o	Handle scsi_unregister fail in gdth driver	(Michael Still)
o	Fix clock reporting printks for siimage		(Pablo Martikian)

Linux 2.4.21-ac3
o	Fix an hpt driver bug triggered by the new HPT 	(me)
	BIOS
o	Initial VIA and S3 DRM modules merges		(VIA)
	| These are marked up with some warnings and need
	| a chunk of clean up work yet.
o	btaudio update					(Gerd Knorr)
o	Backport 2.5 ipc/sem.c fix			(Manfred Spraul)
o	Fix scsi_register failure path for aacraid	(Michael Still)
o	First crack at fixing the ide reset oopses	(me)
o	Fix the incompatibility between via audio and	(me)
	esd/gnome desktops

Linux 2.4.21-ac2
o	Fix an HPT37x oops case with 374 and non 33Mhz	(me)
	clock
o	Fix some emu10k1 oopses from the ac97 updates	(me)
o	Fix AF_UNIX dgram select problem		(Krzysztof Halasa)
o	Fix Make xconfig problem		(Edward Macfarlane Smith)
o	Add another new eepro100 ident to eepro100.c	(Tom Alsberg)
o	Fix aacraid new volume crash			(me)
o	Fix math-emu build with gcc 3.3 hopefully	(me)
o	Fix wrong comparisons on some sound drivers	(Adrian Bunk)
	for codec detect
o	Fix problem with eexpress driver		(Shane Shrybman)
o	Remove LNZ reference from Configure.help	(Matthias Andree)
o	Add support for Cirrus PCI/PCMCIA		(Komuro)
o	Allow both Cirrus and 82092 to exist together	(me)
o	Fix a remove race in the 82092 driver		(me)
o	Fix dnotify bug with read/writev		(Zou Pengcheng)
o	SiS IDE update					(Lionel Bouton)
o	Add PCMCIA bus ident to ethtool for pcmcia	(Bill Nottingham)
	devices
o	Backport 2.5 updates to overcommit interface	(Rik van Riel)
o	Synclink driver updates				(Paul Fulghum)
o	Fix z85230 losing frames by waking the queue	(Stefan Tamas)
	too early
o	O_DIRECT race fixes				(Stephen Tweedie)
	| Tweaked a little to merge with XFS. XFS folks should double
	| check these.
o	Allow use of db4 to build aicasm		(J A Magallon)
o	Revert problematic scsi change (fixes ppa/imm)	(ChrisW)
o	Further highpoint raid updates			(Wilfried Weissmann)
o	Fix data direction for start stop scsi command	(Heiko Carstens)
o	Fix a module loader memory leak			(Keith Owens)
o	Fix multiple ircomm bugs			(Jean Tourrilhes)
o	Fix irda qos handling, add tx_window setting	(Jean Tourrilhes)
o	Correct race in IrLMP				(Jean Tourrilhes)
o	Fix an RR/Poll handling error in irlap		(Jean Tourrilhes)
o	Update irda-usb driver				(Jean Tourrilhes)
o	Fix IrIAP leak					(Jean Tourrilhes)
o	Mask C/R bit in irlap connection address	(Jean Tourrilhes)
o	Fix some non modular build errors		(Jean Tourrilhes)
o	Remove duplicated junk from dasd_fba		(Rik van Riel)
o	Fix mac8390 typo				(Etsushi Kato)
o	Fix m68k floppy warnings			(Geert Uytterhoeven)
o	Fix apollo compile				(Geert Uytterhoeven)
o	Update mac sonic driver				(Geert Uytterhoeven)
o	Fix atari pamsnet driver			(Geert Uytterhoeven)
o	Fix mac68k keyboard warning			(Geert Uytterhoeven)
o	Fbcon fixes					(Geert Uytterhoeven)
o	M68K page handling fixes			(Roman Zippel)
o	Use ptrace_check_attach on m68k			(Andreas Schwab)
o	Remove m68k phys/virt fallback			(Roman Zippel)
o	Fix lmc build on some platforms			(Geert Uytterhoeven)
o	Update meye driver				(Stelian Pop)
o	Update sonypi driver				(Stelian Pop)
o	Fix a couple of glitches in the added 1210SA	(Hugo Mills)
	support for siimage
o	Fix llc802.2 leak case				(Oleg Drokin)
o	Add more unexpected apic filtering		(Randy Dunlap)
o	Fix a case where hid rejected some UPS devices	(Vojtech Pavlik)
o	Fix via audio crash on setup			(me)

Linux 2.4.21-ac1
o	Further ehci fixes and updates			(David Brownell)
o	CPUfreq updates					(Dominik Brodowski)
o	Updated DMI blacklists and facility to disable	(Arjan van de Ven)
	APM idling
o	Allow an NFS to specify if d_revalidate is a	(Trond Myklebust)
	stale handle event or not
	| Should fix CODA and VFAT problems
o	Ignore residue on autosense commands in 	(Tony Battersby)
	sym53c8xx_2
o	SiS frame buffer updates			(Tomas Winischhofer)
o	Add Xyratex to scsi list of large/sparse lun	(David Lethe)
o	MPT fusion driver updates			(Pam Delaney)
o	Hopefully fix the Promise SX6000 clash with	(me)
	PDC202xxx IDE drivers when using 20277.
o	Add a framework for plug in ac97 drivers	(me)
o	Fix IRQ handling in speedstep-ich		(Samuel Thibault)
o       Redo the AC97 codec plugin interface            (me)

Linux 2.4.21rc8-ac1
	Sync with Marcelo 2.4.21rc8
o	Fix megaraid tools breakage due to bad fix
o	Add support for Dell XP 4100CX SCSI		(Gregg Lebovitz)
	| Possibly a contender for the longest delay in 
	| patch application ever (2.5 years)
o	Fix force_ac97 printk in nm256 driver		(Douglas Kilpatrick)
o	Fix plip hang on ifdown/ifup			(Stas Sergeev)
o	Two more minor siimage updates			(me)
o	Handle PDC20275 on Promise SX6000		(me)
o	Fix erroneous licensing clash			(Kurt Robideau)
o	DSCC driver updates/reset handling		(Francois Romieu)
o	Add initial support for Adaptec/SII 1210SA	(Hugo Mills, me)
	| Tidied up Hugo's changes so we can cleanly add
	| more idents later
o	Fix missing hid include				(Pete Zaitcev)
o	Driver for AX8817x based USB ethernet		(Tivo, Dave Hollis)
	| Original driver by Tivo, cleanup by Dave Hollis
	| Supports Linksys USB200M, Netgear FA120, Dlink
	| DUB-E100, Hawking UF200
o	Remove bogus printk in AWE driver		(me)
o	Fix init of mp_bus_id table			(Herbert Xu)
o	Fix double iounmap on octagon probe fail	(Francois Romieu)
o	Fix several floppy driver SMP races		(Jens Axboe)
o	Fix a shmem deadlock				(Andrea Arcangeli)
o	Fix ST16654 uart overrun			(Ed Vance, William King)

Linux 2.4.21rc7-ac1
	Sync with Marcelo 2.4.21rc7
o	PC300 updates					(Henrique Gobbi, 
							 Nigel Metheringhma)
o	Fix ide-proc crash with no drivers loaded	(Herbert Xu)
o	Fix pc300 build with new binutils		(Adrian Bunk)
o	Minor | to || in fpu emulator			(Margit Schubert-While)
o	Fix remaining CRC32 build problem with luck	(David Woodhouse)
o	Use pentium3/4 targets with newer gcc		(Margit Schubert-While)
o	Remove DRM id string stuff as in 2.5		(Margit Schubert-While)
o	Merge radeonfb updates for newer radeon		(Margit Schubert-While)
o	Add nokia 5510 to usb-storage			(Markus Gaugusch)
o	Merge hfsplus file system			(Roman Zippel,
							 Brad Boyer, ...)
o	Fix ac97 build on SMP				(Adrian Bunk)
o	Fix pcnet32 unload crash with multiple cards	(Matt Wilson)
o	Make it clear AMD IDE covers Nvidia		(Paolo Ornati)

Linux 2.4.21rc6-ac2
o	Add framework for pci_device_restart error	(me)
	recovery
o	Smarter vesafb ram handling for double		(Thomas Backlund)
	buffering
o	Fix vesafb docs					(Thomas Backlund)
o	Fix ppp_generic error path leak			(Patrick McHardy)
o	Add VIA P4M266 AGP1x/2x/4x support		(Nimrod A Abing)
o	Allow vga16 frame buffer on IA64		(Jeremy Katz)
o	Fix & v && in sysrq.c				(Margit Schubert-While)
o	Remove various bits of old # if 0 in pdc202xx	(Carl-Daniel Hailfinger
							 me)
o	Further hacking on the SI680 driver		(me)
o	Add the Toshiba Piccolo IDE			(me)
o	Update ac97 layer so that it has alloc/release	(me)
o	Make the drivers use the ac97 changes		(me)
o	Fix up drivers not doing ac97 locking		(me)
o	Fix memory leak in forte ac97 handling		(me)
o	Always tune DMA on the SI680 as the BIOS	(me)
	firmware doesn't.

Linux 2.4.21rc6-ac1
	Merge with Marcelo 2.4.21-rc6
o	Finish off the codec->digital operations	(me)
o	Move i810 code into generic digital ops		(me)
o	Make i810_audio use ac97_codec ops properly	(me)
o	Add per card quirk handling to aacraid		(me)
o	Resolve pipe writing to r/o file systems	(Stephen Tweedie)
o	Add missing hidden device check			(Mark Salyzyn)
o	SG fixes					(Douglas Gilbert)
o	Update ACPI to next Intel release		(Bernhard Rosenkraenzer)
o	Fix pcibios code on SH3 for core changes	(Paul Mundt)
o	Resync tlan with Jeff				(Jeff Garzik)
o	Fix solutionengine build			(Paul Mundt)
o	SH build issues fixes				(Paul Mundt)
o	First cut at making modular IDE happy again	(me)

Linux 2.4.21rc5-ac2
o	Backport tlan update and add 64bit support	(me)
o	Make SiS APIC work				(me)
o	Fix incorrect strncmp in sclp driver		(Pete Zaitcev)
o	Fix further cmpci copy/user bugs		(Hollis Blanchard)
o	Update ACPI to newer intel base code		(Bero Rosenkraenzer)
o	Fix a bogus ; in the ACPI code			(Pavel Machek)
o	IDE I/O and DMA state machine fixes		(Alexander Atanasov)
o	Fix gcc 3.3 build of ma600		(Eduardo Pereira Habkost)

Linux 2.4.21rc5-ac1
	Resync with Marcelo 2.4.21-rc5
o	IBM S/390 architecture bug fixes		(Martin Schwidefsky)
o	IBM S/390 DASD driver fixes			(Martin Schwidefsky)
o	IBM S/390 sclp fixes				(Martin Schwidefsky)
o	IBM tape fixes					(Martin Schwidefsky)
o	AGPgart support for SiS651			(Thomas Winischhofer)
o	Fix emulation bug in the mips utsname handling	(Ben Collins)
o	Fix module list race				(Keith Owens)
o	Fixes to CRC32 library and optimisations	(David Woodhouse,
							 Joakim Tjernlund)
o	I/O pause waitqueue fix				(Jens Axboe)
o	Fix typo in ide Config.in			(Carl-Daniel Hailfinger)
o	Fix ac97 to init volume mute bit on volume	(me)
	control lacking codecs
o	Correct vm86 virtualisation of pushf iopl	(Stas Sergeev)
	| Fixes some problems with dos4gw
o	Nvidia AGP support				(someone in Nvidia)
o	Fix gcc 3.3 build of sdla_chdlc		(Eduardo Pereira Habkost)
o	Fix gcc 3.3 build of olympic 		(Eduardo Pereira Habkost)
o	Fix gcc 3.3 build of DECnet		(Eduardo Pereira Habkost)
o	Fix gcc 3.3 build of cs46xx		(Eduardo Pereira Habkost)
o	Report -EFAULT back on /proc/misc		(Daniele Bellucci)
o	Merge S/390 ctrlchar handler fix		(Pete Zaitcev)
o	Add oneshot support to UHCI USB as well		(Pete Zaitcev)
o	Fix type errors in kcopy irq save		(Guy Streeter)
o	Major merge of aacraid updates		(Mark Salyzn, Deanna Bonds)
	| 64bit stuff, raid mode, SATA, other new idents
o	Rewrite the aacraid link list code to		(me)
	be 64bit safe
	| This aacraid is likely to need a bit more debugging yet
	| and also there is work to do on error recovery handling
o	Fix CRC library problem with ksyms		(me)

Linux 2.4.21rc4-ac1
	Resync with Marcelo 2.4.21-rc4
o	Allow setuid core dumps by a sysctl		(me)
	| First test release. Note that you probably want to set
	| the core dumping path to somewhere like /cores/ via sysctl
	| when using this feature. Setuid cores are made root only
	| and owner rw only.

Linux 2.4.21rc2-ac3
o	Possible fix for IDE lost IRQ problem		(Alexander Atanasov)
o	Add VIA KL/KM266 AGP				(Dietrich Radel)
o	Handle older Compaq ACPI * prefix to HID	(Andrew Grover)
o	Add mmio==2 support to the ide-dma layer	(me)
o	Clean up and document the CMD680 driver		(me)
o	Fix the CMD680 resource handling bugs		(me)
o	VIA 8327 IDE support				(Vojtech Pavlik)
o	Update SiS IDE for 655/630SET and oddments	(Lionel Bouton)
o	Fix missing exports for modular XFS		(Bero Rosenkraenzer)
o	Update worst case quota block count for ext3	(Jan Kara)
o	Add CRC32 libraries backport	(David Woodhouse, Duncan Sands)
o	HDLC doc fixes					(Krzysztof Halasa)
o	Use tail -n for the posixly afflicted		(Olaf Hering)
o	Fix wrong use of strstr in reiserfs		(Sam Ravnborg)
o	Correct AMD enable bits				(Vojtech Pavlik)
	| Should fix IDE boot timeout when probing empty AMD device slots
o	Fix netlink compile with gcc 3.3		(Andrew Church)
o	Frame buffer is in bits so fix vesafb 		(Adam Mercer)
o	Make ksoftirqd cpuid match 2.5 (and allow for	(Martin Hicks)
	100 cpus without overflow..)
o	Fix a pcmcia without ISA crash			(Pavel Roskin)
o	Fix cs89x0 set_mac_address handling		(Stefano Fedrigo)
o	Update the ide tags I forgot to do before	(me)
o	Fix a delayed block/xfs problem from a missed	(Christoph Hellwig)
	merge


Linux 2.4.21rc2-ac2
o	Use pid_t for pid in aacraid			(Walter Harms)
o	Prevent user compiling both megaraid drivers in	(Adriank Bunk)
o	Fix missing wolfson codec bits			(me)
o	Add SIS648 AGP					(Grzesiek Wilk)
o	Fix devexit in kahlua audio			(Adrian Bunk)
o	SunRPC timer missing HZ scaling			(Steve Dickson)
o	Fix a bogus kfree in iphase ATM			(Patrick McHardy)
o	Don't clobber SMI APIC routing			(John Stultz)
o	Fix big endian rtl8150				(Geert Uytterhoeven)
o	Fix binfmt_elf leak on error paths		(Oleg Drokin)
o	Handle thread create errors in aacraid		(Walter Harms)
o	Allow a user to mark a disk as for scsi at	(Matan Ziv-Av)
	boot even with ide-scsi is modular

Linux 2.4.21rc2-ac1
	Merge with Marcelo 2.4.21rc2
o	Ensure we do not enable DMA on early SLC82105	(Ben Herrenschmidt)
o	Fix sclp compile				(Rik van Riel)
o	Fix C7000 compile				(Rik van Riel)
o	Fix CMD680/SII clocking problems		(me)
o	C7000 header clean up				(me)
o	Fix IDE setup for old PC202xx raid	(Bartlomiej Zolnierkiewicz)
o	Update Quadrics PCI idents with vendor data	(Daniel Blueman)
o	Update XFS to current XFS			(Christoph Hellwig)
o	Update wolfson codec support with vendor	(Liam Girdwood)
	supplied changes
o	Allow user to override vesa video ram		(Thomas Backlund)
o	Fix ibm hotplug build				(Geller Sandor,
							 Andreas Haumer)
o	Fix ipmi build with ACPI			(Andreas Haumer)

Linux 2.4.21rc1-ac4
o	Fix vesafb over allocation of I/O memory	(Adam Mercer)
	| VESA reports ram on card but that may be banked
	| and is more than we need to map. On 128/256Mb
	| cards we really don't want to have this happen
o	Relaxed AML checking (needed for Toshiba	(Rick Richardson)
	laptops and other stuff built with some old
	buggy AML tools)
o	Fix v110 fill on hisax PCI			(David Woodhouse)
o	Ensure cable id pin setup is correct on hpt ide	(Duncan Laurie)
o	Quirkhandler for serverworks CSB5 IRQ		(Duncan Laurie)
o	Add NFSv3 pathconf/fsinfo support		(Steve Dickson)
o	Fix NFS close/open consistency setting bug	(Shantanu Goel)
o	Fix the mess in ibmphp_ebda			(me)
o	Add Vivitar Vivicam to unusual_devs		(Thomas Rabe)
o	Clean up lots of code that could use mod_timer	(Vinay Nallamothu)
	so that it does (sch_csz, sch_htb, synclink, sdla_x25,
	sdla_fr, sdla_ppp, sdla_chdlc, sch_cbq, mptctl)
o	Allow IDE drivers to reserve interfaces for
	found hotplug controller with no disk		(Ben Herrenschmidt)
o	Intel ICH5 basic SATA support			(Andre Hedrick)
o	Merge some of Greg's ibmphp cleanups		(Greg Kroah-Hartmann)
o	vsprintf fix					(Al Viro)
o	Initial ICH5 audio support			(Martin Schlemmer)
	| Please report any problems
o	Merge new AMI Megaraid driver as megaraid2	(Atul Mukker)
o	Add ALC100P codec				(Ni Wei)

Linux 2.4.21rc1-ac3
o	Fix copy/user handling errors in mpu401,	(me)
	mdc800, eicon, vicam
	| From Stanford checker
o	Fix an i810 error path bug that showed up	(John Stultz)
	in new Macromedia flash player
o	parisc arch code resync				(Joel Soete)
o	Merge big endian sstfb updates			(Joel Soete)
o	Fix compile with no quota again (without a	(me)
	typo this time)
o	Fix missing fc_type_trans			(Andreas Haumer)
o	Fix DRM 4.0 build				(Xosé Vázquez Pérez)
o	Fix SiS746 AGP merge				(Volker Armin Hemmann)
o	Merge XFS core code	(Steve Lord, Christoph Hellwig, and a load 
				 more people)
o	Merge current Intel ACPI
	| Except the mem= bits which neec bootloader resyncs
	| This breaks ipmi but that shouldnt be too hard to clean up
	| and should end up a lot nicer


Linux 2.4.21rc1-ac2
o	Add hwif->rw_disk callout			(me)
	| This allows us to remove the PDC4030 special case
	| and also allows for the 372N clock switch stuff.
o	Add HPT372N clock switcher (needs testing carefully)
o	TDFX framebuffer improvements/fixes		(Jakub Bogusz)
o	Hopefully fix legacy hd only build 		(me)
	|Reported by Jerome Chantelauze but different fix
o	Orinoco updates					(David Gibson)
o	AGP update for Intel 852/855			(David Dawes)
o	Fix leak in rio firmware handler		(Oleg Drokin)
o	Fix leak on aironet4500 error path		(Oleg Drokin)
o	Fix leak in roadrunner exit path		(Oleg Drokin)
o	Use the FAT free cluster hints in Linux		(Björn Stenberg)
o	Update Intermezzo contacts			(Jörn Engel)
o	Add DMI handling for broken PnPBIOS		(me)
o	Fix build without quota support			(Pavel Roskin)
o	Backport 2.5 slab poison improvements		(Faik Uygur)
o	Initial SiS 746 AGP (not for 8x yet)		(Volker Hemmann)
o	CCISS updates (support for 6404/256, cross	(Mike M)
	platform fixes, 64bit DMA
o	Fix the ide unregister deadlock bug		(me)
o	Generic XAPIC support (8 way HT etc)	(Venkatesh Pallipadi,
							Ingo Molnar)
o	A collection of NFS fixes			(Steve Dickson)
o	Fix IDE makefile a bit further			(Christoph Hellwig)
o	Use new ieee1394 code				(Ben Collins)
o	Minimal S/390 fixes to get -ac running ok	(Martin Schwidefsky)
o	Update S/390 cio layer				(Martin Schwidefsky)
o	Update S/390 DASD drivers			(Martin Schwidefsky)
o	Update S/390 31bit emulation			(Martin Schwidefsky)
o	S/390 documentation updates			(Martin Schwidefsky)
o	3215 driver updates				(Martin Schwidefsky)
o	Update S/390 ctc layer				(Martin Schwidefsky)
o	S/390 iucv updates				(Martin Schwidefsky)
o	Replace hwc with backport of 2.5 sclp		(Martin Schwidefsky)
o	Do the same with the 2.4/2.5 S/390 tape		(Martin Schwidefsky)
o	Updates to Serverworks IDE			(Duncan Lane, me)

Linux 2.4.21rc1-ac1
	Merge Marcelo 2.4.21-rc1
	- Drop broken m68k ide change
o	Fix PPC build					(Olaf Hering)
o	Fix up d_path handling				(Christoph Hellwig)
o	Update IPMI					(Corey Minyard)
o	Fix ext3 orphan race				(Ernie Petrides)
o	Update seq_file to match 2.5			(Randy Dunlap)
o	Remove experimental runtime scsi switch for IDE	(me)
	| Fixing it requires major ide register rewriting
o	Fix a deadlock on ide_unregister_subdriver	(Ben Herrenschmidt, me)
o	Fix an ext3 quota deadlock			(Jan Kara)
o	Fix ohci single shot interrupt out		(Frode Isaken)
o	Update summit idents				(James Cleverdon)
o	Clear sense buffer before retrying command	(Alan Stern)
o	Fix 82092 on a PCI bus with no ISA bridge	(David Woodhouse)
o	Fix duplicate pid corner case			(Takayoshi Kochi)
o	Add VIA phy to SiS900 driver			(Pedro A Gracia Fajorda)

Linux 2.4.21pre7-ac2
o	HPT raid support for disk-spanning/initial bits	(Wilfried Weissmann)
	of raid1
o	Cyclades PC300 driver initial merge		(Henrique Gobbi)
o	Fix bigendian use of pegasus driver		(Paul Mackerras)
o	Fix copy/user bugs in zoran drivers		(me)
	|From Stanford checker
o	Fix copy/user bugs in sisfb			(me)
	|From Stanford checker
o	Fix copy/user bugs in intermezzo		(me)
	|From Stanford checker
o	Fix copy/user bug in cmi8330 driver		(me)
	|From Stanford checker
o	Fix copy/user bug in awe sound			(me)
	|From Stanford checker
o	Merge GPL version of UTS Global CLAW driver	(Bob Scardapane)
o	Make cardbus fall back to PCI irq routing if 	(Pavel Roskin)
	needed
o	Fix sign bug in decnet				(Oleg Drokin)
o	Add AZT1008 PnP identifiers to ad1848		(Zwane Mwaikambo)

Linux 2.4.21pre7-ac1
	Merge with Marcelo 2.4
o	Merge memory barrier bits			(Zwane Mwaikambo)
o	Fix ip_conntrack merge after free		(Martin Josefsson)
o	Stop failing sethostname from clearing entire	(Stephan Maciej)
	field
o	Fix Config.in syntax for ADMA-100		(Mark Lord)
o	Remove IDE_DEBUG macro from 2.4 as well		(Alexander Atanasov)
o	In some situatiosn rq->buffer changes under  (Stephan von Krawcyznski)
	us in scsi. Store the idescsi_pc in ->special
	where it probably belongs anyway
o	Arcnet oops fixes				(Herbert Xu)
o	Pmac IDE update					(Ben Herrenschmidt)
o	Jbd compile warnings fixes			(Stephen Tweedie)
o	Dquot lock fix					(Oleg Drokin)
o	I2c fixups					(Greg Kroah-Hartmann)
o	Scsi tape updates				(Kai Makisara)
o	Update DAC960 and Qlogic drivers for Alpha	(Jay Estabrook)
o	Fix non pci build				(Stephane Oullette)
o	Fix non DMA ide build				(Andries Brouwer)
o	Fix PIO boot serverworks IDE problem		(Robert Hentosh,
							 me)
o	Small nfs dentry/dir fix			(Steve Dickson)
o	Allow longer for diagnostic commands in scsi	(Douglas Gilbert)
o	Sunrpc locking fix				(Steve Dickson)
o	Make tty->count atomic				(Jes Sorensen)
o	Update ipmi					(Corey Minyard)
o	Fix multiplex syscall wrong return code		(Ulrich Drepper)
o	M68K IDE updates				(Geert Uytterhoeven)
o	Small quota compatibility fix			(Jan Kara)
o	FPU copy fix 					(Ingo Molnar)
o	MPT Fusion update				(Pam Delaney)
o	SonyPi update					(Stelian Pop)
o	Reiserfs journal fixup				(Oleg Drokin)
	| Sanity test fail on old fs's
o	Fix X.25 crash on unknown facilities		(Tiaan Wessels)
o	Fix iphase module on new binutils		(Adrian Bunk)
o	Fix ad1889 module on new binutils		(Adrian Bunk)
o	Ditto for nsp32, ips, rtl8169
o	SiS frame buffer updates			(Thomas Winischhofer)
o	ndelay for m68k systems				(Geert Uytterhoeven)
o	m68k raw I/O updates				(Geert Uytterhoeven)
o	Fix IDE completion race 		(Jens Axboe, Andrew Morton)
o	m68k needs WANT_PAGE_VIRTUAL except sun 	(Richard Zidlicky)
o	Remove duplicate copy of PROC_CONSOLE		(Geert Uytterhoeven)
o	Fix swapoff crash				(Szabolcs Berecz)
o	Fix is_dumpable on zombies		(Marc-Christian Petersen)
o	Add vicicam to unusual storage devices
o	Update sony unusual device entries		(Hanno Böck)
	

Linux 2.4.21pre5-ac4 (not released generally)
o	Add initial test support for HPT372N		(me)
o	Fall back to PIO if the BIOS got mmio setup	(me)
	wrong for an SI3112/CMD680
	| Still doesnt explain some problems
o	Update amiga floppy driver			(Geert Uytterhoeven)
o	AmigaFB wrong IRQ fix				(Geert Uytterhoeven)
o	Amiga RTC updates				(Kars de Jong)
o	Amiga PCMCIA ethernet cleanups			(Kars de Jong)
o	Fix Amiga isa space mapping			(Kars de Jong)
o	Update apollo MMIO and pseudio MMIO		(Geert Uytterhoeven)
o	Fix bitop abuse in 5380 drivers for m68k	(Geert Uytterhoeven)
o	Fix m68k with recent binutils			(Andreas Schwab)
o	m68k prototype fix				(Geert Uytterhoeven)
o	m68k heartbeat config fix			(Geert Uytterhoeven)
o	Convert m68k cache macros to be inline		(Geert Uytterhoeven)
o	Update m68k VIA stuff				(Ray Knight)
o	Make m68k page size to fix warnings		(Geert Uytterhoeven)
o	Allow mac68k to build with no fb		(Geert Uytterhoeven)
o	Fix m68k network driver warnings		(Geert Uytterhoeven)
o	Backport m68k page_to_phys from 2.5		(Richard Zidlicky)
o	Move m68k low level iomap defines around	(Richard Zidlicky)
o	Update sun3 contact info			(Geert Uytterhoeven)
o	m68k warning fixes for scsi			(Geert Uytterhoeven)
o	Optimised stack check for m68k			(Roman Zippel)
o	M68K spelling fixes				(Steven Cole)
o	Make all sun3 pages as zone 0			(Sam Creasey)
o	Add ioremap for sun3 and use it in drivers	(Sam Creasey)
o	Sun3/3x updates and cleanups			(Sam Creasey)
o	Fix page calculation for first virtual page	(Sam Creasey)
	on sun3
o	Rename sbus structs for sparc compatibility	(Sam Creasey)
o	Update sun3 vectored interrupts			(Sam Creasey)
o	Dont update rtc from clock eveyr 11 mins	(Geert Uytterhoeven)
o	Add Sun3 VME support				(Sam Creasey)
o	ISDN ppp locking fix				(Patrick McHardy)
o	Semtimedop backport				(Mark Fasheh)
o	Fix missing cli in isdn_net			(Patrick McHardy)
o	Handle radeonfb mobility cards reporting	(Hanno Bock)
	no memory
o	Add another broken APM bios			(Arjan van de Ven)
o	Add Centrino IDE support			(Dean Gaudet)
o	Fix ibm hotplug memory leaks 			(Oleg Drokin)
o	Fix xjack memory leaks				(Oleg Drokin)
o	I2O memory leak	fix				(Oleg Drokin)
o	Emu10K memory leak fix				(Oleg Drokin)
o	cpqfc memory leak fix				(Oleg Drokin)
o	dpt_i2o memory leak notes			(Oleg Drokin)
o	Fix -ac build on alpha				(Ivan Kokshaysky)
o	Fix fd leak in initrd				(Pete Zaitcev)
o	Megaraid cleanup/check fix			(Oleg Drokin)
o	sx memory leak fix				(Oleg Drokin)
o	Kobil USB memory leak fix			(Oleg Drokin)
o	USB memory leak fix on hub			(Oleg Drokin)
o	Fix iphase driver null cells bug		(Eric Leblond)
o	Fix non zero offset reads on /proc/cmdline	(Dick Streefland)
o	Fix pdcraid ioctl pass through			(Jens Axboe)
o	Make hdparm report error on cable refusal	(Jens Axboe)
o	Reiserfs warning fix				(Maciej Soltysiak)
o	Fix warning in make_configs			(Maciej Soltysiak)
o	Remove unused variable in ide-proc		(Maciej Soltysiak)
o	CMD640 locking bug fixups			(Alexander Atanasov)
o	General IDE driver resync
o	Add another datafab kecf to the dev list	(Chris Clayton)
o	Fix wrong type for timer in aha152x		(Christoph Hellwig)
o	Avoid IDE hang on SMP when doing DMA->PIO	(Petr Vandrovec)
	changedown on error
o	Fix ide_wait_50ms fencepost error		(Alexander Atanasov)


Linux 2.4.21pre5-ac3
o	Add cpuid for SiS processors (SiS SiS SiS)	(me)
o	Fix basic ADMA100 driver support		(Mark Lord)
o	Fix memory leak on UFS error path		(Oleg Drokin)
o	Fix eepro100 ethtool hang			(Jason Lunz)
o	Fix procfs memory leak				(Kazuto Miyoshi)
o	Forte media driver update			(Martin Petersen)
o	WIN_SET_MAX crashes some old Samsung disks so	(Jens Axboe)
	dont issue it on disks < 32Gb in size
o	Compaq MS1000 may have sparse lun		(Tom Coughlan)
o	Add SiS FB idents for newer chipsets		(Thomas Winischhofer)
o	Fix vsscanf in hex mode				(Kevin Corry)
o	Fix 64bit jiffy cleanness in sis900, shaper,	(Dave Miller)
	dgrs, qlogicfc and tty layer
o	Reiserfs journal overflow fix			(Hans Reiser)
o	PCMCIA oops fix with HostAP			(Pavel Roskin)
o	Handle more panasonic compact USB CD-ROMs	(Go Taniguchi)
o	Extend USB hotplug to handle multi interface	(Go Taniguchi)
	HID devices (eg IBM BladeCenter)
o	Update ALi PCI ident data			(TH Chou)
o	Fix memory leak in ldm error path		(Oleg Drokin)
o	NCPFs ioctl passed wrong parameter		(Oleg Drokin)
o	Fix leak in ircomm core error path		(Oleg Drokin)
o	Make xconfig syntax error fixes			(Andreas Gruenbacher)
o	Fix memory leak in vlanproc exit path		(Oleg Drokin)
o	Fix iphase misaligned skb (I hope)		(me, based on stuff by
							 Eric Leblond)
o	Fix a couple of printk levels in IDE		(Alan Cox)

Linux 2.4.21pre5-ac2
o	Add PCI idents for ALi 1563 to dmfe		(Clear Zhang)
o	Busproc operations now error if unsupported	(me)
o	Make busproc handler return a status
o	Fix IDE reset locking. We don't want an IRQ	(me)
	poking around during a reset while the iface
	state is undefined
o	Remove half baked request clean up code 	(me)
	from ide_do_reset. We require the caller
	cleans up first
o	Add ide_abort functions to abort due to 	(me)
	host not target triggered events
o	Remove a pile of surplus hwgroup checks		(me)
o	Fix the reset ioctl paths to use 		(me)
	ide_abort
o	Fix PCI posting on ide resets			(me)
o	Call the dma_check routine when trying to	(me)
	enable DMA via hdparm
o	Add per driver abort handlers and use them	(me)
o	Forward port 8.0 ALi driver updates from	(me)
	Clear Zhang at ALi

Linux 2.4.21pre5-ac1
o	Merge with 2.4.21pre5
o	Do the final hatchet work on drive->id		(me)
	| IDE drive->id is now always valid so people
	| can no longer get that one wrong. 
o	DRIVER(drive) in IDE != NULL always now		(me)
	| A dummy driver removes a ton of conditions 
	| and a load of bugs
o	Move modem awareness into ac97_codec.c		(me)
	| Fixes CXT66 support I hope
o	Minimal cmedia codec setup/bug stuff		(me)
	| Note these codecs dont yet support AC3 and also
	| don't support volume control. May fix some sis7012
	| laptop setups with luck.
o	Fix mkdep bug causing devlist.h problem with	(Pavel Roskin)
	some versions of make
o	Fix missing mtd Makefile entry			(Adrian Bunk)
o	APIC initialisation fix				(Mikael Pettersson)
o	CCISS update					(Stephen Cameron)
o	USB transport size handling fix			(Alan Stern)
o	Add AGP entry for the VIA EPIA			(John Eckerdal)
o	Add Laneed idents to pegasus usb ethernet	(Go Taniguchi)
o	Add HID workaround for OKI USB keyboard		(Go Taniguchi)
o	Add idents for MTT_TE MN128 USB ethernet	(Go Taniguchi)
o	Add USB quirks for another memorystick		(Go Taniguchi)
o	Some minor typo fixes to keep 2.4/2.5 easier	(Steven Cole)
	to diff
o	Fix several operator and precdence problems	(Norbert Kiesel)
o	cciss error handling unregister fix		(Herbert Xu)
o	Kerneldoc for user access functions		(Jon Foster)
o	Further ALi IDE fixes				(Ivan Kokshaysky)
o	Improved 440GX bios workarounds			(Arjan van de Ven)
	| Thanks to the guys at Intel for hints on this
o	AMD74xx cable detect fixes			(Zoltan Hidvegi,
							 Vojtech Pavlik)
o	io/irq in mpu401 must not be initdata		(Daniel Ritz)
o	Handle shared irq on pcmcia qlogicfas		(Komuro)

Linux 2.4.21pre4-ac7
o	Next chunk of DRM merge towards 4.3 codebase
o	Fix ide-scsi deadlock on reset with SMP		(me)
o	Add some sun arrays to the scsi quirks list	(Joel Buckley)
	| They want multilun scanning always
o	Fix skbuff abuse in atm lec			(Chas Williams)
o	Update the ips driver 				(Jack Hammer)
o	Fix intelfb compile on SMP			(Arjan van de Ven)
o	One shot elevator contention fixing cache 	(Stephen Tweedie)
o	Support swapoff from initrd			(Stephen Tweedie)
o	Add another transparent bridge quirk		(Arjan van de Ven)
o	ieee1394 sleep fixes				(Arjan van de Ven)
o	Use 0xff for cpu target				(Arjan van de Ven)
o	kmap leak fix for nfs symlink			(Arjan van de Ven)
o	Fix incorrect kernel/user address handling	(me)
	crash in swapoff (root only)
o	kiovec accelerator				(??)
o	Export symbol needed by ipmi			(Andreas Haumer)
o	Add another 3c59x pci identifier		(Daniel Kopko)
o	Alpha build fix					(Elliot Lee)
o	Add new chips to e100				(Matt Wilson)

Linux 2.4.21pre4-ac6
o	Update IPMI to v18				(Corey Minyard)
o	More intel PIIX identifiers			(Bill Nottingham)
o	Update e100 for new identifiers			(Jeff Garzik)
o	Update Athlon SSE enabler			(Dave Jones)
o	Update auerswald USB isdn driver		(Wolfgang)
o	USB storage updates				(Matthew Dharm)
o	Add tripp idents to the pl2303 usb serial	(John Moses)
o	Add a new ftdi_sio ident			(Philipp Gühring)
o	Remove unused ohci driver field			(Johannes Erdfelt)
o	Fix EHCI abuse of SLAB_KERNEL in interrupt	(Oliver Neukum)
o	Fix dhcp on kaweth				(Oliver Neukum)
o	Fix some wrong idents in the pegasus driver	(Petko Manolov)
o	Fix ipaq name in usbnet				(Carsten)
o	USB macro cleanup				(Joern Engel)
o	Remove proc files in uhci that get stuck
o	Remove wrong comment in ohci/uhci drivers	(Johannes Erdfelt)
o	Roland SC8820 USB midi support			(Andrew Wood)
o	Fix USB naming bug				(Johannes Edrfelt)
o	Add ontrack to the hid ignore list		(Greg Kroah Hartmann)
o	Add tangtop to the hid blacklist		(Greg Kroah Hartmann)
o	USB scanner updates				(Henning Meier-Geinitz)
o	Fix an oom handling bug in sis drm
o	DRM updates for Radeon
	| Flightgear now takes > 2hrs to hang on my R9000
o	Fix various abusers of GFP_KERNEL in USB	(Arjan van de Ven)
o	Fix aic7xxx updates eaten by exclude file	(Sergio Visinoni)
o	Use check_gcc on crusoe				(Stelian Pop)
o	Update sonypi and meye drivers			(Stelian Pop)
o	Make input layer accept jogdial as valid	(Stelian Pop)
o	Intel i8xx framebuffer driver			(David Dawes)

Linux 2.4.21pre4-ac5
o	Fix the AMD ide bug() on boot up
o	Pass device to outbsync so that we can whack	(Ben Herrenschmidt)
	the bridge on weird platforms
o	Default sl82c05 second channel to PIO0		(Ben Herrenschmidt)
o	EHCI speed up fixes				(David Brownell)
o	Assorted cpia fixes				(Duncan Haldane)
o	SSE enable for later Athlon			(Daniel Egger)
o	3com 3c990 driver 				(David Dillow)
o	Fix config syntax error in DRM config		(Andrzej Krzysztofowicz)
o	Update pci-skeleton to fix pad bug in example	(me)
	| Noted by Roger Luethi
o	Supress popping when audio starts on via82cxxx	(Jorg Schuler)
o	Fix reiserfs direct I/O crash			(Oleg Drokin)
o	Allow cramfs initrd				(Christoph Hellwig)
o	Fix error path on dscc wan driver		(me)
o	Fix sign mishandling in epca driver		(me)
o	Fix sign mishandling in mwave driver		(Oleg Drokin)
o	Fix sign mishandling in mpt fusion		(Oleg Drokin)
o	Fix sign mishandling in aacraid			(Oleg Drokin)
o	Fix sign mishandling in tun			(Oleg Drokin, me)

Linux 2.4.21pre4-ac4
o	Attach a fake id struct to old/unprobed drives	(me)
	| Fixes a ton of special casing some of which was
	| buggy.
o	Fix incorrect sign handling in setup-pci noted	(me)
	by Oleg Drokin
o	Fix bogon error returns from init_chipset noted	(me)
	by Oleg Drokin
	| Fixes hpt366 crash on 66Mhz bus
o	Fix mishandling of flash/disk combinations	(me)
o	Fix handling of /proc/ide/*/identify with	(me)
	no driver loaded (band aid for now)
o	Fix IDE hang on rmmod and on poweroff		(me)
o	Fix IDE printk <6> bug				(Henning Schmiedehausen)
o	Radeon no longer needs AGPgart			(James McClain)
o	REPORTING-BUGS typo fix				(Faik Uygur)
o	ndelay() for PPC				(Ben Herrenschmidt)
o	PPC ioflush handling				(Ben Herrenschmidt)
o	PowerMac IDE updates				(Ben Herrenschmidt)
o	8169 missing includes for Alpha build		(Geoffrey Lee)
o	Fix sisfb build on boxes with no MTRR		(Geoffrey Lee)
o	Fix cpqfc build on Alpha			(Geoffrey Lee)
o	Fix forte build on Alpha			(Geoffrey Lee)
o	Add eth_io_copy_and_sum for Alpha		(Geoffrey Lee)
o	Fix bogus semicolon in 8253xtty			(Oleg Drokin)
o	Fix incorrect if in megaraid driver		(Oleg Drokin)
o	Fix sign warning in radio_cadet driver found	(me)
	by Oleg Drokin

Linux 2.4.21pre4-ac3
o	ALi FIFO setup channel fix			(Al Viro)
	| This needs careful testing. Treat -ac3 with a lot of care
	| on ALi platforms and report how it goes
o	Fix the dma waiting overflow			(Ben Herrenschmidt)
o	Fix ATAPI devices on VIA8235			(Vojtech Pavlik)
o	Add ndelay for Alpha				(Ivan kokshaysky)
o	Give ndelay sensible argument names		(Geert Uytterhoeven)
o	Fix pcnet32 big endian filtering		(Marcus Meissner)
o	Fix ordering problem with PCI radeon causing	(Chris Ison)
	DRI hangs
o	Fix C3 gcc compiler flags for newer gcc		(Jeff Garzik)
o	Replace nvidia and amd IDE drivers with new	(Vojtech Pavlik)
	driver
o	Fix missing ; in aicasm_gram.y			(Thibaut VARENE)
o	NCR5380 trivial fix				(Geert Uytterhoeven)
o	Make constants in maxiradio static		(Arnd Bergmann)
o	Fix typos of 'available'			(Alfredo Sanjuan)
o	Fix wrong checks in bttv ioctl code	(Alexandre Pereira Nunes)
o	Fix i2c_ack cris extra ";"
o	Fix JSIOCSBTNMAP extra ";"
o	Fix VIDIOCGTUNER on w9966
o	Fix amd8111e_read_regs
o	Fix smctr_load_node_addr
o	Fix sym53c8xxx extra ";"
o	Fix sym53c8xxx_2 extra ";"
o	Fix cs46xx download area clear
o	Fix hysdn bootup error handling
o	Fix mtd mount error checks
o	Fix dpt_i2o reset error paths
o	Fix a jffs error path handler
o	Fix es1371 error path on register
o	Fix sscape operator precedence
o	Fix copy counting in vrc5477 audio
o	Fix cdu31a oops with data cd			(Mauricio Martinez)
o	Fix ide taskfile if ";" errors			(Oleg Drokin)
o	Add 3com 3c460 to kaweth			(Oliver Neukum)
o	Kaweth length/dhcp fix				(Oliver Neukum)
o	ISD-200 requires IDE				(Olaf Hering)

Linux 2.4.21pre4-ac2
o	Turn on use of ide_execute_command everywhere	(Ross Biro, me)
o	First cut at settings locking for IDE		(me)
o	Add driver for CS5530 Kahlua audio		(me)
o	Fix wrong semicolons in system.h		(Mikael Pettersson)
o	Support root=nbd				(Ben LaHaise)
o	x86 byte order swapping optimisations		(Andi Kleen)
o	PMAC ide updates				(Ben Herrenschmidt)
o	Fix mishandling of nfsroot port= option		(Eric Lammerts)
o	Fix ALi audio on systems with > 2Gb RAM		(Ivan Kokshaysky)
o	Enable generic rtc on PPC boxes			(Geert Uytterhoeven)
o	Fix ide build with gcc 3.3 snapshot		(Olaf Hering)
o	Merge EHCI updates (qh state machine fix etc)	(David Brownell)
o	Fix radio-cadet SMP build			(Adrian Bunk)
o	Starfire updates				(Ion Badulescu)
o	Backport seq_file fix to 2.4			(Eric Sandeen)
o	Fix ext3 crash deleting a single non sparse	(Stephen Tweedie)
	file exceeding 1Tb

Linux 2.4.21pre4-ac1
o	Restore the mmap corner case fix		(Raul)
o	Add sendfile64 to 2.4.x				(Christoph Hellwig)
o	NLM garbage collection hang fix			(Daniel Forrest)
o	Enable kernel side pcigart for radeon		(Michael Danzer)
	| Requires recent XFree and ForcePCIMode
o	Don't bash legacy floppy on x86_64 bootup	(Mikael Petersson)
o	Forward sony joygdial input to input layer	(Stelian Pop)
o	TCP session stall fix				(Alexey Kuznetsov)
o	Ian Nelson has moved				(Ian Nelson)
o	Add unplugged iops ready for hotplug IDE support(me)
o	Add an OUTBSYNC iop for the IDE layer		(Ben Herrenschmidt)
o	Finish the ide_execute_command code		(me)
o	Switch ide-cd to ide_execute_command 		(me)
	| Always good to test stuff on read only devices first 8)
o	Fix IDE masking logic error			(Ross Biro)
o	Fix IDE mishandling of IRQ 0 devices		(me)
o	Fix printk levels on promise drivers		(me)
o	Clean up duplicate mmio ops/printk in siimage	(me)
o	Always set interrupt line with VIA northbridge	(me)
	| Should fix apic mode problems with USB/audio/net on VIA boards
o	Add Diamond technology dt0893 codec		(Thomas Davis)
o	Add IBM 'Ruthless' platform string to summit
o	Don't warn about IRQ when enabling a pure	(me)
	legacy mode IDE class device
o	Clean up radio_cadet locking and other bugs	(me)
o	Fix jiffies mishandling in eata drivers		(Tim Schmielau)
o	Quieten confusing DMA disabled messages		(Tomas Szepe)
o	i830 DRM update port over			(Arjan van de Ven)

Linux 2.4.21pre3-ac5
o	Fix erratic oopsing on 2.4.21pre3-ac*		(Hugh Dickins)
o	Fix an incorrect check in raw.c			(Artur Frycze)
o	Fix highmem IDE DMA				(Jens Axboe)
o	Fix the size of the EDD area			(Kevin Lawton)
o	Remove incorrect ACPI blacklist entry		(Pavel Machek)
o	SCSI memory leak fix				(Justin Gibbs)
o	Fix mmap of vmalloc area in kmem giving wrong	(Tony Dziedzic)
	results
o	Fix date in the microcode driver		(Jonah Sherman)
o	Fix incorrect smc9194 handling of skb_padto	(David McCullough)
o	Fix use of old check_regio function in umc8672	(William Stinson)
o	Remove unused variable in sc1200		(Bob Miller)
o	Perform ide_cs unregister in task context	(Paul Mackerras)
	| This doesn't fix all the bugs yet...
o	Fix bugs in the gx power management code	(Hiroshi Miura)
o	Fix the sl82c105 driver for the new IDE code	(Benjamin Herrenschmidt,
							 Russell King)
o	Remove cacheflush debug printk			(me)
o	Fix IDE paths in docs for new layout		(Karl-Heinz Eischer)
o	Generic RTC driver backport			(Geert Uytterhoeven)
o	HDLC driver updates				(Krzysztof Halasa)
o	AMD8111 random number generator support		(Andi Kleen)
o	Fix crashes on e2100 driver			(me)

Linux 2.4.21pre3-ac4
o	Finish verifying PIIX/ICH drivers versus errata	(me)
o	Fix handling of DMA0 MWDMA on early ICH		(me)
o	Fix compile in kernel for Aurora SIO16		(Adrian Bunk)
o	Clean up various Configure.help bits		(Adrian Bunk)
o	Disallow write combining on 450NX		(me)
o	Ensure rev C0 450NX has restreaming off		(me)
o	Don't do IDE DMA on rev B0 450NX or later	(me)
	450NX without BIOS workarounds for the hang
o	Update Configure.help for HPT IDE		(Adrian Bunk)
o	Fix harmless code error in sb_mixer		(Jeff Garzik)
o	Fix ethernet padding on via-rhine		(Roger Luethi)
o	Add ndelay functionality for x86		(me)
	| Based on Ross Biro's code
o	Add ide_execute_command 			(me)
	| Again based on Ross Biro's changed. Not yet used
	| This will be the new correct way to kick off an 
	| IDE command from non IRQ context
o	Matroxfb compile fix for one option combination	(Petr Vandrovec)

Linux 2.4.21pre3-ac3
o	Address comments on wcache value/issuing	(me)
	cache flush requests
o	Update credits entry for Stelian Pop		(Stelian Pop)
o	Backport some sonypi improvements from 2.5	(Kunihiko IMAI)
o	Fix pdcraid/silraid symbol clash		(Arjan van de Ven)
o	Fix ehci build with older gcc			(Greg Kroah-Hartmann)
o	Fix via 8233/5 hang				(me)
o	Fix non SMP cpufreq build			(Eyal Lebidinsky)
o	Fix sbp2 build with some config options		(Eyal Lebidinsky)
o	Fix ATM build bugs				(Francois Romieu)
o	Fix an ipc/sem.c race				(Bernhard Kaindl)
o	Fix toshiba keyboard double release		(Unknown)
o	CPUFreq updaes/fixes				(Dominik Brodowski)
o	Natsemi Geode/Cyrix MediaGX cpufreq support	(Hiroshi Miura,
							 Zwane Mwaikambo)
o	Add frequency table helpers to CPUfreq		(Dominik Brodowski)

Linux 2.4.21pre3-ac2
o	Fix the dumb bug in skb_pad			(Dave Miller)
o	Confirm some sparc bits are wrong and drop them	(Dave Miller)
o	Remove a wrong additional copyright comment	(Dave Miller)
o	Upgrade IPMI driver to v16			(Corey Minyard)
o	Fix 3c523 compile				(Francois Romieu)
o	Handle newer rpm where -ta is rpmbuild not rpm	(me)
o	Driver for Aurora Sio16 PCI adapter series	(Joachim Martillo)
	(SIO8000P, 16000P, and CPCI)
	| Initial merge
o	Backport Hammer 32bit mtrr/nmi changes		(Andi Kleen)
o	Add the fast IRQ path to via 8233/5 audio	(me)

Linux 2.4.21pre3-ac1
+	Handle battery quirk on the Vaio Z600-RE	(Paul Mitcheson)
*	EHCI USB updates				(David Brownell)
+	IDE Raid support for AMI/SI 'Medley' IDE Raid	(Arjan van de Ven)
+	NVIDIA nForce2 IDE PCI identifiers		(Johannes Deisenhofer,
							 Tim Krieglstein)
*	CPU bitmask truncation fix			(Bjorn Helgaas)
o	HP100 cleanup					(Pavel Machek)
o	Fix initial capslock handling on USB keyboard	(Pete Zaitcev)
+	Update dscc4 driver for new wan			(Francois Romieu)
+	Fix boot on Chaintech 4BEA/4BEA-R and		(Alexander Achenbach)
	Gigabyte 9EJL by handing wacky E820 memory
	reporting
o	SysKonnect driver updates			(Mirko Lindner)
o	Fix memory leak in n_hdlc			(Paul Fulghum)
o	Fix missing mtd dependancy			(Herbert Xu)
+	Clean up ide-tape printk stuff			(Pete Zaitcev)
+	IDE tape fixes					(Pete Zaitcev)
o	Fix size reporting of large disks in scsi	(Andries Brouwer)
+	Fix excessive stack usage in NMI handlers	(Mikael Pettersson)
+	Add support for Epson 785EPX USB printer pcmcia	(Khalid Aziz)
*	Quirk handler to sort out IDE compatibility	(Ivan Kokshaysky)
	mishandling
+	Model 1 is valid for PIV in MP table		(Egenera)
+	Ethernet padding fixes for various drivers	(me)
o	Allow trident codec setup to time out		(Ian Soboroff)
	This can happen with non PM codecs
o	Fix broken documentation link			(Henning Meier-Geinitz)
o	Update video4linux docbook			(William Stimson)
o	Correct kmalloc check in dpt_i2o		(Pablo Menichini)
o	Shrink kmap area to required space only		(Manfred Spraul)
o	Fix irq balancing				(Ben LaHaise)
o	CPUfreq updates					(Dominik Brodowski)
o	Fix typo in pmagb fb				(John Bradford)
o	EDD backport					(Matt Domsch)


REMOVED FOR NOW

-	RMAP

REMOVED FOR GOOD

-	LLC 	(See 2.5)
-	VaryIO  (Never accepted mainstream)

--
  "... and for $64000 question, could you get yourself vaguely familiar with
		the notion of on-topic posting?"
				-- Al Viro

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-01 22:16 Linux 2.4.22-pre10-ac1 Alan Cox
@ 2003-08-02  4:09 ` Barry K. Nathan
  2003-08-02  6:37   ` Manuel Estrada Sainz
  2003-08-03 10:57 ` [patch] 2.4.22-pre10-ac1: fix tp600.c compile warning Adrian Bunk
  1 sibling, 1 reply; 10+ messages in thread
From: Barry K. Nathan @ 2003-08-02  4:09 UTC (permalink / raw)
  To: Alan Cox; +Cc: linux-kernel

ccache gcc -D__KERNEL__ -I/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DMODVERSIONS -include /home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include/linux/modversions.h  -nostdinc -iwithprefix include -DKBUILD_BASENAME=firmware_class  -DEXPORT_SYMTAB -c firmware_class.c
firmware_class.c: In function `call_helper':
firmware_class.c:78: error: `hotplug_path' undeclared (first use in this function)
firmware_class.c:78: error: (Each undeclared identifier is reported only once
firmware_class.c:78: error: for each function it appears in.)
make[1]: *** [firmware_class.o] Error 1
make[1]: Leaving directory `/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/lib'
make: *** [_mod_lib] Error 2

#
# Automatically generated make config: don't edit
#
CONFIG_X86=y
# CONFIG_SBUS is not set
CONFIG_UID16=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y

#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
CONFIG_MK7=y
# CONFIG_MK8 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_HAS_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_F00F_WORKS_OK=y
CONFIG_X86_MCE=y

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_EDD=m
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_HIGHMEM is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_SMP is not set
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_TSC_DISABLE is not set
CONFIG_X86_TSC=y

#
# General setup
#
CONFIG_NET=y
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_ISA=y
# CONFIG_SCx200 is not set
CONFIG_PCI_NAMES=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_HOTPLUG is not set
# CONFIG_PCMCIA is not set
# CONFIG_HOTPLUG_PCI is not set
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_IKCONFIG=y
CONFIG_PM=y
CONFIG_APM=m
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_APM_DO_ENABLE=y
CONFIG_APM_CPU_IDLE=y
# CONFIG_APM_DISPLAY_BLANK is not set
CONFIG_APM_RTC_IS_GMT=y
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

#
# ACPI Support
#
# CONFIG_ACPI is not set

#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set
# CONFIG_PNPBIOS is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_CISS_SCSI_TAPE is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_BLK_STATS=y

#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_MD_RAID1 is not set
# CONFIG_MD_RAID5 is not set
# CONFIG_MD_MULTIPATH is not set
# CONFIG_BLK_DEV_LVM is not set
# CONFIG_BLK_DEV_DM is not set

#
# Networking options
#
CONFIG_PACKET=m
CONFIG_PACKET_MMAP=y
CONFIG_NETLINK_DEV=m
# CONFIG_NETFILTER is not set
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
CONFIG_INET_ECN=y
# CONFIG_SYN_COOKIES is not set
# CONFIG_IPV6 is not set
# CONFIG_KHTTPD is not set
# CONFIG_ATM is not set
# CONFIG_VLAN_8021Q is not set

#
#  
#
# CONFIG_IPX is not set
CONFIG_ATALK=y

#
# Appletalk devices
#
# CONFIG_DEV_APPLETALK is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_X25 is not set
CONFIG_EDP2=m
# CONFIG_LAPB is not set
# CONFIG_LLC is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_FASTROUTE is not set
# CONFIG_NET_HW_FLOWCONTROL is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set
# CONFIG_PHONE_IXJ is not set
# CONFIG_PHONE_IXJ_PCMCIA is not set

#
# ATA/IDE/MFM/RLL support
#
CONFIG_IDE=y

#
# IDE, ATA and ATAPI Block devices
#
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
# CONFIG_IDEDISK_STROKE is not set
# CONFIG_BLK_DEV_IDECS is not set
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
CONFIG_IDE_TASK_IOCTL=y

#
# IDE chipset support/bugfixes
#
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_ISAPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_PCI_WIP is not set
# CONFIG_BLK_DEV_ADMA100 is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_WDC_ALI15X3 is not set
CONFIG_BLK_DEV_AMD74XX=y
# CONFIG_AMD74XX_OVERRIDE is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_HPT34X_AUTODMA is not set
# CONFIG_BLK_DEV_HPT366 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
CONFIG_BLK_DEV_PDC202XX_OLD=y
# CONFIG_PDC202XX_BURST is not set
CONFIG_BLK_DEV_PDC202XX_NEW=y
# CONFIG_PDC202XX_FORCE is not set
# CONFIG_BLK_DEV_RZ1000 is not set
# CONFIG_BLK_DEV_SC1200 is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
CONFIG_BLK_DEV_SIS5513=y
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
CONFIG_BLK_DEV_VIA82CXXX=y
# CONFIG_IDE_CHIPSETS is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_DMA_NONPCI is not set
CONFIG_BLK_DEV_PDC202XX=y
CONFIG_BLK_DEV_IDE_MODES=y
# CONFIG_BLK_DEV_ATARAID is not set
# CONFIG_BLK_DEV_ATARAID_PDC is not set
# CONFIG_BLK_DEV_ATARAID_HPT is not set
# CONFIG_BLK_DEV_ATARAID_SII is not set

#
# SCSI support
#
CONFIG_SCSI=m

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=m
CONFIG_SD_EXTRA_DEVS=40
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_SR_EXTRA_DEVS=4
CONFIG_CHR_DEV_SG=m

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_DEBUG_QUEUES is not set
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set

#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AHA1740 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_MEGARAID2 is not set
# CONFIG_SCSI_ATA is not set
# CONFIG_SCSI_ATA_PIIX is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_DMA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_NCR53C7xx is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_NCR53C8XX is not set
# CONFIG_SCSI_SYM53C8XX is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_SEAGATE is not set
# CONFIG_SCSI_SIM710 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_BOOT is not set
# CONFIG_FUSION_ISENSE is not set
# CONFIG_FUSION_CTL is not set
# CONFIG_FUSION_LAN is not set

#
# IEEE 1394 (FireWire) support (EXPERIMENTAL)
#
# CONFIG_IEEE1394 is not set

#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set

#
# Network device support
#
CONFIG_NETDEVICES=y

#
# ARCnet devices
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
CONFIG_BONDING=y
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
CONFIG_ETHERTAP=m

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
# CONFIG_SUNLANCE is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNBMAC is not set
# CONFIG_SUNQE is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
CONFIG_PCNET32=m
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
CONFIG_B44=m
# CONFIG_CS89x0 is not set
CONFIG_TULIP=m
# CONFIG_TULIP_MWI is not set
# CONFIG_TULIP_MMIO is not set
# CONFIG_DE4X5 is not set
# CONFIG_DGRS is not set
# CONFIG_DM9102 is not set
# CONFIG_EEPRO100 is not set
# CONFIG_EEPRO100_PIO is not set
# CONFIG_E100 is not set
# CONFIG_LNE390 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_NE3210 is not set
# CONFIG_ES3210 is not set
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_SUNDANCE_MMIO is not set
# CONFIG_TLAN is not set
# CONFIG_TC35815 is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_RHINE_MMIO is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_NET_POCKET is not set

#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_MYRI_SBUS is not set
CONFIG_NS83820=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set

#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set

#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set

#
# Wan interfaces
#
# CONFIG_WAN is not set

#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set

#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Input core support
#
# CONFIG_INPUT is not set
# CONFIG_INPUT_KEYBDEV is not set
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
# CONFIG_SERIAL is not set
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256

#
# I2C support
#
# CONFIG_I2C is not set

#
# Mice
#
# CONFIG_BUSMOUSE is not set
CONFIG_MOUSE=m
CONFIG_PSMOUSE=y
# CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set
# CONFIG_MK712_MOUSE is not set

#
# Joysticks
#
# CONFIG_INPUT_GAMEPORT is not set

#
# Input core support is needed for gameports
#

#
# Input core support is needed for joysticks
#
# CONFIG_QIC02_TAPE is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_IPMI_PANIC_EVENT is not set
# CONFIG_IPMI_DEVICE_INTERFACE is not set
# CONFIG_IPMI_KCS is not set
# CONFIG_IPMI_WATCHDOG is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_SCx200_GPIO is not set
# CONFIG_AMD_RNG is not set
# CONFIG_INTEL_RNG is not set
# CONFIG_AMD_PM768 is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=m
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_AGP is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set

#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_QFMT_V2 is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
CONFIG_HFS_FS=m
CONFIG_HFSPLUS_FS=m
# CONFIG_BEFS_FS is not set
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set
CONFIG_EXT3_FS=y
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_UMSDOS_FS=m
CONFIG_VFAT_FS=m
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
# CONFIG_JFFS2_FS is not set
# CONFIG_CRAMFS is not set
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
# CONFIG_JFS_FS is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
CONFIG_MINIX_FS=m
# CONFIG_VXFS_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not set
CONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_MOUNT is not set
# CONFIG_DEVFS_DEBUG is not set
CONFIG_DEVPTS_FS=y
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_RW is not set
# CONFIG_ROMFS_FS is not set
CONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS_WRITE is not set
CONFIG_XFS_FS=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set

#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
# CONFIG_NFS_DIRECTIO is not set
# CONFIG_ROOT_NFS is not set
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
CONFIG_NFSD_TCP=y
CONFIG_SUNRPC=m
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set
# CONFIG_NCPFS_IOCTL_LOCKING is not set
# CONFIG_NCPFS_STRONG is not set
# CONFIG_NCPFS_NFS_NS is not set
# CONFIG_NCPFS_OS2_NS is not set
# CONFIG_NCPFS_SMALLDOS is not set
# CONFIG_NCPFS_NLS is not set
# CONFIG_NCPFS_EXTRAS is not set
# CONFIG_ZISOFS_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_SMB_NLS is not set
CONFIG_NLS=y

#
# Native Language Support
#
CONFIG_NLS_DEFAULT="cp437"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m

#
# Console drivers
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VIDEO_SELECT is not set
# CONFIG_MDA_CONSOLE is not set

#
# Frame-buffer support
#
# CONFIG_FB is not set

#
# Sound
#
# CONFIG_SOUND is not set

#
# USB support
#
CONFIG_USB=m
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
# CONFIG_USB_DEVICEFS is not set
# CONFIG_USB_BANDWIDTH is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_UHCI=m
CONFIG_USB_UHCI_ALT=m
CONFIG_USB_OHCI=m

#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_BLUETOOTH is not set
# CONFIG_USB_MIDI is not set
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_HP8200e is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set

#
# USB Human Interface Devices (HID)
#
# CONFIG_USB_HID is not set

#
#     Input core support is needed for USB HID input layer or HIDBP support
#
# CONFIG_USB_HIDINPUT is not set
# CONFIG_USB_HIDDEV is not set
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set

#
# USB Imaging devices
#
# CONFIG_USB_DC2XX is not set
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_SCANNER is not set
# CONFIG_USB_MICROTEK is not set
# CONFIG_USB_HPUSBSCSI is not set

#
# USB Multimedia devices
#

#
#   Video4Linux support is needed for USB Multimedia device support
#

#
# USB Network adaptors
#
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_CATC is not set
# CONFIG_USB_AX8817X is not set
# CONFIG_USB_CDCETHER is not set
# CONFIG_USB_USBNET is not set

#
# USB port drivers
#
# CONFIG_USB_USS720 is not set

#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set

#
# USB Miscellaneous drivers
#
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_TIGL is not set
# CONFIG_USB_BRLVGER is not set
# CONFIG_USB_LCD is not set

#
# Bluetooth support
#
# CONFIG_BLUEZ is not set

#
# Kernel hacking
#
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_FRAME_POINTER is not set
# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_IOVIRT is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_PANIC_MORSE is not set
# CONFIG_DEBUG_SPINLOCK is not set

#
# Cryptographic options
#
# CONFIG_CRYPTO is not set

#
# Library routines
#
CONFIG_CRC32=m
# CONFIG_ZLIB_INFLATE is not set
# CONFIG_ZLIB_DEFLATE is not set
CONFIG_FW_LOADER=m

-Barry K. Nathan <barryn@pobox.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02  4:09 ` Barry K. Nathan
@ 2003-08-02  6:37   ` Manuel Estrada Sainz
  2003-08-02  9:23     ` Marcel Holtmann
  0 siblings, 1 reply; 10+ messages in thread
From: Manuel Estrada Sainz @ 2003-08-02  6:37 UTC (permalink / raw)
  To: Barry K. Nathan; +Cc: Alan Cox, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1689 bytes --]

On Fri, Aug 01, 2003 at 09:09:17PM -0700, Barry K. Nathan wrote:
> ccache gcc -D__KERNEL__ -I/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DMODVERSIONS -include /home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include/linux/modversions.h  -nostdinc -iwithprefix include -DKBUILD_BASENAME=firmware_class  -DEXPORT_SYMTAB -c firmware_class.c
> firmware_class.c: In function `call_helper':
> firmware_class.c:78: error: `hotplug_path' undeclared (first use in this function)
> firmware_class.c:78: error: (Each undeclared identifier is reported only once
> firmware_class.c:78: error: for each function it appears in.)
> make[1]: *** [firmware_class.o] Error 1
> make[1]: Leaving directory `/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/lib'
> make: *** [_mod_lib] Error 2
[snip]
> # CONFIG_HOTPLUG is not set

 CONFIG_HOTPLUG needs to be enabled, attached patch to make it explicit:

 Just choose one of the following:

 firmware-class_2.4-lib-Config.in-incremental.diff
 	- Incremental patch.
	
 firmware-class_2.4-lib-Config.in.diff
 	- Updated Config.in pieces.

 firmware-class-2.4-3.2-full.diff
 	- Updated full patch.


 Have a nice day

 	Manuel
-- 
--- Manuel Estrada Sainz <ranty@debian.org>
                         <ranty@bigfoot.com>
			 <ranty@users.sourceforge.net>
------------------------ <manuel.estrada@hispalinux.es> -------------------
Let us have the serenity to accept the things we cannot change, courage to
change the things we can, and wisdom to know the difference.

[-- Attachment #2: firmware-class-2.4-3.2-full.diff --]
[-- Type: text/plain, Size: 24213 bytes --]

diff --exclude=CVS -urN linux-2.4.orig/Documentation/Configure.help linux-2.4.mine/Documentation/Configure.help
--- linux-2.4.orig/Documentation/Configure.help	2003-08-02 08:22:02.000000000 +0200
+++ linux-2.4.mine/Documentation/Configure.help	2003-07-26 13:33:40.000000000 +0200
@@ -26945,6 +26945,12 @@
 
   If unsure, say N.
 
+Hotplug firmware loading support (EXPERIMENTAL)
+CONFIG_FW_LOADER
+  This option is provided for the case where no in-kernel-tree modules require
+  hotplug firmware loading support, but a module built outside the kernel tree
+  does.
+
 NatSemi SCx200 support
 CONFIG_SCx200
   This provides basic support for the National Semiconductor SCx200
diff --exclude=CVS -urN linux-2.4.orig/Documentation/firmware_class/README linux-2.4.mine/Documentation/firmware_class/README
--- linux-2.4.orig/Documentation/firmware_class/README	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.4.mine/Documentation/firmware_class/README	2003-06-15 16:29:12.000000000 +0200
@@ -0,0 +1,58 @@
+
+ request_firmware() hotplug interface:
+ ------------------------------------
+	Copyright (C) 2003 Manuel Estrada Sainz <ranty@debian.org>
+
+ Why:
+ ---
+
+ Today, the most extended way to use firmware in the Linux kernel is linking
+ it statically in a header file. Which has political and technical issues:
+
+  1) Some firmware is not legal to redistribute.
+  2) The firmware occupies memory permanently, even though it often is just
+     used once.
+  3) Some people, like the Debian crowd, don't consider some firmware free
+     enough and remove entire drivers (e.g.: keyspan).
+
+ about in-kernel persistence:
+ ---------------------------
+ Under some circumstances, as explained below, it would be interesting to keep
+ firmware images in non-swappable kernel memory or even in the kernel image
+ (probably within initramfs).
+
+ Note that this functionality has not been implemented.
+
+ - Why OPTIONAL in-kernel persistence may be a good idea sometimes:
+ 
+	- If the device that needs the firmware is needed to access the
+	  filesystem. When upon some error the device has to be reset and the
+	  firmware reloaded, it won't be possible to get it from userspace.
+	  e.g.:
+		- A diskless client with a network card that needs firmware.
+		- The filesystem is stored in a disk behind an scsi device
+		  that needs firmware.
+	- Replacing buggy DSDT/SSDT ACPI tables on boot.
+	  Note: this would require the persistent objects to be included
+	  within the kernel image, probably within initramfs.
+	  
+   And the same device can be needed to access the filesystem or not depending
+   on the setup, so I think that the choice on what firmware to make
+   persistent should be left to userspace.
+
+ - Why register_firmware()+__init can be useful:
+ 	- For boot devices needing firmware.
+	- To make the transition easier:
+		The firmware can be declared __init and register_firmware()
+		called on module_init. Then the firmware is warranted to be
+		there even if "firmware hotplug userspace" is not there yet or
+		it doesn't yet provide the needed firmware.
+		Once the firmware is widely available in userspace, it can be
+		removed from the kernel. Or made optional (CONFIG_.*_FIRMWARE).
+
+	In either case, if firmware hotplug support is there, it can move the
+	firmware out of kernel memory into the real filesystem for later
+	usage.
+
+	Note: If persistence is implemented on top of initramfs,
+	register_firmware() may not be appropriate.
diff --exclude=CVS -urN linux-2.4.orig/Documentation/firmware_class/firmware_sample_driver.c linux-2.4.mine/Documentation/firmware_class/firmware_sample_driver.c
--- linux-2.4.orig/Documentation/firmware_class/firmware_sample_driver.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.4.mine/Documentation/firmware_class/firmware_sample_driver.c	2003-06-15 14:03:47.000000000 +0200
@@ -0,0 +1,121 @@
+/*
+ * firmware_sample_driver.c -
+ *
+ * Copyright (c) 2003 Manuel Estrada Sainz <ranty@debian.org>
+ *
+ * Sample code on how to use request_firmware() from drivers.
+ *
+ * Note that register_firmware() is currently useless.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/string.h>
+
+#include "linux/firmware.h"
+
+#define WE_CAN_NEED_FIRMWARE_BEFORE_USERSPACE_IS_AVAILABLE
+#ifdef WE_CAN_NEED_FIRMWARE_BEFORE_USERSPACE_IS_AVAILABLE
+char __init inkernel_firmware[] = "let's say that this is firmware\n";
+#endif
+
+static char ghost_device[] = "ghost0";
+
+static void sample_firmware_load(char *firmware, int size)
+{
+	u8 buf[size+1];
+	memcpy(buf, firmware, size);
+	buf[size] = '\0';
+	printk("firmware_sample_driver: firmware: %s\n", buf);
+}
+
+static void sample_probe_default(void)
+{
+	/* uses the default method to get the firmware */
+        const struct firmware *fw_entry;
+	printk("firmware_sample_driver: a ghost device got inserted :)\n");
+
+        if(request_firmware(&fw_entry, "sample_driver_fw", ghost_device)!=0)
+	{
+		printk(KERN_ERR
+		       "firmware_sample_driver: Firmware not available\n");
+		return;
+	}
+	
+	sample_firmware_load(fw_entry->data, fw_entry->size);
+
+	release_firmware(fw_entry);
+
+	/* finish setting up the device */
+}
+static void sample_probe_specific(void)
+{
+	/* Uses some specific hotplug support to get the firmware from
+	 * userspace  directly into the hardware, or via some sysfs file */
+
+	/* NOTE: This currently doesn't work */
+
+	printk("firmware_sample_driver: a ghost device got inserted :)\n");
+
+        if(request_firmware(NULL, "sample_driver_fw", ghost_device)!=0)
+	{
+		printk(KERN_ERR
+		       "firmware_sample_driver: Firmware load failed\n");
+		return;
+	}
+	
+	/* request_firmware blocks until userspace finished, so at
+	 * this point the firmware should be already in the device */
+
+	/* finish setting up the device */
+}
+static void sample_probe_async_cont(const struct firmware *fw, void *context)
+{
+	if(!fw){
+		printk(KERN_ERR
+		       "firmware_sample_driver: firmware load failed\n");
+		return;
+	}
+
+	printk("firmware_sample_driver: device pointer \"%s\"\n",
+	       (char *)context);
+	sample_firmware_load(fw->data, fw->size);
+}
+static void sample_probe_async(void)
+{
+	/* Let's say that I can't sleep */
+	int error;
+	error = request_firmware_nowait (THIS_MODULE,
+					 "sample_driver_fw", ghost_device,
+					 "my device pointer",
+					 sample_probe_async_cont);
+	if(error){
+		printk(KERN_ERR 
+		       "firmware_sample_driver:"
+		       " request_firmware_nowait failed\n");
+	}
+}
+
+static int sample_init(void)
+{
+#ifdef WE_CAN_NEED_FIRMWARE_BEFORE_USERSPACE_IS_AVAILABLE
+	register_firmware("sample_driver_fw", inkernel_firmware,
+			  sizeof(inkernel_firmware));
+#endif
+	/* since there is no real hardware insertion I just call the
+	 * sample probe functions here */
+	sample_probe_specific();
+	sample_probe_default();
+	sample_probe_async();
+	return 0;
+}
+static void __exit sample_exit(void)
+{
+}
+
+module_init (sample_init);
+module_exit (sample_exit);
+
+MODULE_LICENSE("GPL");
diff --exclude=CVS -urN linux-2.4.orig/Documentation/firmware_class/hotplug-script linux-2.4.mine/Documentation/firmware_class/hotplug-script
--- linux-2.4.orig/Documentation/firmware_class/hotplug-script	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.4.mine/Documentation/firmware_class/hotplug-script	2003-06-15 13:45:00.000000000 +0200
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+# Simple hotplug script sample:
+# 
+# Both $DEVPATH and $FIRMWARE are already provided in the environment.
+
+HOTPLUG_FW_DIR=/usr/lib/hotplug/firmware/
+
+echo 1 > /sysfs/$DEVPATH/loading
+cat $HOTPLUG_FW_DIR/$FIRMWARE > /sysfs/$DEVPATH/data
+echo 0 > /sysfs/$DEVPATH/loading
+
+# To cancel the load in case of error:
+#
+#	echo -1 > /sysfs/$DEVPATH/loading
+#
diff --exclude=CVS -urN linux-2.4.orig/include/linux/firmware.h linux-2.4.mine/include/linux/firmware.h
--- linux-2.4.orig/include/linux/firmware.h	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.4.mine/include/linux/firmware.h	2003-05-24 17:56:40.000000000 +0200
@@ -0,0 +1,20 @@
+#ifndef _LINUX_FIRMWARE_H
+#define _LINUX_FIRMWARE_H
+#include <linux/module.h>
+#include <linux/types.h>
+#define FIRMWARE_NAME_MAX 30 
+struct firmware {
+	size_t size;
+	u8 *data;
+};
+int request_firmware (const struct firmware **fw, const char *name,
+		      const char *device);
+int request_firmware_nowait (
+	struct module *module,
+	const char *name, const char *device, void *context,
+	void (*cont)(const struct firmware *fw, void *context));
+/* On 2.5 'device' is 'struct device *' */
+
+void release_firmware (const struct firmware *fw);
+void register_firmware (const char *name, const u8 *data, size_t size);
+#endif
diff --exclude=CVS -urN linux-2.4.orig/lib/Config.in linux-2.4.mine/lib/Config.in
--- linux-2.4.orig/lib/Config.in	2003-08-02 08:22:02.000000000 +0200
+++ linux-2.4.mine/lib/Config.in	2003-08-02 08:19:14.000000000 +0200
@@ -41,4 +41,9 @@
   fi
 fi
 
+if [ "$CONFIG_EXPERIMENTAL" = "y" -a \
+     "$CONFIG_HOTPLUG" = "y" ]; then
+   tristate 'Hotplug firmware loading support (EXPERIMENTAL)' CONFIG_FW_LOADER
+fi
+
 endmenu
diff --exclude=CVS -urN linux-2.4.orig/lib/Makefile linux-2.4.mine/lib/Makefile
--- linux-2.4.orig/lib/Makefile	2003-08-02 08:22:02.000000000 +0200
+++ linux-2.4.mine/lib/Makefile	2003-06-21 19:58:58.000000000 +0200
@@ -9,11 +9,12 @@
 L_TARGET := lib.a
 
 export-objs := cmdline.o dec_and_lock.o rwsem-spinlock.o rwsem.o \
-	       rbtree.o crc32.o
+	       rbtree.o crc32.o firmware_class.o
 
 obj-y := errno.o ctype.o string.o vsprintf.o brlock.o cmdline.o \
 	 bust_spinlocks.o rbtree.o dump_stack.o
 
+obj-$(CONFIG_FW_LOADER) += firmware_class.o
 obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
 obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem.o
 
diff --exclude=CVS -urN linux-2.4.orig/lib/firmware_class.c linux-2.4.mine/lib/firmware_class.c
--- linux-2.4.orig/lib/firmware_class.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.4.mine/lib/firmware_class.c	2003-06-24 23:39:07.000000000 +0200
@@ -0,0 +1,557 @@
+/*
+ * firmware_class.c - Multi purpose firmware loading support
+ *
+ * Copyright (c) 2003 Manuel Estrada Sainz <ranty@debian.org>
+ *
+ * Please see Documentation/firmware_class/ for more information.
+ *
+ */
+/*
+ * Based on kernel/kmod.c and drivers/usb/usb.c
+ */
+/*
+        kernel/kmod.c
+        Kirk Petersen
+
+        Reorganized not to be a daemon by Adam Richter, with guidance
+        from Greg Zornetzer.
+
+        Modified to avoid chroot and file sharing problems.
+        Mikael Pettersson
+
+        Limit the concurrent number of kmod modprobes to catch loops from
+        "modprobe needs a service that is in a module".
+        Keith Owens <kaos@ocs.com.au> December 1999
+
+        Unblock all signals when we exec a usermode process.
+        Shuu Yamaguchi <shuu@wondernetworkresources.com> December 2000
+*/
+/*
+ * drivers/usb/usb.c
+ *
+ * (C) Copyright Linus Torvalds 1999
+ * (C) Copyright Johannes Erdfelt 1999-2001
+ * (C) Copyright Andreas Gal 1999
+ * (C) Copyright Gregory P. Smith 1999
+ * (C) Copyright Deti Fliegl 1999 (new USB architecture)
+ * (C) Copyright Randy Dunlap 2000
+ * (C) Copyright David Brownell 2000 (kernel hotplug, usb_device_id)
+ * (C) Copyright Yggdrasil Computing, Inc. 2000
+ *     (usb_device_id matching changes by Adam J. Richter)
+ */
+
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/string.h>
+#include <linux/types.h>
+#include <linux/slab.h>
+#include <linux/kmod.h>
+#include <linux/proc_fs.h>
+#include <linux/vmalloc.h>
+#include <asm/hardirq.h>
+
+#include "linux/firmware.h"
+
+MODULE_AUTHOR("Manuel Estrada Sainz <ranty@debian.org>");
+MODULE_DESCRIPTION("Multi purpose firmware loading support");
+MODULE_LICENSE("GPL");
+
+#define err(format, arg...) \
+     printk(KERN_ERR  "%s:%s: " format "\n",__FILE__, __FUNCTION__ , ## arg)
+#define warn(format, arg...) \
+     printk(KERN_WARNING "%s:%s: " format "\n",__FILE__, __FUNCTION__ , ## arg)
+#define dbg(format, arg...) \
+     printk(KERN_DEBUG "%s:%s: " format "\n",__FILE__, __FUNCTION__ , ## arg)
+
+static int loading_timeout = 10;	/* In seconds */
+static struct proc_dir_entry *proc_dir_timeout;
+static struct proc_dir_entry *proc_dir;
+
+static int
+call_helper(char *verb, const char *name, const char *device)
+{
+	char *argv[3], **envp, *buf, *scratch;
+	int i = 0;
+
+	int retval = 0;
+
+	if (!hotplug_path[0])
+		return -ENOENT;
+	if (in_interrupt()) {
+		err("in_interrupt");
+		return -EFAULT;
+	}
+	if (!current->fs->root) {
+		warn("call_policy %s -- no FS yet", verb);
+		return -EPERM;
+	}
+
+	if (!(envp = (char **) kmalloc(20 * sizeof (char *), GFP_KERNEL))) {
+		err("unable to allocate envp");
+		return -ENOMEM;
+	}
+	if (!(buf = kmalloc(256, GFP_KERNEL))) {
+		kfree(envp);
+		err("unable to allocate buf");
+		return -ENOMEM;
+	}
+
+	/* only one standardized param to hotplug command: type */
+	argv[0] = hotplug_path;
+	argv[1] = "firmware";
+	argv[2] = 0;
+
+	/* minimal command environment */
+	envp[i++] = "HOME=/";
+	envp[i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
+
+#ifdef  DEBUG
+	/* hint that policy agent should enter no-stdout debug mode */
+	envp[i++] = "DEBUG=kernel";
+#endif
+	scratch = buf;
+
+	if (device) {
+		envp[i++] = scratch;
+		scratch += snprintf(scratch, FIRMWARE_NAME_MAX+25,
+				    "DEVPATH=/driver/firmware/%s", device) + 1;
+	}
+
+	envp[i++] = scratch;
+	scratch += sprintf(scratch, "ACTION=%s", verb) + 1;
+
+	envp[i++] = scratch;
+	scratch += snprintf(scratch, FIRMWARE_NAME_MAX,
+			    "FIRMWARE=%s", name) + 1;
+
+	envp[i++] = 0;
+
+	dbg("firmware: %s %s %s", argv[0], argv[1], verb);
+
+	retval = call_usermodehelper(argv[0], argv, envp);
+	if (retval) {
+		printk("call_usermodehelper return %d\n", retval);
+	}
+
+	kfree(buf);
+	kfree(envp);
+	return retval;
+}
+
+struct firmware_priv {
+	struct completion completion;
+	struct proc_dir_entry *proc_dir;
+	struct proc_dir_entry *attr_data;
+	struct proc_dir_entry *attr_loading;
+	struct firmware *fw;
+	int loading;
+	int abort;
+	int alloc_size;
+	struct timer_list timeout;
+};
+
+static int
+firmware_timeout_show(char *buf, char **start, off_t off,
+		      int count, int *eof, void *data)
+{
+	return sprintf(buf, "%d\n", loading_timeout);
+}
+
+/**
+ * firmware_timeout_store:
+ * Description:
+ *	Sets the number of seconds to wait for the firmware.  Once
+ *	this expires an error will be return to the driver and no
+ *	firmware will be provided.
+ *
+ *	Note: zero means 'wait for ever'
+ *  
+ **/
+static int
+firmware_timeout_store(struct file *file, const char *buf,
+		       unsigned long count, void *data)
+{
+	loading_timeout = simple_strtol(buf, NULL, 10);
+	return count;
+}
+
+static ssize_t
+firmware_loading_show(char *buf, char **start, off_t off,
+		      int count, int *eof, void *data)
+{
+	struct firmware_priv *fw_priv = data;
+	return sprintf(buf, "%d\n", fw_priv->loading);
+}
+
+/**
+ * firmware_loading_store: - loading control file
+ * Description:
+ *	The relevant values are: 
+ *
+ *	 1: Start a load, discarding any previous partial load.
+ *	 0: Conclude the load and handle the data to the driver code.
+ *	-1: Conclude the load with an error and discard any written data.
+ **/
+static ssize_t
+firmware_loading_store(struct file *file, const char *buf,
+		       unsigned long count, void *data)
+{
+	struct firmware_priv *fw_priv = data;
+	int prev_loading = fw_priv->loading;
+
+	fw_priv->loading = simple_strtol(buf, NULL, 10);
+
+	switch (fw_priv->loading) {
+	case -1:
+		fw_priv->abort = 1;
+		wmb();
+		complete(&fw_priv->completion);
+		break;
+	case 1:
+		kfree(fw_priv->fw->data);
+		fw_priv->fw->data = NULL;
+		fw_priv->fw->size = 0;
+		fw_priv->alloc_size = 0;
+		break;
+	case 0:
+		if (prev_loading == 1)
+			complete(&fw_priv->completion);
+		break;
+	}
+
+	return count;
+}
+
+static ssize_t
+firmware_data_read(char *buffer, char **start, off_t offset,
+		   int count, int *eof, void *data)
+{
+	struct firmware_priv *fw_priv = data;
+	struct firmware *fw = fw_priv->fw;
+
+	if (offset > fw->size)
+		return 0;
+	if (offset + count > fw->size)
+		count = fw->size - offset;
+
+	memcpy(buffer, fw->data + offset, count);
+	*start = (void*)count;
+	return count;
+}
+static int
+fw_realloc_buffer(struct firmware_priv *fw_priv, int min_size)
+{
+	u8 *new_data;
+	int new_size;
+
+	if (min_size <= fw_priv->alloc_size)
+		return 0;
+	if((min_size % PAGE_SIZE) == 0)
+		new_size = min_size;
+	else
+		new_size = (min_size + PAGE_SIZE) & PAGE_MASK;
+	new_data = vmalloc(new_size);
+	if (!new_data) {
+		printk(KERN_ERR "%s: unable to alloc buffer\n", __FUNCTION__);
+		/* Make sure that we don't keep incomplete data */
+		fw_priv->abort = 1;
+		return -ENOMEM;
+	}
+	fw_priv->alloc_size = new_size;
+	if (fw_priv->fw->data) {
+		memcpy(new_data, fw_priv->fw->data, fw_priv->fw->size);
+		vfree(fw_priv->fw->data);
+	}
+	fw_priv->fw->data = new_data;
+	BUG_ON(min_size > fw_priv->alloc_size);
+	return 0;
+}
+
+/**
+ * firmware_data_write:
+ *
+ * Description:
+ *
+ *	Data written to the 'data' attribute will be later handled to
+ *	the driver as a firmware image.
+ **/
+static ssize_t
+firmware_data_write(struct file *file, const char *buffer,
+		    unsigned long count, void *data)
+{
+	struct firmware_priv *fw_priv = data;
+	struct firmware *fw = fw_priv->fw;
+	int offset = file->f_pos;
+	int retval;
+
+	retval = fw_realloc_buffer(fw_priv, offset + count);
+	if (retval) {
+		printk("%s: retval:%d\n", __FUNCTION__, retval);
+		return retval;
+	}
+
+	memcpy(fw->data + offset, buffer, count);
+
+	fw->size = max_t(size_t, offset + count, fw->size);
+	file->f_pos += count;
+	return count;
+}
+
+static void
+firmware_class_timeout(u_long data)
+{
+	struct firmware_priv *fw_priv = (struct firmware_priv *) data;
+	fw_priv->abort = 1;
+	wmb();
+	complete(&fw_priv->completion);
+}
+static int
+fw_setup_class_device(struct firmware_priv **fw_priv_p,
+		      const char *fw_name, const char *device)
+{
+	int retval;
+	struct firmware_priv *fw_priv = kmalloc(sizeof (struct firmware_priv),
+						GFP_KERNEL);
+	*fw_priv_p = fw_priv;
+	if (!fw_priv) {
+		retval = -ENOMEM;
+		goto out;
+	}
+	memset(fw_priv, 0, sizeof (*fw_priv));
+
+	init_completion(&fw_priv->completion);
+
+	fw_priv->timeout.function = firmware_class_timeout;
+	fw_priv->timeout.data = (u_long) fw_priv;
+	init_timer(&fw_priv->timeout);
+
+	retval = -EAGAIN;
+	fw_priv->proc_dir = create_proc_entry(device, 0644 | S_IFDIR, proc_dir);
+	if (!fw_priv->proc_dir)
+		goto err_free_fw_priv;
+
+	fw_priv->attr_data = create_proc_entry("data", 0644 | S_IFREG,
+					       fw_priv->proc_dir);
+	if (!fw_priv->attr_data)
+		goto err_remove_dir;
+
+	fw_priv->attr_data->read_proc = firmware_data_read;
+	fw_priv->attr_data->write_proc = firmware_data_write;
+	fw_priv->attr_data->data = fw_priv;
+
+	fw_priv->attr_loading = create_proc_entry("loading", 0644 | S_IFREG,
+						  fw_priv->proc_dir);
+	if (!fw_priv->attr_loading)
+		goto err_remove_data;
+
+	fw_priv->attr_loading->read_proc = firmware_loading_show;
+	fw_priv->attr_loading->write_proc = firmware_loading_store;
+	fw_priv->attr_loading->data = fw_priv;
+
+	retval = 0;
+	fw_priv->fw = kmalloc(sizeof (struct firmware), GFP_KERNEL);
+	if (!fw_priv->fw) {
+		printk(KERN_ERR "%s: kmalloc(struct firmware) failed\n",
+		       __FUNCTION__);
+		retval = -ENOMEM;
+		goto err_remove_loading;
+	}
+	memset(fw_priv->fw, 0, sizeof (*fw_priv->fw));
+
+	goto out;
+
+err_remove_loading:
+	remove_proc_entry("loading", fw_priv->proc_dir);
+err_remove_data:
+	remove_proc_entry("data", fw_priv->proc_dir);
+err_remove_dir:
+	remove_proc_entry(device, proc_dir);
+err_free_fw_priv:
+	kfree(fw_priv);
+out:
+	return retval;
+}
+static void
+fw_remove_class_device(struct firmware_priv *fw_priv)
+{
+	remove_proc_entry("loading", fw_priv->proc_dir);
+	remove_proc_entry("data", fw_priv->proc_dir);
+	remove_proc_entry(fw_priv->proc_dir->name, proc_dir);
+}
+
+/** 
+ * request_firmware: - request firmware to hotplug and wait for it
+ * Description:
+ *	@firmware will be used to return a firmware image by the name
+ *	of @name for device @device.
+ *
+ *	Should be called from user context where sleeping is allowed.
+ *
+ *	@name will be use as $FIRMWARE in the hotplug environment and
+ *	should be distinctive enough not to be confused with any other
+ *	firmware image for this or any other device.
+ **/
+int
+request_firmware(const struct firmware **firmware, const char *name,
+		 const char *device)
+{
+	struct firmware_priv *fw_priv;
+	int retval;
+
+	if (!firmware) {
+		retval = -EINVAL;
+		goto out;
+	}
+	*firmware = NULL;
+
+	retval = fw_setup_class_device(&fw_priv, name, device);
+	if (retval)
+		goto out;
+
+	retval = call_helper("add", name, device);
+	if (retval)
+		goto out;
+	if (loading_timeout) {
+		fw_priv->timeout.expires = jiffies + loading_timeout * HZ;
+		add_timer(&fw_priv->timeout);
+	}
+
+	wait_for_completion(&fw_priv->completion);
+
+	del_timer(&fw_priv->timeout);
+	fw_remove_class_device(fw_priv);
+
+	if (fw_priv->fw->size && !fw_priv->abort) {
+		*firmware = fw_priv->fw;
+	} else {
+		retval = -ENOENT;
+		vfree(fw_priv->fw->data);
+		kfree(fw_priv->fw);
+	}
+out:
+	kfree(fw_priv);
+	return retval;
+}
+
+void
+release_firmware(const struct firmware *fw)
+{
+	if (fw) {
+		vfree(fw->data);
+		kfree(fw);
+	}
+}
+
+/**
+ * register_firmware: - provide a firmware image for later usage
+ * 
+ * Description:
+ *	Make sure that @data will be available by requesting firmware @name.
+ *
+ *	Note: This will not be possible until some kind of persistence
+ *	is available.
+ **/
+void
+register_firmware(const char *name, const u8 *data, size_t size)
+{
+	/* This is meaningless without firmware caching, so until we
+	 * decide if firmware caching is reasonable just leave it as a
+	 * noop */
+}
+
+/* Async support */
+struct firmware_work {
+	struct tq_struct work;
+	struct module *module;
+	const char *name;
+	const char *device;
+	void *context;
+	void (*cont)(const struct firmware *fw, void *context);
+};
+
+static void
+request_firmware_work_func(void *arg)
+{
+	struct firmware_work *fw_work = arg;
+	const struct firmware *fw;
+	if (!arg)
+		return;
+	request_firmware(&fw, fw_work->name, fw_work->device);
+	fw_work->cont(fw, fw_work->context);
+	release_firmware(fw);
+	__MOD_DEC_USE_COUNT(fw_work->module);
+	kfree(fw_work);
+}
+
+/**
+ * request_firmware_nowait:
+ *
+ * Description:
+ *	Asynchronous variant of request_firmware() for contexts where
+ *	it is not possible to sleep.
+ *
+ *	@cont will be called asynchronously when the firmware request is over.
+ *
+ *	@context will be passed over to @cont.
+ *
+ *	@fw may be %NULL if firmware request fails.
+ *
+ **/
+int
+request_firmware_nowait(
+	struct module *module,
+	const char *name, const char *device, void *context,
+	void (*cont)(const struct firmware *fw, void *context))
+{
+	struct firmware_work *fw_work = kmalloc(sizeof (struct firmware_work),
+						GFP_ATOMIC);
+	if (!fw_work)
+		return -ENOMEM;
+	if (!try_inc_mod_count(module)) {
+		kfree(fw_work);
+		return -EFAULT;
+	}
+
+	*fw_work = (struct firmware_work) {
+		.module = module,
+		.name = name,
+		.device = device,
+		.context = context,
+		.cont = cont,
+	};
+	INIT_TQUEUE(&fw_work->work, request_firmware_work_func, fw_work);
+
+	schedule_task(&fw_work->work);
+	return 0;
+}
+
+static int __init
+firmware_class_init(void)
+{
+	proc_dir = create_proc_entry("driver/firmware", 0755 | S_IFDIR, NULL);
+	if (!proc_dir)
+		return -EAGAIN;
+	proc_dir_timeout = create_proc_entry("timeout",
+					     0644 | S_IFREG, proc_dir);
+	if (!proc_dir_timeout) {
+		remove_proc_entry("driver/firmware", NULL);
+		return -EAGAIN;
+	}
+	proc_dir_timeout->read_proc = firmware_timeout_show;
+	proc_dir_timeout->write_proc = firmware_timeout_store;
+	return 0;
+}
+static void __exit
+firmware_class_exit(void)
+{
+	remove_proc_entry("timeout", proc_dir);
+	remove_proc_entry("driver/firmware", NULL);
+}
+
+module_init(firmware_class_init);
+module_exit(firmware_class_exit);
+
+EXPORT_SYMBOL(release_firmware);
+EXPORT_SYMBOL(request_firmware);
+EXPORT_SYMBOL(request_firmware_nowait);
+EXPORT_SYMBOL(register_firmware);

[-- Attachment #3: firmware-class_2.4-lib-Config.in-incremental.diff --]
[-- Type: text/plain, Size: 441 bytes --]

diff -u linux-2.4.mine/lib/Config.in linux-2.4.mine/lib/Config.in
--- linux-2.4.mine/lib/Config.in	2003-06-14 22:41:08.000000000 +0200
+++ linux-2.4.mine/lib/Config.in	2003-08-02 08:19:14.000000000 +0200
@@ -41,7 +41,8 @@
   fi
 fi
 
-if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
+if [ "$CONFIG_EXPERIMENTAL" = "y" -a \
+     "$CONFIG_HOTPLUG" = "y" ]; then
    tristate 'Hotplug firmware loading support (EXPERIMENTAL)' CONFIG_FW_LOADER
 fi
 

[-- Attachment #4: firmware-class_2.4-lib-Config.in.diff --]
[-- Type: text/plain, Size: 423 bytes --]

diff --exclude=CVS -urN linux-2.4.orig/lib/Config.in linux-2.4.mine/lib/Config.in
--- linux-2.4.orig/lib/Config.in	2003-08-02 08:22:02.000000000 +0200
+++ linux-2.4.mine/lib/Config.in	2003-08-02 08:19:14.000000000 +0200
@@ -41,4 +41,9 @@
   fi
 fi
 
+if [ "$CONFIG_EXPERIMENTAL" = "y" -a \
+     "$CONFIG_HOTPLUG" = "y" ]; then
+   tristate 'Hotplug firmware loading support (EXPERIMENTAL)' CONFIG_FW_LOADER
+fi
+
 endmenu

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02  6:37   ` Manuel Estrada Sainz
@ 2003-08-02  9:23     ` Marcel Holtmann
  2003-08-02  9:41       ` Manuel Estrada Sainz
  0 siblings, 1 reply; 10+ messages in thread
From: Marcel Holtmann @ 2003-08-02  9:23 UTC (permalink / raw)
  To: Manuel Estrada Sainz; +Cc: Barry K. Nathan, Alan Cox, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 1270 bytes --]

Hi Manuel,

> > ccache gcc -D__KERNEL__ -I/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DMODVERSIONS -include /home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include/linux/modversions.h  -nostdinc -iwithprefix include -DKBUILD_BASENAME=firmware_class  -DEXPORT_SYMTAB -c firmware_class.c
> > firmware_class.c: In function `call_helper':
> > firmware_class.c:78: error: `hotplug_path' undeclared (first use in this function)
> > firmware_class.c:78: error: (Each undeclared identifier is reported only once
> > firmware_class.c:78: error: for each function it appears in.)
> > make[1]: *** [firmware_class.o] Error 1
> > make[1]: Leaving directory `/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/lib'
> > make: *** [_mod_lib] Error 2
> [snip]
> > # CONFIG_HOTPLUG is not set
> 
>  CONFIG_HOTPLUG needs to be enabled, attached patch to make it explicit:

your patch didn't fix the problem, because it will be the same if some
internal driver needs request_firmware() and CONFIG_HOTPLUG is not set.
The call_helper() funtcion needs to be put into #idef's.

Regards

Marcel


[-- Attachment #2: patch-2.4.22-pre10-ac1-reqfrm-hotplug --]
[-- Type: text/x-patch, Size: 973 bytes --]

diff -urN linux-2.4.22-pre10-ac1/lib/firmware_class.c linux-2.4.22-pre10-ac1-reqfrm-hotplug/lib/firmware_class.c
--- linux-2.4.22-pre10-ac1/lib/firmware_class.c	Sat Aug  2 10:50:04 2003
+++ linux-2.4.22-pre10-ac1-reqfrm-hotplug/lib/firmware_class.c	Sat Aug  2 11:21:02 2003
@@ -67,6 +67,8 @@
 static struct proc_dir_entry *proc_dir_timeout;
 static struct proc_dir_entry *proc_dir;
 
+#ifdef CONFIG_HOTPLUG
+
 static int
 call_helper(char *verb, const char *name, const char *device)
 {
@@ -126,7 +128,9 @@
 
 	envp[i++] = 0;
 
+#ifdef  DEBUG
 	dbg("firmware: %s %s %s", argv[0], argv[1], verb);
+#endif
 
 	retval = call_usermodehelper(argv[0], argv, envp);
 	if (retval) {
@@ -137,6 +141,15 @@
 	kfree(envp);
 	return retval;
 }
+#else
+
+static inline int
+call_helper(char *verb, const char *name, const char *device)
+{
+	return -ENOENT;
+}
+
+#endif /* CONFIG_HOTPLUG */
 
 struct firmware_priv {
 	struct completion completion;

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02  9:23     ` Marcel Holtmann
@ 2003-08-02  9:41       ` Manuel Estrada Sainz
  2003-08-02  9:57         ` Marcel Holtmann
  0 siblings, 1 reply; 10+ messages in thread
From: Manuel Estrada Sainz @ 2003-08-02  9:41 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: Barry K. Nathan, Alan Cox, Linux Kernel Mailing List

On Sat, Aug 02, 2003 at 11:23:53AM +0200, Marcel Holtmann wrote:
> Hi Manuel,
> 
> > > ccache gcc -D__KERNEL__ -I/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DMODVERSIONS -include /home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include/linux/modversions.h  -nostdinc -iwithprefix include -DKBUILD_BASENAME=firmware_class  -DEXPORT_SYMTAB -c firmware_class.c
> > > firmware_class.c: In function `call_helper':
> > > firmware_class.c:78: error: `hotplug_path' undeclared (first use in this function)
> > > firmware_class.c:78: error: (Each undeclared identifier is reported only once
> > > firmware_class.c:78: error: for each function it appears in.)
> > > make[1]: *** [firmware_class.o] Error 1
> > > make[1]: Leaving directory `/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/lib'
> > > make: *** [_mod_lib] Error 2
> > [snip]
> > > # CONFIG_HOTPLUG is not set
> > 
> >  CONFIG_HOTPLUG needs to be enabled, attached patch to make it explicit:
> 
> your patch didn't fix the problem, because it will be the same if some
> internal driver needs request_firmware() and CONFIG_HOTPLUG is not set.
> The call_helper() funtcion needs to be put into #idef's.

 request_firmware() needs hotplug to do anything useful, without
 hotplug it doesn't make any sense. It is useless.

 The patch may not be it, but, IMHO, the way to go is making
 request_firmware() explicitly depend on hotplug, because it does depend
 on it. Suggestions are welcomed.

 Regards

 	Manuel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02  9:41       ` Manuel Estrada Sainz
@ 2003-08-02  9:57         ` Marcel Holtmann
  2003-08-02 12:29           ` Alan Cox
  0 siblings, 1 reply; 10+ messages in thread
From: Marcel Holtmann @ 2003-08-02  9:57 UTC (permalink / raw)
  To: Manuel Estrada Sainz; +Cc: Barry K. Nathan, Alan Cox, Linux Kernel Mailing List

Hi Manuel,

> > > > ccache gcc -D__KERNEL__ -I/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=athlon -DMODULE -DMODVERSIONS -include /home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/include/linux/modversions.h  -nostdinc -iwithprefix include -DKBUILD_BASENAME=firmware_class  -DEXPORT_SYMTAB -c firmware_class.c
> > > > firmware_class.c: In function `call_helper':
> > > > firmware_class.c:78: error: `hotplug_path' undeclared (first use in this function)
> > > > firmware_class.c:78: error: (Each undeclared identifier is reported only once
> > > > firmware_class.c:78: error: for each function it appears in.)
> > > > make[1]: *** [firmware_class.o] Error 1
> > > > make[1]: Leaving directory `/home/barryn/lsx/kernels/2.4/build/linux-2.4.22-pre10-ac1/lib'
> > > > make: *** [_mod_lib] Error 2
> > > [snip]
> > > > # CONFIG_HOTPLUG is not set
> > > 
> > >  CONFIG_HOTPLUG needs to be enabled, attached patch to make it explicit:
> > 
> > your patch didn't fix the problem, because it will be the same if some
> > internal driver needs request_firmware() and CONFIG_HOTPLUG is not set.
> > The call_helper() funtcion needs to be put into #idef's.
> 
>  request_firmware() needs hotplug to do anything useful, without
>  hotplug it doesn't make any sense. It is useless.

not quite true. If hotplug is not enabled it tells the driver that the
firmware can't be loaded. It is the same if hotplug_path is zero, or you
don't have the firmware.agent script, or your firmware is not present on
the filesystem or any other worse happens. But to handle these problems
is up to the driver.

You will have the same problem, if you disable the /proc filesystem or
don't mount it. You can't control all things a user is doing from inside
the kernel.

Regards

Marcel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02  9:57         ` Marcel Holtmann
@ 2003-08-02 12:29           ` Alan Cox
  2003-08-02 13:42             ` Marcel Holtmann
  0 siblings, 1 reply; 10+ messages in thread
From: Alan Cox @ 2003-08-02 12:29 UTC (permalink / raw)
  To: Marcel Holtmann
  Cc: Manuel Estrada Sainz, Barry K. Nathan, Alan Cox,
	Linux Kernel Mailing List

> not quite true. If hotplug is not enabled it tells the driver that the
> firmware can't be loaded. It is the same if hotplug_path is zero, or you

The ifdef should be there, or firmware should depend on hotplug, and
probably the firmware users should also depend on hotplug


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02 12:29           ` Alan Cox
@ 2003-08-02 13:42             ` Marcel Holtmann
  2003-08-10 22:34               ` Manuel Estrada Sainz
  0 siblings, 1 reply; 10+ messages in thread
From: Marcel Holtmann @ 2003-08-02 13:42 UTC (permalink / raw)
  To: Alan Cox; +Cc: Manuel Estrada Sainz, Barry K. Nathan, Linux Kernel Mailing List

Hi Alan,

> > not quite true. If hotplug is not enabled it tells the driver that the
> > firmware can't be loaded. It is the same if hotplug_path is zero, or you
> 
> The ifdef should be there, or firmware should depend on hotplug, and
> probably the firmware users should also depend on hotplug

I definitively prefer the #ifdef, because the firmware loader should 
automaticly selected and compiled if a driver needs it. But let a driver
depend on hotplug can not be the solution, because some drivers maybe
also work if the firmware loading fails.

Regards

Marcel



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [patch] 2.4.22-pre10-ac1: fix tp600.c compile warning
  2003-08-01 22:16 Linux 2.4.22-pre10-ac1 Alan Cox
  2003-08-02  4:09 ` Barry K. Nathan
@ 2003-08-03 10:57 ` Adrian Bunk
  1 sibling, 0 replies; 10+ messages in thread
From: Adrian Bunk @ 2003-08-03 10:57 UTC (permalink / raw)
  To: Alan Cox; +Cc: linux-kernel

I got the following compile warning in 2.4.22-pre10-ac1:

<--  snip  -->

...
gcc -D__KERNEL__ 
-I/home/bunk/linux/kernel-2.4/linux-2.4.22-pre10-ac1-full/inclu
de -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing 
-fno-common -pipe -mpreferred-stack-boundary=2 -march=k6   -nostdinc -iwithprefix 
include -DKBUILD_BASENAME=tp600  -c -o tp600.o tp600.c
tp600.c: In function `h2999_cleanup':
tp600.c:417: warning: control reaches end of non-void function
...

<--  snip  -->

Since the only caller of this function doesn't check the return value, I 
assume the following patch might be correct?

--- linux-2.4.22-pre10-ac1-full/drivers/hotplug/tp600.c~	2003-08-02 01:44:02.000000000 +0200
+++ linux-2.4.22-pre10-ac1-full/drivers/hotplug/tp600.c	2003-08-02 23:13:34.000000000 +0200
@@ -402,7 +402,7 @@
  *	Unregister and free up all of our slots
  */
 
-static int __devinit h2999_cleanup(struct h2999_dev *dev)
+static void __devinit h2999_cleanup(struct h2999_dev *dev)
 {
 	struct h2999_slot *s;
 	int slot;



I've tested the compilation with 2.4.22-pre10-ac1.

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Linux 2.4.22-pre10-ac1
  2003-08-02 13:42             ` Marcel Holtmann
@ 2003-08-10 22:34               ` Manuel Estrada Sainz
  0 siblings, 0 replies; 10+ messages in thread
From: Manuel Estrada Sainz @ 2003-08-10 22:34 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: Alan Cox, Linux Kernel Mailing List

On Sat, Aug 02, 2003 at 03:42:27PM +0200, Marcel Holtmann wrote:
> Hi Alan,
> 
> > > not quite true. If hotplug is not enabled it tells the driver that the
> > > firmware can't be loaded. It is the same if hotplug_path is zero, or you
> > 
> > The ifdef should be there, or firmware should depend on hotplug, and
> > probably the firmware users should also depend on hotplug
> 
> I definitively prefer the #ifdef, because the firmware loader should 
> automaticly selected and compiled if a driver needs it. But let a driver
> depend on hotplug can not be the solution, because some drivers maybe
> also work if the firmware loading fails.

 I don't find it necessary, but if you have so much interest, you have my
 blessing.

 Though I would instead put the #ifdef's in "linux/firmware.h" providing
 dummy inlines. Having to load a useless firmware_class.o seams a little
 overkill, and that way you also make it possible to compile
 request_firmware dependent code without CONFIG_FW_LOADER.

 Oh, and feel free to do the same for the 2.6 series :-)

 Have a nice day

 	Manuel

-- 
--- Manuel Estrada Sainz <ranty@debian.org>
                         <ranty@bigfoot.com>
			 <ranty@users.sourceforge.net>
------------------------ <manuel.estrada@hispalinux.es> -------------------
Let us have the serenity to accept the things we cannot change, courage to
change the things we can, and wisdom to know the difference.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2003-08-10 22:34 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-01 22:16 Linux 2.4.22-pre10-ac1 Alan Cox
2003-08-02  4:09 ` Barry K. Nathan
2003-08-02  6:37   ` Manuel Estrada Sainz
2003-08-02  9:23     ` Marcel Holtmann
2003-08-02  9:41       ` Manuel Estrada Sainz
2003-08-02  9:57         ` Marcel Holtmann
2003-08-02 12:29           ` Alan Cox
2003-08-02 13:42             ` Marcel Holtmann
2003-08-10 22:34               ` Manuel Estrada Sainz
2003-08-03 10:57 ` [patch] 2.4.22-pre10-ac1: fix tp600.c compile warning Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).