March 1, 2002

Linux 2.5.6-pre2

Author: JT Smith

Linux kernel 2.5.6-pre2 has been released. You can download it a, but make sure you use a mirror close to you for fastet download. Don't forget to take a look at the release notes!

Release notes for v2.5.6-pre2

Summary of changes from v2.5.6-pre1 to v2.5.6-pre2

 (02/02/22 1.369.9.1)
	Add JFS file system

 (02/02/22 1.369.9.2)
	Fix a corruption problem in the jfs dir table

 (02/02/22 1.369.9.3)
	bi_end_io prototype change

 (02/02/22 1.369.9.4)
	Remove redundant test from jfs_link

 (02/02/25 1.375.1.1)
	Clean up ARM TLB handling code; previously there was a lot of code
	replication across each processor type, each handling alignment of
	addresses slightly differently.  We unify this mess, and allow for
	greater flexibility in the per-CPU architecture TLB handlers.
	We also start to remove the ARM cache.h -> cpu_*.h -> proc-fns.h mess
	making the code cleaner and easier to follow.
	Documentation describing the expected behaviour of each TLB function
	for the 32-bit ARM processors is also included.

 (02/02/25 1.375.1.2)
	Fix nwfpe so GDB can debug user space floating point again.
	Patch 960/1 (Peter Teichmann):
	   NWFPE patch to be more compliant to IEEE-754
	1. The RND/URD instruction was handled as int_to_float(float_to_int
	   (number)) which is wrong because it only works for floating point
	   numbers that fit in an integer.
	2. The FLT instruction was setting the rounding precision for
	   extended precision calculations, which is not necessary
	   (probably a historic relict) but has undesirable side effects
	   on all extended precision calculations.

 (02/02/25 1.375.1.3)
	ARM preempt and scheduler fixups for 2.5.5

 (02/02/25 1.375.1.4)
	Numerous ARM build fixes, small updates and cleanups.

 (02/02/25 1.375.1.5)
	Rationalise interrupt handling on ARM.  With the old code, we had
	loops within loops within loops checking until each IRQ level didn't
	have any more interrupts for us.  This caused both latency problems,
	and locked out any chance of handling a second interrupt from down
	the chain while one on that chain was already in progress.
	The new structure splits out the machine specific IRQ handlers from
	the Linux driver specific IRQ handlers, giving the machine specific
	handlers much greater flexibility in handling the interrupt.  We
	also suck the SA1100 IRQ edge selection function into the IRQ core.

 (02/02/25 1.375.1.6)
	EPXA10DB/Camelot ARM machine updates.

 (02/02/25 1.375.1.7)
	Add ARM BadgePAD4 machine support.

 (02/02/25 1.375.1.8)
	Add support for Stork machine type to ARM architecture.

 (02/02/25 1.375.1.9)
	Add ARM support for Fortunet machine type.

 (02/02/25 1.375.1.10)
	Update Shark machine type.

 (02/02/26 1.398)
	[PATCH] x86-64 update for 2.5.5
	This patch makes x86-64 compile in 2.5.5 and syncs it with changes in the i386
	port. It also fixes some bugs that were discovered in recent testing:
	- enhance 32bit emulation and fix bugs.
	- fix security hole in vmalloc handling
	- Do not use lockless gettimeofday for now because it is buggy.
	The patch only changes x86_64 specific files.

 (02/02/26 1.399)
	[PATCH] x86_64 irqstat change
	x86_64 does not have an irq_stat array. It puts the interrupt information
	into its per CPU area instead, allowing more efficient access to it.
	This patch allows the architecture to overwrite
	the __IRQ_STAT access macro in linux/irq_cpustat.h.
	It is required to make the x86_64 port compile.

 (02/02/26 1.400)
	[PATCH] Linux Secondary Slave IDE timings
	This fix is from Dave Bogdanoff .
	Linux incorrectly sets up IDE timings for secondary slave drives on PC
	systems that use Intel PIIX Southbridges.
	This will correctly shift IDE slave PCI timings for register 44h so
	 - secondary slave (drive1) uses bits 4-7
	 - primary slave   (drive1) uses bits 0-3
	(The addition of the parentheses is needed so the shift will take
	place after the bitwise-or.  Without the parentheses, the shift will
	incorrectly always take place before the bitwise-or.)

 (02/02/26 1.369.11.1)
	[PATCH] Input patch - joystick drivers update
	As a step in the process of updating all the linux input drivers to the
	most recent version available, this patch updates all the joystick
	drivers that are in the kernel tree.
	Changes are mainly the input hotplug/proc support in every of the
	joystick drivers, and fixing trivial bugs here and there. I can supply a
	more detailed description upon request.

 (02/02/26 1.402)
	[PATCH] PATCH 1/16: NFSD:  Compilation Fix
	Fix include file so syscall compiles when NFSD not configured

 (02/02/26 1.403)
	[PATCH] PATCH 2/16: NFSD: BKL Removal: Lock export table
	Change export table lock to (SMP safe) rwsemaphore
	As a first step to removing the BKL from nfsd, this patch
	changes the lock used for the export table to be a rwsem semaphore.
	Previously it had the same functionality but depended on the BKL
	for correctness.
	As there is no "down_write_interruptible" this patch removes the
	posibility of interrupting the write_lock request, but this should
	never be needed anyway.

 (02/02/26 1.404)
	[PATCH] PATCH 3/16: NFSD: BKL Removal: Reply Cache lock
	Lock reply cache with SMP safety.
	As a second step to removing the BKL from nfsd, this patch
	protects the reply cache with a spinlock.
	This patches also removed cache_initialised as it
	is not longer needed (due to earlier patch).

 (02/02/26 1.405)
	[PATCH] PATCH 4/16: NFSD: BKL Removal: Locking in nfssvc.c
	Tidy up locking in nfssvc - preparing for BKL removal
	- nfsd_busy becomes atomic_t
	- nfsd_call_lock created to protect timing of calls and stats gathering
	- lock_kernel around thread creation and destruction.  It is
	  sufficiently uncommon that it doesn't really need a lock of it's
	  own.  It is currently under the BKL because all of the nfsservctl
	  syscall is, but that is about to be removed so we preserve BKL here.

 (02/02/26 1.406)
	[PATCH] PATCH 5/16: NFSD: BKL removal: add BKL where needed in filehandle lookup
	Protect dentry attachement from BKL
	The process of attaching a dentry into the dcache
	still needs the BKL I think.
	When all the other BKL changes in the VFS settle down, I
	will revisit this.  But as it is not a very frequent
	operation, the BKL wont hurt.
	Also add a down/up of i_sem when doing a lookup(".."),
	as it is down for all other lookups.

 (02/02/26 1.407)
	[PATCH] PATCH 6/16: BKL removal: Lock read-ahead cache
	Protect read-ahead cache with SMP safe locking
	As another step to removing the BKL from nfsd, this patch
	protects the read-ahead cache with a spinlock.

 (02/02/26 1.408)
	[PATCH] PATCH 7/16: NFSD: BKL removal: Discard high level BKL locking
	Remove last unneeded bit of BKL from knfsd
	Remove BKL from nfsservctl systemcall.  All
	components have their own locking.
	Also remove it from the body of nfsd threads.  Keep
	it for final thread destruction though.

 (02/02/26 1.409)
	[PATCH] PATCH 8/16: NFSD: RPC lists tidyup
	Change sunrpc to use more list.h lists
	The sunrpc client code uses home-grown doubly linked
	lists to group
	   - idle server threads
	   - pending server sockets
	   - waiting rpc tasks
	   - all rpc tasks.
	This patch converts all of these lists to  lists and
	also makes the list of all server sockets for a particular server into
	a list.h list instead of a single-link list.
	Possibly the least obvious change is replacing RPC_INIT_WAITQ
	with RPC_WAITQ and INIT_RPC_WAITQ.  These follow the model of
	LIST_HEAD and INIT_LIST_HEAD defined in list.h and are needed
	to initialise the list_head in the rpc_waitq properly.

 (02/02/26 1.410)
	[PATCH] PATCH 9/16: NFSD: RPC init tidyup
	Get sunrpc to use module_init properly
	rpc_register_sysctl was called in several places.
	Now only once.

 (02/02/26 1.411)
	[PATCH] PATCH 10/16: NFSD: TCP: rationalise locking in RPC server routines
	Tidy up SMP locking for svc_sock
	sk_lock is not necessary and is now removed.
	The only things that were happening under sk_lock but
	not the more global sv_lock were testing and setting
	some of the flags: sk_busy, sk_conn, sk_data etc.
	These have been changed to bits in a flags word which are atomically
	set and tested.
	Also, by establishing some simple rules about that must
	be done after setting these flags, the locking is not needed.
	With this patch sk_conn and sk_data are now flags, not counts (sk_data
	was already a flag for udp).  They are set if there might be
	a connection or data, and only clear when we are sure there aren't
	(or when we are about to check if there is).
	svc_sock_accepted becomes identical to svc_sock_recieved and
	so is discarded in favour of the latter.
	sk_rqstp was never used and is now gone.

 (02/02/26 1.412)
	[PATCH] PATCH 11/16: NFSD: TCP: close bad connections
	Detect and close tcp connections that we cannot work with.
	If an rpc fragment that arrives on a tcp connection
	is non-terminal or too large for our buffer, then we
	have to close the connection.
	Also, if a write fails on a tcp connection, we close
	the connection.

 (02/02/26 1.413)
	[PATCH] PATCH 12/16: NFSD: TCP: Close idle TCP connections
	Close idle rpc/tcp sockets
	We split the list of sv_allsocks into two, one
	of permanent sockets (udp, tcp listener) and one
	of temporary sockets (tcp data).
	Whenever we complete a successful receive on a temp socket,
	it gets pushed to the end of the list.
	Whenever a thread wants to do something, it first checks if
	the oldest temp socket has not has a receive for 6 mintutes
	(should possibly be configurable).  It so, we simulate
	a close.
	Finally we make sure that threads wake up every few minutes
	so that if the server is completely idle, all temp
	sockets will get closed.

 (02/02/26 1.414)
	[PATCH] PATCH 13/16: NFSD: TCP: Reserve space on sndbuf so we never block when writing
	Make sure there is alway adequate sndbuf space for replies.
	We keep track of how much space might be needed for replies
	and never dequeue a request unless there is adequate space
	for a maximal reply.  We assume each request will generate a maximal
	sized reply until the request is partly decoded.
	Each RPC program/procedure can specify the maximum size
	of a reply to the precedure (though they don't yet).
	The wspace callback is used to enqueue sockets that may be waiting
	for sndbuf space to become available.
	As there should always be enough buffer space to the full
	reply, the only reason that sock_sendmsg could block is due
	to a kmalloc delay.  As this is likely to be fairly quick (and if
	it isn't the server is clagged anyway) we remove the MSG_DONTWAIT
	flag, but set a 30 second timeout on waiting.  If the wait
	ever times out, we close the connection.  If it doesn't we can
	be sure that we did a complete write.
	When a request completes, we make sure that the space
	used for the reply does not exceed the space reserved.  This
	is an internal consistancy check.
	This patchs sets the sndbuf and rcvbuf sizes for all sockets
	used for rpc service.  This size if dependant on the servers bufsize (S) and
	partially on the number of threads (N).
	For UDP
	    sndbuf == 5*S
	    rcvbuf == (N+2)*S
	for TCP
	    sndbuf == N*S
	    rcvbuf == 3*S
	see code for rationale (in comments).

 (02/02/26 1.415)
	[PATCH] PATCH 14/16: NFSD: TCP: Declare max response sizes for NFS and NLM
	Declare response sizes for nfs/lockd requests
	This allows sndbuf reservation to be more accurate.
	For lockd we just say "0" for now, meaning assume the max.
	This could be improved, but it isn't critical.

 (02/02/26 1.416)
	[PATCH] PATCH 15/16: NFSD: TCP: Limit number of active tcp connections to an RPC service
	Limit number of active tcp connections to an RPC service
	If a connection comes in and that results in number of
	connections being more than 5 times the number of threads,
	then we close a connection.
	We randomly drop with the oldest or the newest connection.
	Thus if we are flooded with connection requests, some will
	get in and hopefully stay long enough to service at least one request.

 (02/02/26 1.417)
	[PATCH] PATCH 16/16: NFSD: TCP: enable NFS over TCP via config option
	Enable NFS over TCP via config option

 (02/02/26 1.418)
	update version

 (02/02/26 1.419)
	[PATCH] updates.
	Forward ports from 2.4, Various janitor bits, and some fixes by me to
	make the thing work again in 2.5.  I munged the MTDRAM driver to work
	also (seperate patch to follow), and it seems to work.
	David Woodhouse gave this the once over, and approved the changes.
	Complete changelog below:
	o   Don't create two slabcaches with the same name.
	o   Don't corrupt eraseblock lists on mount
	o   Don't mark nodes obsolete during mount
	o   __attribute__((packed)) on the node definitions.
	o   Fix up() without down() in jffs2_readdir().
	o   Fix duplicate version number usage - s/highest_version++/++highest_version/
	o   Fix (i.e. implement) mtime/ctime on directories.
	    maybe too busy with the bk stuff
	o   Don't allow hardlinks of directories.
	o   s/(mode&S_IFMT)==S_IFLNK/S_ISLNK(mode)/ et al to keep Al happy.
	o   Fix for garbage-collection of holes, where we used to write nodes out
	    with csize/dsize swapped. Workarounds for existing such brokenness.
	o   Improve wear levelling by rotating node lists on mount, to avoid starting
	     at one end of the flash every time.
	o   Remember to get internal inode-semaphore on symlink operations.

 (02/02/26 1.420)
	[PATCH] MTD update.
	Numerous bugfixes brought forward from 2.4. I added some quick bio fixes
	to mtdblock.c, which seemed to work for me whilst testing JFFS2 changes.

 (02/02/26 1.421)
	[PATCH] 2.5 scsi changes : qlogicfas.c fixed (resend)
	This patch allows my qlogic pcmcia scsi card to compile again, as broken
	by the recent scsi layer changes. 
	Despite davem's apparent suggestion that it'd be better to rewrite the
	driver, i'd rather not _just_ right now :)
		/ Brett Pemberton

 (02/02/27 1.423)
	Merge AMD7xx PCI compliance quirk fix from 2.4.18.

 (02/02/27 1.422.1.1)
	PCI Hotplug Core cleanups:
		- pcihpfs cleanup, removing unneeded file operations.
		- Added facility to have the files change their timestamps if the data
		  within the file changes.

 (02/02/27 1.422.1.2)
	Compaq PCI Hotplug controller driver:
		- changed proc entry creation to use the proper parent directory variable.

 (02/02/27 1.422.1.3)
	Added new IBM PCI Hotplug controller driver.
	Written by Irene Zubarev, Tong Yu, Jyoti Shah, Chuck Cole, and me.

 (02/02/27 1.422.2.1)
	USB auerswald driver:
		- changed the minor number the auerswald driver was using, as it was found
		  out that this number was already in use by another USB driver!

 (02/02/27 1.422.2.2)
	[PATCH] hid-core and hotplug
	This restores a line someone deleted, which
	affects hotplugging.  Basically this restores
	correct/previous behavior:  the HID driver only
	matches HID devices, not every device that
	ever connects.

 (02/02/27 1.422.2.3)
	misc hcd cleanup
	This is minor cleanup; pulls #includes out of files
	that aren't intended to compile by themselves.
	ehci bandwidth recording
	Here's a minor update to the EHCI interrupt scheduler,
	recording the bandwidth used by an URB for usbfs.

 (02/02/27 1.422.2.4)
	PATCH: audio driver urb allocation
	This fixes a bug in the audio driver which came from an
	incorrect conversion from static to dynamic URB allocation.
	It's against 2.5.5
	I noticed this while trying to see exactly how ISO transfers
	get used.  The bug is that while originally the driver statically
	allocated several structures {urb + N * iso packet descriptors},
	the update forgot to allocate the ISO descriptors.
	Likely not many folk noticed this on 32 bit machines, where
	sizeof urb == 92, because kmalloc rounds that up to 128,
	adding 36 bytes of external padding.  The ISO descriptors
	took up 32 bytes of that, which "just happened" to already
	have been allocated but unused.

 (02/02/27 1.422.3.1)
	Add dev->change_mtu support, supporting non-standard MTUs (within
	hardware limits) to the 8139cp net driver.

 (02/02/27 1.422.2.5)
	This is another USB API cleanup patch.  It's against 2.5.5:          
	    - Moves 8 functions from usb.[hc] to hcd.[hc]
	    - Also moves some data structures and types
	    - Now usbdevfs and "old" HCDs #include "hcd.h"
	    - Minor tweaks to the "hcd" layer (one less FIXME)
	    - Minor kernel doc and comment cleanups
	Basically this continues moving the HCD-only functionality
	out of the way of normal USB device drivers.  Converging
	"usb_bus" and "usb_hcd" (later!) will be a bit easier too.
	I did basic sanity tests, there's little to break ... :)
	There are still a few functions in usb.c that aren't for
	general driver use.  They're mostly for enumeration,
	in areas where the hub driver and HCD root hubs
	need to do various kinds of magic.  It wasn't clear
	how to decouple those, they can certainly wait.

 (02/02/27 1.422.2.6)
	uhci.c, speed improvements
	Basically, the patch turns switching off FSBR into a lazy operation with
	the assumption there will be another transfer shortly afterwards. This
	works wonders for usb-storage for instance.

 (02/02/27 1.422.2.7)
	usb ipaq driver:
	  	Added support for the HP Jornada.

 (02/02/27 1.422.2.8)
	usb serial core:
		- cleaned up some whitespace issues
		- changed MOD_INC logic for the generic driver
		- the port->sem lock is now taken by the serial core, not the individual
		  usb-serial drivers.  This is to reduce races.

 (02/02/27 1.422.2.9)
	usb visor driver:
		- reworked urb handling, getting rid of lots of code now that we have
		  proper urb reference counting.
		- removed port locks as the usb-serial core now does this.
		- added support for the Palm m515 thanks to SilaS

 (02/02/27 1.422.2.10)
	usb serial drivers:
		- removed all usage of port->sem as the usb serial core now does this.

 (02/02/27 1.422.1.5)
	Update 8139cp net driver copyright, version.  Remove dead code
	that accidentally crept back into driver.

 (02/02/27 1.422.1.6)
	Remove unneeded and possibly incorrect PPC-specific code
	from e1000 net driver.

 (02/02/27 1.422.1.7)
	Fix e1000 net driver 64-bit DMA initialization.

 (02/02/27 1.425)
	Add documentation for CONFIG_FB_TRIDENT.

 (02/02/27 1.426)
	This patch adds help texts for CONFIG_SERIAL_TX3912, 

 (02/02/27 1.427)
	Update sisfb for recent kdev_t changes in 2.5.[01].

 (02/02/27 1.422.2.11)
	usb core:
		- removed debugging statement in usb_free_urb() that I
		  accidentally left in :(

 (02/02/28 1.422.4.1)
	Missing parts of 2.5.6-pre1 JFFS2 merge. 

 (02/02/28 1.430)
	Shrink icache more aggressively - if we free the dentries,
	go ahead and free the inodes too, don't try to age them any
	more (the aging has been done on a dentry level).

 (02/02/28 1.431)
	[PATCH] 2.5.6-pre1 IDE cleanup 10
	This is finishing the cleanup parts already started in ide-clean-9.
	It kills the ide_register_module() and ide_unregister_module() as well
	as associated idiosyncracies alltogether. It turns out
	that this patch is actually fixing a bug which was present in the
	driver before: the sub-module initialization functions where called
	at least twice - which is an abundance.
	Tough there is a bit of global namespace pollution caused by this
	patch - but I'm aware of it and will fix it just a bit later.
	(The terminology used inside the IDE code is anyway nothing common
	else in the linux universum...)
	The next targets will be:
	1. Code obfuscation by "wrappers" around generic BIO level functions.
	2. ide_hwgroup_t - which is only used to serialize multiple
	discs on the same interrupt and similar. This is however a tough one.

	3. There is a plenty of code waste in the chipset drivers, where there
	is baroque informative code for the proc file system for static stuff,
	which in fact belongs just to syslog(). In fact the default RedHat
	distribution kernel is killing this gratitious abuse of the /proc
	concept since a long long time...
	I'm still awaiting the day of /proc/GPL, where GPL contains the
	full text of it...

 (02/02/28 1.432)
	[PATCH] 2.5.6-pre1 IDE cleanup 11
	1. Start of driver tree usage upon suggestion from Pavel Machek.
	     This still will needs a lot of further work in the future, but
	     the current code doesn't hurt anything and allowa Pavel to work
	     further from the base line. In esp. natively implemented
	      suspend to file requires this - which I would love to see comming
	     in,since I'm quite frequently using a notebook myself.
	2. Kill the _IDE_C macro, which was playing games on entierly
	     unnecessary declarations inside of header files in esp ide_modes.h
	3. Replace the functionally totally equal system_bus_block() and
	     ide_system_bus_speed() functions with one simple global
	     variable: system_bus_speed. This saves quite a significatn amount of
	     code. Unfortunately this is the part, which is makeing this
	     patch to appear bigger then it really is...
	4. Use ide_devalidate_drive() directly instead of idedisk_revalidate().
	5. Kill conditional CONFIG_KMOD as well as some other minor tweaks.
	Well this isn't that much in terms of functionality,  but it took me
	quite q bit of time to catch up on the patch-2.5.5.gz ;-)

 (02/02/28 1.433)
	[PATCH] 2.5.5 IDE cleanup 12
	1. Add some notes to Documentation/driver-model.txt about how and
	     and where to mount the driverfs.
	2. Reorganize and prepare the PCI scanning code for proper device
	dependant splitup. Basically tedious cleanup of macro games.
	3. Use struct pci_dev name field as the name of PCI host dapaters
	instead of invention ambigious IDE special names. This makes
	the kernel bootup messages look a bit shifted, since those names are bit
	longer, but makes up for consistance and should allow one later
	to rearage things to fit into the generic PCI device initialization
	mechanisms provided by the kernel.
	4. Set 3. Allowed us to make the host chip specific
	pci_init_xxx class functions have the proper signature of
	module initializers. This will make it possible to make true
	modules out of them later.
	5. Make some functions in cmd64x.c static which where not used
	6. rename ide_special_settings to trust_pci_irq - this is reflecting
	it's functionality better. And make it match the pci device vendor
	as well as the device ID. It was a BUG to match only the device id!.
	7. Make the chanell setup more tollerant for BIOS-es which don't
	report IO and MEM bases properly. The code found previously there
	tryed but was inconsistant.
	8. Start to use proper terminology in ide-pci.c: host chip, channel,
	drive instead of hwif, port, drive...
	9. Enlarge the name field from ide_hwif_t to 64 bytes. It was only 6
	previously and there where custom names there which where exceeding
	this!!! But since we use the proper pci devce name there now instead,
	we had to extend the size of this field anyway.
	10. Add some explanatory comments and fix misguiding comments here and
	11. Kill the proc_ide_write_config and proc_ide_read_config brain
	damage! Those where backdoors to the pci configuration registers on PCI
	devices and IO registers on directly connected ISA ATA controllers.
	They didn't discrement between them!
	Access to both of them *simply* doesn't belong into an operating system,
	which is supposed to abstract out the access to hardware! Did I mention
	that access to both can be done from user land without an IDE special
	interface! Any program which was using them (I hardly beleve there is
	one) just deserves to loose. The programmer responsible for it
	deserves to be fired immediately.
	12. Move ide_map_xx and ide_unmap_xx tinny bio level wrappers away
	from the "global" ide.h to where those are actually used and kill
	trivial wrappers for otherwise generic bio_ routines. Just fighting
	code obfuscation. The "rq->bio is used or is not there" brain
	damage in ide-taskfile.c has to be fixed later. Possibly by killing
	ide-taskfile.c alltogether, becouse this should be a driver for
	users and not a driver for ATA disk disaster recovery companys...
	13. Kill hwif->pci_devid and hwif->pci_venid. Just use the already
	present hwif->pci_dev field instead.
	14. Kill unused big switch ide_reinit_drive function. This silly
	functon was switching upon every possible device driver cathegory
	and calling the correspondng reinit function directly. This
	idiocy was fortunately not used.
	That's all... Most will be clear if one starts looking at the changes
	in ide.h of course...
	In contrast to the previous patches this one is actually fixing two
	serious bugs.
	The next direct step will be to kill the sigle place global PCI device
	type recognition list from ide-pci.c by pushing the entries to where
	they belong -> the host chips setup modules.

 (02/02/28 1.434)
	[PATCH] 2.5.6-pre1 IDE clean 13a
	This is finally moving the ide-pci.c file into a shape where
	the host chip detection lists can finally be moved to where they
	belong - into the particular chipset specific files.
	This is accomplished, by a rather obivous removal of macro magic,
	which was just making entries to the global device type
	list nonfunctional, instead of making them conditional on the
	corresponding CONFIG_BLHA options.
	The second thing was to add a flag field to the device recognition
	list, which made it possible to compress many of the
	multi || chip id conditionals go away.
	The only other file affected is ide.h - here is the change in the size
	of the name field, which apparently slipped through ide-clean-12...

 (02/02/28 1.435)
	[PATCH] 2.5.6-pre1 IDE clean 14
	Most importantly this patch is making ide.c use the
	new automagic for module initialization lists and further
	preparing the rest of the code in question here for proper
	module separation. Despite this the CMOS probe has been removed
	as well... *Iff*, which I don't expect, this breaks anything
	it can be reintroduced easely. During this effort an actual bug
	in the initialization of the main module has been uncovered as well.
	a quite serious BUG has been tagged in ide-scsi.c as well, but
	as far as now I just didn't get along to actually fixing it.
	(The patch is big enough as it is).
	Details follow:
	- Kill *unused* ide_media_verbose() funciton.
	- Remove the unnecessary media and supports_dma fields from
	- Remove the global name field from ide_driver_t struct by pushing it
	    down to the places where it's actually used.
	- Remove the unused hwif_data field from ide_hwif_t.
	- Push the supports_dsc_overlap condition up to the level where it
	    belongs: disk type as well.
	- Make the initialization of ide main ide.c work with the new module
	    initialization auto-magic instead of calling it explicitly in
	    ll_rw_block.c This prevents the ide_init() from being called twice. We
	    have BTW. renamed it to ata_module_init(), since  ata is more adequate
	    then ide and xxx_module_init corresponds better to the naming
	    conventions used elsewhere throughout the kernel.
	    This BUG was there before any ide-clean.  It was worked around by a
	    magic variable preventing the second call to succeed.  We have removed
	    this variable in one of the previous patches and thus uncovered it.
	- Kill proc_ide_read_driver() and proc_ide_write_driver(). The drivers
	    already report on syslog which drives they have taken care of.  (Or
	    at least they should). In esp. the proc_ide_write_driver() was just
	    too offending for me.  Beleve it or not the purpose of it was to
	    *request a particular* driver for a device, by echoing some magic
	    values to a magic file...
	    More importantly this "back door" was getting in the way of a properly
	    done modularization of the IDE stuff.
	- Made some not externally used functions static or not EXPORT-ed.
	- Provide the start of a proper modularization between the main module
	    and drivers for particular device types. Changing the name-space
	    polluting DRIVER() macro to ata_ops() showed how inconsistently the
	    busy (read: module  busy!) field from ide_driver_t
	    is currently used across the    different device type modules.
	    This has to be fixed soon.
	- Make the ide code use the similar device type ID numbers as the SCSI
	    code :-).  This is just tedious, but it will help in a distant
	    feature. It helps reading the code anyway.
	- Mark repettitive code with /* ATA-PATTERN */ comments for later
	    consolidation at places where we did came across it.
	- Various comments and notes added where some explanations was missing.

 (02/02/28 1.436)
	[PATCH] 2.5.6-pre1: parport 'writable' fix
	This patch fixes a problem with parport that shows up when interrupts
	are specified.  I sent this to Marcelo for 2.4.19-pre2 a short time
	2002-02-25  Tim Waugh  
* drivers/parport/parport_pc.c: Fix a bug spotted by Mikael
		* drivers/parport/ChangeLog: Updated.

 (02/02/28 1.437)
	[PATCH] 2.5.6-pre1: shut lp up
	This patch makes lp quieter in the common case that a printer does
	_not_ speak ECP. (People have been writing to me worried that the
	message means something bad.)
	2002-02-26  Tim Waugh  
* drivers/char/lp.c: Be quiet.

 (02/02/28 1.438)
	[PATCH] 2.5.6-pre1: parport and O_NONBLOCK
	This patch makes lp and ppdev do the Right Thing regarding O_NONBLOCK.
	2002-01-04  Tim Waugh  
* include/linux/parport.h: Define a special inactivity timeout
		meaning 'caller wants to use O_NONBLOCK'.
		* drivers/char/lp.c: Support O_NONBLOCK properly.
		* drivers/char/ppdev.c: Likewise.
		* drivers/parport/parport_pc.c: Likewise.
		* drivers/parport/ChangeLog: Updated.

 (02/02/28 1.439)
	[PATCH] 2.5.6-pre1: parport PCI card hooks
	This patch adds some necessary PCI card hooks.  Patch originally from
	VScom IIRC.
	2001-11-14  Tim Waugh   [sent 2001-11-27]
		* drivers/parport/parport_pc.c,
		drivers/parport/parport_serial.c: PCI card hooks.
		* drivers/parport/ChangeLog: Updated.

 (02/02/28 1.440)
	[PATCH] (1/7) kdev_t removals
	* new function - fsync_bdev() (analog of fsync_dev(), but takes
	  struct block_device * instead of kdev_t.  Callers of fsync_dev()
	  that have struct block_device in question are using fsync_bdev()
	* old code for fsync_dev(NODEV) had been moved to sys_sync().
	  Other callers of fsync_dev(NODEV) are calling sys_sync() now.
	* fsync_dev() became a wrapper fro fsync_bdev().
	* sync_dev() (not used anywhere in the tree) is gone.
	* i2oblock.c had fsync_dev() called in ->release().  Removed.
	* s390/block/xparm.c was doing fsync_dev() on its devices in
	  cleanup_module().  Removed.

 (02/02/28 1.441)
	[PATCH] (2/7) kdev_t removals
	* all remaining callers of sync_inodes() and sync_supers() pass
	  NODEV as an argument, so we can make them void(void).  Dead
	  code removed.

 (02/02/28 1.442)
	[PATCH] (3/7) kdev_t removals
	* sync_buffers() split in two functions (sync_buffers() and
	  sync_all_buffers()).  Callers of sync_buffers(NODEV) are
	  using the latter, those who actually pass a device - the former.
	* sync_buffers() switched from kdev_t to struct block_device *.

 (02/02/28 1.443)
	[PATCH] (4/7) kdev_t removals
	* write_some_buffers(), write_unlocked_buffers(), wait_for_buffers(),
	  wait_for_locked_buffers() and wait_for_some_buffers() converted
	  from kdev_t to struct block_device *.

 (02/02/28 1.444)
	[PATCH] (5/7) kdev_t removals
	* in reiserfs: a new caller of getblk() converted to sb_getblk() +
	  a bunch of places converted to use of ->s_id.

 (02/02/28 1.445)
	[PATCH] (6/7) kdev_t removals
	* in intermezzo a bunch of places where we are comparing ->s_dev
	  are replaced with comparing pointers to superblocks.

 (02/02/28 1.446)
	[PATCH] (7/7) kdev_t removals
	* minor cleanup in jffs (passing superblock instead of ->[si]_dev).

 (02/02/28 1.447)
	[PATCH] conversion to vfs_stat() for PPC64
		* stat() variants on ppc64 converted to use of vfs_stat() and its ilk.
		* missing LFS checks added.

 (02/02/28 1.450)
	[PATCH] update my credits entry
	This patch updates my entries in CREDITS + MAINTAINERS.

 (02/02/28 1.451)
	Fix off-by-one error reported by Anton Lavrentiev: we no
	longer count the idle thread in "nr_threads", so we should
	not discount it when returning sysinfo() information.

 (02/02/28 1.452)
	defconfig changes, /bin/sh boottime fallback fix

 (02/02/28 1.454)
	[PATCH] JFS cleanup
	  Cleanup - remove version and changelog.
	  These don't belong in Linus' kernel.

Summary of changes from v2.5.5 to v2.5.6-pre1

	Start new driver for HFC PCI based cards.

	Use __devexit_p for binutils 2.12 (prerelease).

	  Add -msmall-data to CFLAGS.

	Warning cleanup.

	Update for the -K3 scheduler.

	Fix typo in math-emu.  Patch from

	Tidy spinlock address generation.

 (02/02/14 1.331.8.2)
	Add board id to via-rhine net driver, for board added in
	previous revision (thus fixing the build).

 (02/02/14 1.331.7.3)
	Follow mingo's scheduling changes for x86.

 (02/02/16 1.342.5.1)
	ISDN update
	Contributed by Steven Cole.

 (02/02/16 1.342.6.2)
	Merge new gigabit ethernet driver e1000, from Intel.
	Contributors: Christopher Leech @ Intel, Scott Feldman @ Intel

 (02/02/16 1.342.5.2)
	ST5481 USB ISDN driver fix
	Fix typo introduced in the USB update.

 (02/02/18 1.342.7.2)
	New driver for HFC PCI based ISDN cards
	This is the first working version.

 (02/02/19 1.342.1.3)
	From Ivan Kokshaysky :
	Implement alpha xchg and cmpxchg for 8 and 16 bit quantities.

 (02/02/20 1.369.1.1)
	Correct filename comment in shark specific code

 (02/02/20 1.369.1.2)
	Update ARM syscall tables for new xattr functions

 (02/02/20 1.369.1.3)
	Fix buglet in ARM string functions

 (02/02/20 1.369.1.4)
	Fixup kdev_t changes in various ARM files

 (02/02/20 1.369.1.5)
	Add/remove  includes as appropriate

 (02/02/20 1.369.1.6)
	Remove some uses of depreciated save_flags_cli() in favour of the more
	generic local_irq_save() where appropriate.  (None of these are ever
	going to be used on a SMP ARM machine).

 (02/02/20 1.369.1.7)
	Add more big endian support to ARM, specifically stat structures and
	checksum functions.

 (02/02/20 1.369.1.8)
	Compilation fix; missing close paren.

 (02/02/20 1.369.2.3)
	Merge new driver for 3Com 3C359 Tokenring Velocity XL adapter.
	Contributor: Mike Phillips @ Linux Token Ring Project

 (02/02/20 1.371)
	- export vmalloc_to_page().

 (02/02/20 1.369.2.4)
	Get rid of non-working and unused "uvirt_to_bus()".
	Fix up vmalloc_to_page() and callers (argument is a kernel
	virtual address ie should be a "void *")

 (02/02/20 1.369.1.9)
	Preempt support and fix ARM build for thread_info changes

 (02/02/20 1.369.5.1)
	Link status detection fix for natsemi net driver.
	Apparently, the LSTATUS bit of BMSR latches low until a management read. 
	This causes ETHTOOL_GLINK to report no-link on the first read after the
	link is connected.  (damned QA people catch dumb stuff like this KNOWING
	I'll have to fix it).  This patch just forces GLINK to mdio_read() twice.

 (02/02/20 1.369.2.5)
	Update rivafb for kdev_t changes in early 2.5.x series.

 (02/02/20 1.369.1.10)
	Add extra ARM help texts to arch/arm/, update some other
	help texts.

 (02/02/20 1.369.1.11)
	Documentation for user space ARM alignment trap handler describing
	its modes of operation.

 (02/02/20 1.369.1.12)
	Fix a bug where a user-generated unaligned load could read or write kernel

 (02/02/20 1.369.6.2)
	Correct typo in pcmcia net drivers help text.

 (02/02/20 1.369.6.3)
	Add some missing help texts to drivers/net/

 (02/02/20 1.369.2.6)
	This patch corrects PCI device id in pci_ids.h for Oxford Semi OX16PCI952
	PCI/dual 16950 UART chip, and adds this entry to pci.ids.  I downloaded the
	datasheet today and verified that 9521 is the correct device id.

 (02/02/20 1.369.6.4)
	Janitor patch for olympic tokenring driver, to replace the
	save_flags/cli/restore flags sequence with spin_locks.

 (02/02/20 1.369.7.2)
	usb uhci.c:
		- added usb_get_urb() and usb_put_urb() logic

 (02/02/20 1.369.7.3)
	usb usb-ohci.c:
		- added usb_put_urb() and usb_get_urb() logic

 (02/02/20 1.369.7.4)
	usb usb-uhci.c:
		- added usb_put_urb() and usb_get_urb() logic.

 (02/02/20 1.369.7.5)
	usb hub:
		- fix problem with us not delaying for any ammount of time after a new device
		  has been powered up, as the USB spec indicates should happen.

 (02/02/20 1.369.7.6)
	[PATCH] uhci.c, one more toggle fix
	This patch fixes another toggle bug and reverts the previous bogus
	patch which caused compile warnings.
	It also adds a quick comment explaining the criteria.

 (02/02/20 1.369.7.7)
	[PATCH] uhci.c, interrupt unlink in completion
	This patch fixes a bug where an interrupt URB is unlinked in the drivers
	completion handler and we'll try to resubmit it anyway.

 (02/02/20 1.369.7.8)
	[PATCH] uhci.c, fix pci dma ordering issue
	There was a bug where we unmap the PCI DMA mapping and then sync the
	data afterwards. This reverses the ordering as well as insures we don't
	unmap the region more than once.

 (02/02/20 1.369.7.9)
	uhci.c didn't work well with USB storage. It would tend to stall
	relatively quickly and sometimes locked up the system. It usually only
	took me a couple of tries ripping a CD to reproduce the problem.
	I took a long hard look at the locking in uhci.c and decided to clean
	it up, fixing a couple of bugs along the way as well as documenting the
	locking strategy.
	With this patch applies, where I could only rip a CD a couple of times
	before causing problems, I was able to rip a CD 12,000 times in a row
	successfully, before I stopped it. Not a single error :)

 (02/02/20 1.369.7.10)
		- removed an unneeded header.  Thanks to Jeff Garzik for pointing this out.

 (02/02/20 1.369.7.11)
	usb vicam driver:
		- compile time fixes

 (02/02/20 1.369.7.12)
	usb ov511 driver:
		- update to version 1.49
		  (with a bit of merge foo from greg)

 (02/02/21 1.369.6.5)
	Update (ancient) wireless net drivers netwave_cs, wavelan,
	and wavelan_cs to new wireless API.

 (02/02/21 1.369.6.6)
	Update wireless net drivers wavelan and wavelan_cs to directly
	use spin_[un]lock_irq{save,restore}, instead of defining static
	inline functions to do the same thing (but possibly in a non-portable

 (02/02/21 1.373)
	cleanups, speedups and fixes. Added support for non-current set_cpus_allowed().

 (02/02/21 1.374)
	- make i_mmap and i_mmap_shared a list.h list
	 make vma->vm_next_share and vma->vm_pprev_share
	  a proper list.h list as well.

 (02/02/21 1.369.1.15)
	make rd.c compile again

 (02/02/21 1.369.1.16)
	[PATCH] imm.c
	2.5.5 Oopses at boot time with a disk in a zipdrive.
	With this patch all is fine. I have not read the
	patch, certainly not checked it for correctness,
	just observed that it works for me.
	I think the author is Rich Baum.

 (02/02/21 1.369.1.17)
	[PATCH] 2.5 dropping unneded lock precense check.
	After BKL was moved from the VFS into the filesystem's methods in the lookup
	call, we do not need to check BKL is actually held (we know it is not).
	This patch patch removes unneeded lock_depth check.
	Without this patch reiserfs cannot be used on SMP.

 (02/02/21 1.369.1.18)
	[PATCH] PATCH: scsi driver update for 2.5.5
	Here enclosed patch for eata.c, eata.h, u14-34f.c, u14-34f.h
	to be applied to lk-2.5.5.
	       + Remove any reference to virt_to_bus().
	       + Fix pio hang while detecting multiple HBAs.
	       + Fixed a board detection bug: in a system with
	         multiple ISA/EISA boards, all but the first one
	          were erroneously detected as PCI.
	       + Remove any reference to virt_to_bus().
	       + Fix pio hang while detecting multiple HBAs.

 (02/02/21 1.369.1.19)
	[PATCH] Insufficient validity check of fat_read_super() 
This patch add the validity check of 2 values (fats, reserved). These
	values must not be 0.
	OGAWA Hirofumi  (02/02/21 1.369.1.20)
	[PATCH] proper lseek locking in ALSA, take 3
	The attached patch implements proper locking in ALSA lseek methods.
	Note ALSA has 3 lseek implementations, but only:
		sound/core/info.c :: snd_info_entry_llseek()
	requires locking.  I wrapped the function in the BKL.  According to
	Jaroslav Kysela the gus_mem_proc method is only called from above.  The
	third lseek, in hwdep.c, clearly doesn't need locking.  Without this
	patch, the above lseek is not safe.
		Robert Love

 (02/02/21 1.369.1.21)
	[PATCH] add lseek changes to fs porting guide
	Al updated Documentation/filesystems/porting with 2.5 changes but there
	is no mention of lseek.  The following patch, against 2.5.5, adds lseek
	to the list of functions that no longer are called with the BKL.
		Robert Love

 (02/02/21 1.369.1.22)
	[PATCH] .text.exit linkage errors
	A forward-port of all the .text.exit fixes which went into
	2.4.   Also contains a couple of s/MINOR/minor/ changes.

 (02/02/21 1.369.1.24)
	[PATCH] missing chunk in lvm-fixes in 2.5.5
	the lvm-patch that went into 2.5.5 missed the changes in lvm.h and is
	still not compileable. This patch adds those changes. The kernel i'm
	running right now has this patch and /var and /home on lvm.

 (02/02/23 1.376)
	- new, less intrusive and faster migration method:
	 * This is how migration works:
	 * 1) we queue a migration_req_t structure in the source CPU's
	 *    runqueue and wake up that CPU's migration thread.
	 * 2) we down() the locked semaphore => thread blocks.
	 * 3) migration thread wakes up (implicitly it forces the migrated
	 *    thread off the CPU)
	 * 4) it gets the migration request and checks whether the migrated
	 *    task is still in the wrong runqueue.
	 * 5) if it's in the wrong runqueue then the migration thread removes
	 *    it and puts it into the right queue.
	 * 6) migration thread up()s the semaphore.
	 * 7) we wake up and the migration is done.

 (02/02/23 1.377)
	- cleanup patch from Hugh Dickins, fix up drivers to use vmalloc_to_page() instead of local hacks of uvirt_to_kva(). (and related fixes.)

 (02/02/25 1.375.2.1)
	[PATCH] Re: [BUGFIX] handling bad inodes in 2.4.x kernels (fwd)
	here's much simpler fix (both 2.4 and 2.5):

 (02/02/25 1.379)
	Update kernel version and defconfig

 (02/02/25 1.380)
	[PATCH] (1/3) fs/super.c cleanups
	* missing yield() added to grab_super() (on failure exit).  Without
	  that we have a nasty race - if get_sb_bdev() happens just before
	  we grab ->s_umount in kill_super(), we are going to have
	  get_sb_bdev() spinning indefinitely long without yielding CPU,
	  so that kill_super() could make progress (and break the loop).
	* in kill_super() code that does actual superblock shutdown is
	  wrapped in if (sb->s_root) {}.  That condition is true for
	  all old callers of kill_super(), so we don't change existing
	* instances of deactivate_super()/remove_super() (after failed
	  call of foo_fill_super()) are replaced with
	  - now it becomes legitimate (kill_super() works on such guys and
	  does exactly what we want).

 (02/02/25 1.381)
	[PATCH] (2/3) fs/super.c cleanups
	Now remove_super() is called only from kill_super().  We move
	the code that closes device/drops reference to filesystem type
	from remove_super() into its caller.

 (02/02/25 1.382)
	[PATCH] (3/3) fs/super.c cleanups
	Preparation to adding new method:
	 new helper - shutdown_super().  It is cut from kill_super() and
	 it had absorbed all actions done with superblock contents -
	 now kill_super(s) is simply
		struct file_system_type *fs = s->s_type;
		if (!deactivate_super(s))
	 and shutdown_super() is going to become a method.

 (02/02/25 1.384)
	[PATCH] net/wanrouter/wan{proc,main}.c crapectomy
		Patch below does the following:
	*	removes dead code from wanproc.c.   When file looks like
	#ifdef LINUX_2_4
		there's no excuse for keeping all that junk around.
	*	switches wanproc.c to use of seq_file
	*	removes dead code from wanmain.c (again, dead == never seen by cc1).
	*	fixes indentation in both
	*	removes buttloads of trailing spaces in these files, while we are
		at it.
	See if it's OK with you...

 (02/02/25 1.385)
	[PATCH] 2.5.5 Trivial patch: fs/file.c comment
	[Alan: also applies to 2.2.x]
	William Stearns: linux/fs/file.c comment fix

 (02/02/25 1.377.1.1)
	migration threads should sleep interruptible.

 (02/02/25 1.386)
	[PATCH] ->d_parent fixes
	Protect d_parent with "dparent_lock", making ready to get rid of
	BKL for d_move().

 (02/02/25 1.387)
	[PATCH] final ->d_parent fixes
	OK, here's ->d_parent stuff unrelated to printk.  Looking into printk
	right now...

 (02/02/26 1.389)
	Enable parport by default on x86

 (02/02/26 1.390)
	[PATCH] kdev_t search/replaces.
	First batch of various kdev_t related changes that have accumulated on
	linux-kernel, and some that got sent directly to me after you dropped them.
	Some of these need additional fixes to make them work, Some of them
	even to make them compile, but this is one step forward..
	I have bio-related fixes for some of these also, I'll push those seperately.

 (02/02/26 1.391)
	[PATCH] Support /dev/kmem access to vmalloc space (Marc Boucher)
	From 2.4.17

 (02/02/26 1.392)
	[PATCH] Numerous address updates.
	Updated maintainers list from Ingo's last ping,
	various changed email addresses in code headers.

 (02/02/26 1.393)
	[PATCH] un'fix' NCR scsi driver.
	 Current driver in your tree has been 'fixed' by someone without
	understanding just how broken it was. Numerous fixes were done in 2.4
	after the 2.5 split by Alan.
	This patch reverts the damage the driver does in your tree, and brings
	Alan's 2.4 bits over instead. Downside: It doesn't compile.
	Upside: It doesn't pretend to work and corrupt data, and at least
	is the right base for people to start fixing.

 (02/02/26 1.394)
	[PATCH] later DMI scan.
	This moves the dmi scan to an earlier stage so that we can trap issues
	such as the various laptops that don't like enabling APIC.
	It's likely to be useful for trapping other similar early-boot problems.
	Originally by Mikael Pettersson

 (02/02/26 1.395)
	Don't be so verbose about normal lack of modprobe

 (02/02/26 1.396)
	[PATCH] Patch - sharing RTC timer between kernel and user space (2nd)
	This patch to allow using of RTC timer inside the kernel space.  We can
	use the RTC timer as timing source for ALSA sequencer. Patch by Takashi.
	The patch adds these three functions and one structure to rtc.h and
	typedef struct rtc_task {
	       void (*func)(void *private_data);
	       void *private_data;
	} rtc_task_t;
	int rtc_register(rtc_task_t *task);
	int rtc_unregister(rtc_task_t *task);
	int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg);

 (02/02/26 1.397)
	[PATCH] ALSA patch for 2.5.5
	- added support for KERN_ prefixes for snd_printk
	- verbose printk (file:number) is now optional
	- fixed devfs OSS device names in soundcore
	- added XRUN ioctl for PCM API
	- improved support for Sound Blaster Audigy
	- fixed AC3 forwarding for Sound Blaster Live!
	- more fixes in dependencies in Makefiles
	- llseek locking fixes for sound/core/info.c
	- fixed ISA DMA allocation
	- added wait() callback for ac97_codec.c and VIA686 driver
	- CMIPCI driver updates
	- added AMD-8111 support for Intel8x0


  • Linux
Click Here!