Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Change log for patch v2.5.41

Summary of changes from v2.5.40 to v2.5.41
============================================

<thockin@freakshow.cobalt.com>
   Add dp83816 support to drivers/net/natsemi.c

<jgrimm@touki.austin.ibm.com>
   sctp:  mark functions needed by testsuite as SCTP_STATIC
   
   The lksctp project implemenents a regressions suite which needs
   certain functions exported.  SCTP_STATIC is used to compile
   the function as 'static' when not in the testsuite.

<manfred@colorfullife.com>
   drivers/net/natsemi.c:  create a function for rx refill

<manfred@colorfullife.com>
   drivers/net/natsemi.c: combine drain_ring and init_ring

<manfred@colorfullife.com>
   drivers/net/natsemi.c: OOM handling

<manfred@colorfullife.com>
   drivers/net/natsemi.c: stop abusing netdev_device_{de,a}ttach

<manfred@colorfullife.com>
   drivers/net/natsemi.c: write MAC address back to the chip

<manfred@colorfullife.com>
   drivers/net/natsemi.c: lengthen EEPROM timeout, and always warn about all timeouts

<manfred@colorfullife.com>
   drivers/net/natsemi.c: comments update

<thockin@freakshow.cobalt.com>
   drivers/net/natsemi.c: janitorial - whitespace, wrap, and indenting cleanup

<thockin@freakshow.cobalt.com>
   drivers/net/natsemi.c: stop tx/rx and reinit_ring on a PHY reset

<thockin@freakshow.cobalt.com>
   drivers/net/natsemi.c: cleanup version string, fix compile error

<thockin@freakshow.cobalt.com>
   drivers/net/natsemi.c: boost some printk() levels to WARN

<kai@tp1.ruhr-uni-bochum.de>
   NET: Do not use dev->hard_header_len in eth_header()
   
   The actual return value of eth_header() is never used, only its sign.
   So it does not make a difference if we return dev->hard_header_len or
   ETH_HLEN, but the latter makes more sense as that is the number of bytes
   we added to the front of the frame.
   
   For 99% of the drivers, dev->hard_header_len == ETH_HLEN, so no difference
   at all, but if a driver actually needs additional headroom and thus
   has dev->hard_header_len > ETH_HLEN, the process of building the ethernet
   header should not care at all. 

<kai@tp1.ruhr-uni-bochum.de>
   NET: Do not use dev->hard_header_len in eth_type_trans()
   
   eth_type_trans() currently pulls dev->hard_header_len off a frame
   passed to it, however always interpreting it as a ethernet header.
   
   Grepping shows that it is only used on net devices where
   dev->hard_header_len == ETH_HLEN. It makes more sense to actually
   pull of ETH_HLEN for the header (it's treated as a struct of the length
   anyway), not changing the behavior for the existing users but allowing
   two places which had to use their private copies of eth_trans_type to
   use the generic routine now.
   
   One place is in drivers/net/hamachi.c and converted in this cset, the other
   one is in the ISDN network code, patch will follow.

<jgrimm@touki.austin.ibm.com>
   sctp:  Fix GFP_KERNEL allocation with lock held. 

<acme@conectiva.com.br>
   o LLC: remove unused mac_dev_peer
   
   Also move code around in llc_sap.c so that we don't need the prototypes
   on the top, makes cflags actually work when finding those functions,
   not going to the prototypes instead of the actual functions.

<acme@conectiva.com.br>
   o LLC: grab the skb in llc_conn_state_event, use llc_pdu_sn_hdr

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Use a skb queue instead of open coded solution in isdn_ppp.c
   
   Apart from cleaning up and simplifying the code, this also gets rid of
   some cli() and stuff, since skb_queue accesses are atomic via an internal
   spinlock.

<acme@conectiva.com.br>
   o LLC: kill llc_conn_free_ev, use plain kfree_skb instead
   
   Also flush the backlog in llc_ui_wait_for_data before going to sleep.
   
   Also fix a bug in llc_backlog_rcv where I was double freeing a skb.

<jgrimm@touki.austin.ibm.com>
   sctp: Fix GFP_KERNEL allocation with lock held.

<kuznet@ms2.inr.ac.ru>
   net/ipv6/mcast.c: Handle IPV6_LEAVE_GROUP with ipv6mr_interface==0

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: More moving of per-channel stuff into isdn_net_dev

<jgarzik@mandrakesoft.com>
   Fix natsemi net drvr build, s/KERN_WARN/KERN_WARNING/

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: More sorting out of members for isdn_net_local / isdn_net_dev
   
   There is a one-to-one relation between struct net_device and
   isdn_net_local, so reflect that in the declaration. There is
   one list of active channels per network interface, so put
   the list head into isdn_net_local, the list members are isdn_net_dev's.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: adapt to task queue changes
   
   Use a tasklet for pushing supervisory frames down the ISDN line and
   schedule_task() for flipping ttyI's buffers.

<jejb@mulgrave.(none)>
   [PATCH] first cut at fixing unable to requeue with no outstanding
    commands
   
   The attached represents an attempt to break the scsi mid-layer of the 
   assumption that any device can queue at least one command.
   
   What essentially happens if the host rejects a command with no other 
   outstanding commands, it does a very crude countdown (basically counts the 
   number of cycles through the scsi request function) until the device gets 
   enabled again when the count reaches zero.  I think the iteration in the 
   request function is better than a fixed timer because it makes the system more 
   responsive to I/O pressure (and also, it's easier to code).
   
   I've tested this by making a SCSI driver artificially reject commands with 
   none outstanding (and run it on my root device).  A value of seven seems to 
   cause a delay of between half and five seconds before the host starts up again 
   (depending on the I/O load).
   
   If this approach looks acceptable, I plan the following enhancements
   
   1. Make device_busy count down in the same fashion
   2. give ->queuecommand() a two value return (one for blocking the entire host 
   and another for just blocking the device).
   3. Make the countdown tuneable from the host template.

<jejb@mulgrave.(none)>
   [PATCH] add cache synchronisation to sd
   
   Not that I agree with running ordinary (non UPS battery backed) devices with 
   writeback caches, but I know most modern SCSI devices come with writeback 
   caches, so this code (like the corresponding IDE code) detects the cache 
   setting on attach and flushes the drive cache on shutdown.

<hugh@veritas.com>
   [PATCH] Oracle startup split_vma fix
   
   Alessandro Suardi and Zlatko Calusic independently reported that
   Oracle cannot start on recent 2.5: excellent research by Zlatko
   quickly pointed to vm_pgoff buglet in the new split_vma.

<paulus@au1.ibm.com>
   [PATCH] pcmcia resource allocation fix
   
   The patch below is a forward-port from 2.4 of a fix that went in to
   the 2.4.x PCMCIA code some time back.  It makes sure that that we
   request I/O and memory regions from the correct resource (the parent
   of the PCMCIA bridge chip, for PCMCIA bridges connected to a PCI bus)
   rather than always requesting them from the top-level ioport_resource
   or iomem_resource.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Use list.h list for list of online channels
   
   Cleaner and less error-prone than the open coded doubly linked
   list.

<mingo@elte.hu>
   [PATCH] Workqueue Abstraction
   
   This is the next iteration of the workqueue abstraction.
   
   The framework includes:
   
    - per-CPU queueing support.
   
   on SMP there is a per-CPU worker thread (bound to its CPU) and per-CPU
   work queues - this feature is completely transparent to workqueue-users.
   keventd automatically uses this feature. XFS can now update to work-queues
   and have the same per-CPU performance as it had with its per-CPU worker
   threads.
   
    - delayed work submission
   
   there's a new queue_delayed_work(wq, work, delay) function and a new
   schedule_delayed_work(work, delay) function. The later one is used to
   correctly fix former tq_timer users. I've reverted those changes in 2.5.40
   that changed tq_timer uses to schedule_work() - eg. in the case of
   random.c or the tty flip queue it was definitely the wrong thing to do.
   
   delayed work means a timer embedded in struct work_struct.  I considered
   using split struct work_struct and delayed_work_struct types, but lots
   of code actively uses task-queues in both delayed and non-delayed mode,
   so i went for the more generic approach that allows both methods of work
   submission.  Delayed timers do not cause any other overhead in the
   normal submission path otherwise.
   
    - multithreaded run_workqueue() implementation
   
   the run_workqueue() function can now be called from multiple contexts, and
   a worker thread will only use up a single entryy - this property is used
   by the flushing code, and can potentially be used in the future to extend
   the number of per-CPU worker threads.
   
    - more reliable flushing
   
   there's now a 'pending work' counter, which is used to accurately detect
   when the last work-function has finished execution. It's also used to
   correctly flush against timed requests. I'm not convinced whether the old
   keventd implementation got this detail right.
   
    - i switched the arguments of the queueing function(s) per Jeff's
      suggestion, it's more straightforward this way.
   
   
   Driver fixes:
   
   i have converted almost every affected driver to the new framework. This
   cleaned up tons of code. I also fixed a number of drivers that were still
   using BHs (these drivers did not compile in 2.5.40).
   
   while this means lots of changes, it might ease the QA decision whether to
   put this patch into 2.5.
   
   The pach converts roughly 80% of all tqueue-using code to workqueues - and
   all the places that are not converted to workqueues yet are places that do
   not compile in vanilla 2.5.40 anyway, due to unrelated changes. I've
   converted a fair number of drivers that do not compile in 2.5.40, and i
   think i've managed to convert every driver that compiles under 2.5.40.

<jejb@mulgrave.(none)>
   [PATCH] remove mid-layer assumption that devices must be able to queue at least one command
   
   This allows the request_fn() to recover properly from either host_blocked
   or device_blocked at zero command depth.
   
   Also adds the facility for queuecommand() to tell us whether it wants
   the host or only the device blocked

<jejb@mulgrave.(none)>
   [PATCH SCSI] make BUSY status stall the device for a while

<jejb@mulgrave.(none)>
   [SCSI] remove debugging from zero depth queue handling

<florian.thiel@gmx.net>
   Documentation/networking/tuntap.txt: Completely rework, this document was much outdated.

<daisy@teetime.dynamic.austin.ibm.com>
   sctp: Added the 'Unrecognized Parameter' handling.

<hch@dhcp212.munich.sgi.com>
   XFS: temporarily switch to schedule_task for I/O completion
   
   This is a huge performance drop for SMP, but at least XFS is working
   again.  Expect a better solution soon.

<hch@dhcp212.munich.sgi.com>
   XFS: remove description of mount option not in mainline

<hch@sgi.com>
   [PATCH] XFS updates for workqueues
   

<hch@sgi.com>
   [PATCH] workqueue flush on destroy
   

<jgarzik@mandrakesoft.com>
   airo wireless netdrvr: s/routine/func/ to fix build (wq-related breakage)

<hch@sgi.com>
   [PATCH] no more flush_workqueue in xfs
   
   I see you just applied my patch to make destroy_workqueue do the
   flush.  Fix up XFS for it.

<pavel@ucw.cz>
   [PATCH] Swsusp updates, do not thrash ide disk on suspend
   
   This cleans up swsusp a little bit and fixes ide disk corruption on
   suspend/resume.
                              Pavel

<perex@suse.cz>
   [PATCH] ALSA update [1/12] - 2002/08/09
   
     - Corrections for PCM sample silence (24-bits)
     - OPL3 code fixes (delays)
     - CS4281
       - added the power management code
       - added mixer controls for internal FM and PCM volumes
     - EMU10K1
       - fixed the dma mask
     - ICE1712
       - replaced EREMOTE with EIO
       - check the return value from ews88mt_chip_select()
     - Maestro3
       - corrected the wrong pci id for inspiron 8000
       - use the quirk list for gpio workarounds

<perex@suse.cz>
   [PATCH] ALSA update [2/12] - 2002/08/12
   
     - removed __NO_VERSION__
     - CS46xx
       - SDPIF input support, only 48khz
       - PCM multichannel bug fix
     - EMU10K1
       - Added workaround for EMU10K1 capture (wrong pointer)
     - Keywest (PPC)
       - fixed the initialization of driver

<perex@suse.cz>
   [PATCH] ALSA update [3/12] - 2002/08/13
   
     - C99-like structure initializers - first bunch of changes
     - CS46xx
       - fixed the compile with the older image
     - AC'97 codec
       - added the ids for ITE chips
       - check the validity of registers always in the limited register mode
     - intel8x0
       - allow ICH4 to proceed without probing PCR / SCR bits
     - VIA686
       - AC97 cold reset only when AC-link is down

<perex@suse.cz>
   [PATCH] ALSA update [4/12] - 2002/08/14
   
     - added USB Audio and USB MIDI drivers
     - VIA686
       - AC97 cold reset only when AC-link is down

<perex@suse.cz>
   [PATCH] ALSA update [5/12] - 2002/08/15
   
     - C99 structure initializers - second set of changes
     - USB MIDI driver
       - more device info for Roland/EDIROL devices

<perex@suse.cz>
   [PATCH] ALSA update [6/12] - 2002/08/21
   
     - CS46xx
       - SPDIF input fixes
       - fixed missplaced #ifndef
       - amplifier fix for Game Theater XP
       - refine on the PCM multichannel functionality
     - EMU10K1
       - added the support for Audigy spdif controls
     - PCM midlevel
       - fixed hw_free (wrong state for drivers with no callback
       - fixed sw_params (runtime) lock
     - AC'97 codec
       - fixed spin deadlock
     - CS4281
       - fixed wrong mdelays and allowed scheduling in module_init
     - PPC drivers
       - added the missing inclusion of linux/slab.h
     - USB MIDI driver
       - replaced urb_t -> struct urb

<perex@suse.cz>
   [PATCH] ALSA update [7/12] - 2002/08/26
   
     - AC'97 codec
       - added ac97_can_amap() condition
       - removed powerup/powerdown sequence when sample rate is changed
       - added ac97_is_rev22 check function
       - added AC97_EI_* defines
       - available rates are in array
     - CS46xx
       - improved the SCB link mechanism
       - SMP deadlock should have been fixed now
     - OSS mixer emulation
       - added the proc interface for the configuration of OSS mixer volumes
     - rawmidi midlevel
       - removed unused snd_rawmidi_transmit_reset and snd_rawmidi_receive_reset functions
     - USB MIDI driver
       - integration of USB MIDI driver into USB audio driver by Clemens
     - intel8x0 - the big intel8x0 driver update
       - added support for ICH4
       - rewrited I/O (the third AC'97 codec registers are available only through memory)
       - code cleanups
       - ALI5455 specific code
       - added proc interface
     - VIA686, VIA8233
       - set the max periods to 128

<perex@suse.cz>
   [PATCH] ALSA update [8/12] - 2002/09/06
   
     - VIA686 and VIA8233 driver merge to VIA82xx
     - ioctl32 fixes
     - fixed OOPS in snd_pcm_sgbuf_delete (not initialized)
     - I2C - call hw_stop() before returning at the error pointer
     - AC'97 codec - added more AC97 IDs by Laszlo Melis
     - CS46xx - mutex initialization fix
     - ENS1371 - added one more card to S/PDIF capabilities
     - intel8x0
       - fixed secondary and third codec indexes
     - PPC Keywest - initialize MCS in loop until it succeeds
     - PPC Tumbler - the initial support for snapper (TAS3004) on some tibook
     - USB Audio - mixer fixes

<perex@suse.cz>
   [PATCH] ALSA update [9/12] - 2002/09/11
   
     - AC'97 codec
       - added support/detection for MC'97 (modem codecs)
       - improved/updated register bit constants
       - AD1980 codec ID with patch code
       - added eMicro and Philips UCB1400 codecs
     - PCM Scatter-Gather support
       - added a function snd_pcm_sgbuf_get_addr()
     - rewritten PCI DMA allocation
     - ENS1371 - fixed IEC958 control index when AC'97 codec has S/PDIF capability, too
     - intel8x0
       - don't break when second codec cannot be initialized
     - via82xx
       - improved sg buffer handling
       - added "Input Source Select" control for via8233
       - fixed the registers for via8233
       - fixed the detection of via8233 chip
       - clean up the configuration of bd arrays
     - USB Audio
       - added the missing initialization of curframesize field (fixes capture)

<perex@suse.cz>
   [PATCH] ALSA update [10/12] - 2002/09/16
   
     - OSS mixer emulation
       - save the current volume values permanently
     - PCM midlevel
       - fixed 64bit division on non-ix86 32bit architectures
       - exported snd_pcm_new_stream()
     - PCI DMA allocation
       - fixes and updates
     - PCM Scatter-Gather code
       - don't set runtime->dma_bytes if runtime is null
     - CMI8330 - fix nor non-IsaPnP build
     - CMIPCI - added "Mic As Center/LFE" switch for model 039 or later
     - more initialization of structs in C99 style
     - intel8x0 - fixes for nvidia nforce
     - Maestro3 - added quirk for CF72 toughbook
     - VIA82xx - reset codec only when it's not ready
     - USB Audio
       - fixed oops at unloading if non-intialized substream exists
       - show interface number in proc files
       - clean up and fixed the parser of audio streams

<perex@suse.cz>
   [PATCH] ALSA update [11/12] - 2002/09/17
   
     - changed bitmap_member -> DECLARE_BITMAP
     - EMU10K1
       - added gpr_list_control* variables to emu10k1_fx8010_code_t
       - added snd_emu10k1_list_controls for code_peek() and fixes few typos
     - ICE1712
       - split ice1712 code to several files for better readability

<perex@suse.cz>
   [PATCH] ALSA update [12/12] - 2002/10/01
   
     - deleted sound/pci/ice1712.c
     - fixed Makefile to point to sound/pci/ice1712 directory
     - added Ensoniq SoundScape header file and HWDEP IFACE
     - CS4231
       - added CS4231_HW_AD1845 and register definitions for AD1845
     - USB
       - added snd-rawmidi.o to the snd-usb-audio's dependency if sequencer is
     - PCI DMA allocation
       - fixed the wrapper again
     - AC'97 codec
       - added HSD11246 identification (Conexant), a bit improved proc contents
     - CMIPCI
       - changed the DMA configuration for period size
       - fixed compile with SOFT_AC3 option
       - added PCM_INFO_PAUSE to hw settings.  now pause should work properly
       - corrected the modem on/off bit (FLINK)
     - ICE1712
       - compilation fixes
     - intel8x0
       - use mmio for codec on nforce (pci resource 2)
       - clean up and fix ali5455 codes
     - RME32
       - enable 88.2/96kHz on capture with CS8414
     - VIA82xx
       - fixed the size of allocated bd array to be released
       - fixed the allocation size of idx_table
     - PPC Awacs
       - replaced one more mdelay() with schedule
       - try to touch mic boost on screamer at init
     - USB Audio
       - reset each interface at initialization
       - reset the old interface if a new interface is chosen
       - don't claim the interface which already claimed

<ahaas@neosoft.com>
   [PATCH] C99 designated initializers for include/linux/isapnp.h
   

<trond.myklebust@fys.uio.no>
   [PATCH] NFS: readdir reply truncated
   
   Fix the tests for readdir reply truncation so that we don't get
   uncalled for kernel verbiage.

<torvalds@penguin.transmeta.com>
   bitmap_member() => DECLARE_BITMAP()

<kai@tp1.ruhr-uni-bochum.de>
   Cset exclude: kai@tp1.ruhr-uni-bochum.de|ChangeSet|20020929194514|33195

<jgrimm@touki.austin.ibm.com>
   sctp:  Fix bug where we were erroneously throwing away packets > frag_point. (jgrimm)

<petkan@users.sourceforge.net>
   [PATCH] USB: rtl8150 update
   
   set_mac_address is now added to the driver.  thanks to Orjan Friberg <orjan.friberg@axis.com>
   the actual writing to the eeprom is disabled by default

<jejb@mulgrave.(none)>
   [SCSI] remove comment that every host is expected to be able to queue at least one command

<petkan@users.sourceforge.net>
   [PATCH] USB: pegasus update
   
     device ID fix

<shaggy@kleikamp.austin.ibm.com>
   JFS: Releasing LOGGC_LOCK too early
   
   In txLazyCommit, we are releasing log->gclock (LOGGC_LOCK) before
   checking tblk->flag for tblkGC_LAZY.  For the case that tblkGC_LAZY
   is not set, the user thread may release the tblk, and it may be
   reused and the tblkGC_LAZY bit set again, between the time we release
   the spinlock until we check the flag.  This is a lot to happen in an
   SMP environment, but when CONFIG_PREEMPT is set, it is very easy to
   see the problem.
   
   The fix is to hold the spinlock until after we've checked the flag.
   
   (Yes, I know the symbol names are ugly.)

<davem@redhat.com>
   [PATCH] USB: usbkbd fix
   

<luc.vanoostenryck@easynet.be>
   [PATCH] 2.5.40: warning fix for drivers/usb/core/usb.c
   
   usb_hotplug()' prototype doesn't match when CONFIG_HOTPLUG is not defined.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Small cleanups
   
   o Use a function "descend" for descending into subdirectories
   o Remove unused (?) "boot" target
   o Remove unnecessary intermediate "sub_dirs" target from Rules.make
   o Use /bin/true instead of echo -n to suppress spurious
     "nothing to be done for ..." output from make

<daisy@teetime.dynamic.austin.ibm.com>
   Remove excessive spaces. 

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Remove xfs vpath hack
   
   xfs.o is built as one modules out of objects distributed into
   multiple subdirs. That is okay with the current kbuild, you just
   have to include the path for objects which reside in a subdir, then.
   
   xfs used vpath instead of explicitly adding the paths, which is
   inconsistent and conflicts e.g. with proper module version generation.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Standardize ACPI Makefiles
   
   ACPI was a bit lazy and just said compile all .c files in this directory,
   which is different from all other Makefiles and will not work very
   well e.g. bk, where a .c file may not be checked out yet, or separate
   obj/src dirs. So just explicitly list the files we want to compile.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Small quirks for separate obj / src trees
   
   Add a couple of missing $(obj) and the like.
   
   Also, remove the __chmod hack which made some files in the source tree
   executable - hopefully, everybody's copy is by now ;)

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Add some bug traps
   
   Makefiles which still use obsolete 2.4 constructs now give a warning.

<daisy@teetime.dynamic.austin.ibm.com>
   Remove more excessive spaces.

<cip307@cip.physik.uni-wuerzburg.de>
   [PATCH] USB: string query fix
   
   Query for stringlen before reading a string in usb.c

<david-b@pacbell.net>
   [PATCH] USB: framework for testing usbcore
   
   USB test driver

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Handle $(core-y) the same way as $(init-y), $(drivers-y) etc
   
   $(CORE_FILES) did not quite follow the way the other vmlinux parts where
   handled, due to potential init order dependencies. However, it seems
   everybody is putting arch specific stuff in front, so we keep doing
   this and nothing should break ;)

<greg@kroah.com>
   USB: speedtouch driver fix due to ioctl function parameter change

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Use $(core-y) and friends directly
   
   The capitalized aliases $(CORE_FILES) etc are basically superfluous now,
   move the remaining users to $(core-y) and the like.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Always build helpers in script/
   
   As noticed by Sam Ravnborg, we need the targets in scripts (fixdep,
   in particular) considered always, i.e. also when compiling modules.

<greg@kroah.com>
   [PATCH] hotplug: fix for non-pci and usb calls
   
   clear the environment variables so for busses without callbacks, we can
   successfully call /sbin/hotplug.
   
   Thanks to patmans@us.ibm.com for finding this bug.

<yoshfuji@linux-ipv6.org>
   [IPv6]: Rework default router selection.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Don't cd into subdirs during build
   
   Instead of using make -C <subdir>, just use make -f <subdir>/Makefile.
   This means we now call gcc/ld/... always from the topdir.
   
   Advantages are:
   o We don't need to use -I$(TOPDIR)/include and the like, just 
     -Iinclude works.
   o __FILE__ gives the correct relative path from the topdir instead
     of an absolute path, as it did before for included headers
   o gcc errors/warnings give the correct relative path from the topdir
   o takes us a step closer to a non-recursive build (though that's probably
     as close as it gets)
   
   The changes to Rules.make were done in a way which only uses the new way
   for the standard recursive build (which remains recursive, just without
   cd), all the archs do make -C arch/$(ARCH)/boot ..., which should keep
   working as before. However, of course this should be converted eventually,
   it's possible to do so piecemeal arch by arch.
   
   It seems to work fine for most of the standard kernel. Potential places
   which need changing are added -I flags to the command line, which now
   need to have the path relative to the topdir and explicit rules for
   generating files, which need to properly use $(obj) / $(src) to work
   correctly.

<torvalds@home.transmeta.com>
   Update to DRI CVS tree

<greg@kroah.com>
   USB: split the usb serial console code out into its own file.

<davem@nuts.ninka.net>
   [EQL]: Rewrite to be SMP safe.

<davem@nuts.ninka.net>
   net/sctp/inqueue.c: Convert to work queue.

<davem@nuts.ninka.net>
   net/ipv6/route.c: Fix typo in previous change.

<davem@nuts.ninka.net>
   net/ipv6/ipv6_sockglue.c: Support IPV6_ADDRFORM getsockopt.

<willy@debian.org>
   [NET]: Move common ioctl code up a layer.

<perex@suse.cz>
   [PATCH] ALSA fixes
   
     - save_flags/cli/restore_flags removal
     - updated USB code for 2.5
     - fixed SPARC configuration
     - fixed spinlock/sleep race in PCM midlevel

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: include arch-Makefile in common place
   
   The top-level Makefile is separated into two parts, one which does
   include .config, so it can access CONFIG_FOO, and one which does not,
   since it may not even exist yet (make *config).
   
   However, both parts need to include arch/$(ARCH)/Makefile, be it for 
   arch-specific settings or just for archclean/archmrproper.
   
   So we now include arch/$(ARCH)/Makefile before the config/noconfig split,
   which also has the advantage of giving us the arch-specific build dirs
   (e.g. arch/i386/{kernel,mm,lib}) in both cases.
   
   In addition, fix a couple of small glitches (make menuconfig, make 
   modules_install, proper output when descending)

<davem@nuts.ninka.net>
   [SPARC64]: header cleanup, extern inline --> static inline

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Adapt mrproper targets
   
   Use $(call descend,..) for mrproper as well.

<davem@nuts.ninka.net>
   include/asm-sparc64/pstate.h: Kill asm routines, nobody uses them.

<viro@math.psu.edu>
   [PATCH] pd switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] pd.c cleanups
   
   Removed cruft from pd_ioctl() and friends.

<viro@math.psu.edu>
   [PATCH] mtd switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] md switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] old cdroms switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] loop.c switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] rd.c switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] hd.c switched to dynamic allocation
   

<viro@math.psu.edu>
   [PATCH] floppy.c switched to dynamic allocation
   

<akpm@digeo.com>
   [PATCH] misc (mainly documentation)
   
   - hugetlb Documentation update
   
   - Add /proc/buddyinfo documentation
   
   - nano-cleanup in __remove_from_page_cache.

<akpm@digeo.com>
   [PATCH] sys_ioperm atomicity fix
   
   sys_ioperm() is calling kmalloc(GFP_KERNEL) inside get_cpu().  That's
   wrong, because the memory allocation could schedule away and return on
   a different CPU.
   
   So change it to perform the memory allocation outside the atomic region.

<akpm@digeo.com>
   [PATCH] mprotect bugfix
   
   Patch from Hugh Dickins
   
   Our earlier fix for mprotect_fixup was broken - passing an
   already-freed VMA to change_protection().

<akpm@digeo.com>
   [PATCH] remove bogus BUG in page_remove_rmap()
   
   Pages with no reverse mapping can be present in page tables as a result
   of a driver performing remap_page_range().  Don't go BUG over them.

<akpm@digeo.com>
   [PATCH] radix tree gang lookup
   
   Adds a gang lookup facility to radix trees.  It provides an efficient
   means of locating a bunch of pages starting at a particular offset.
   
   The implementation is a bit dumb, but is efficient enough.  And it is
   amenable to the `tagged lookup' extension which is proving tricky to
   write, but which will allow the dirty pages within a mapping to be
   located in pgoff_t order.
   
   Thanks are due to Huch Dickins for finding and fixing an unpleasant bug
   in here.

<akpm@digeo.com>
   [PATCH] truncate/invalidate_inode_pages rewrite
   
   Rewrite these functions to use gang lookup.
   
   - This probably has similar performance to the old code in the common case.
   
   - It will be vastly quicker than current code for the worst case
     (single-page truncate).
   
   - invalidate_inode_pages() has been changed.  It used to use
     page_count(page) as the "is it mapped into pagetables" heuristic.  It
     now uses the (page->pte.direct != 0) heuristic.
   
   - Removes the worst cause of scheduling latency in the kernel.
   
   - It's a big code cleanup.
   
   - invalidate_inode_pages() has been changed to take an address_space
     *, not an inode *.
   
   - the maximum hold times for mapping->page_lock are enormously reduced,
     making it quite feasible to turn this into an irq-safe lock.  Which, it
     seems, is a requirement for sane AIO<->direct-io integration, as well
     as possibly other AIO things.
   
   (Thanks Hugh for fixing a bug in this one as well).
   
   (Christoph added some stuff too)

<akpm@digeo.com>
   [PATCH] add /proc/vmstat (start of /proc/stat cleanup)
   
   Moves the VM accounting out of /proc/stat and into /proc/vmstat.
   
   The VM accounting is now per-cpu.
   
   It also moves kstat.pgpgin and kstat.pgpgout into /proc/vmstat.
   Which is a bit of a duplication of /proc/diskstats (SARD), but it's
   easy, super-cheap and makes life a lot easier for all the system
   monitoring applications which we just broke.
   
   We now require procps 2.0.9.
   
   Updated versions of top and vmstat are available at http://surriel.com
   and the Cygnus CVS is uptodate for these changes.  (Rik has the CVS
   info at the above site).
   
   This tidies up kernel_stat quite a lot - it now only contains CPU
   things (interrupts and CPU loads) and disk things.  So we now have:
   
   /proc/stat:   CPU things and disk things
   /proc/vmstat:   VM things   (plus pgpgin, pgpgout)
   
   The SARD patch removes the disk things from /proc/stat as well.

<akpm@digeo.com>
   [PATCH] add kswapd success accounting to /proc/vmstat
   
   Tells us how many pages were reclaimed by kswapd.
   
   The `pgsteal' statistic tells us how many pages were reclaimed
   altogether.  So
   
      kswapd_steal - pgsteal
   
   is the number of pages which were directly reclaimed by page allocating
   processes.
   
   
   Also, the `pgscan' data is currently counting the number of pages
   scanned in shrink_cache() plus the number of pages scanned in
   refill_inactive_zone().  These are rather separate concepts, so I
   created the new `pgrefill' counter for refill_inactive_zone().
   `pgscan' is now just the number of pages scanned in shrink_cache().

<akpm@digeo.com>
   [PATCH] "io wait" process accounting
   
   Patch from Rik adds "I/O wait" statistics to /proc/stat.
   
   This allows us to determine how much system time is being spent
   awaiting IO completion.  This is an important statistic, as it tends to
   directly subtract from job completion time.
   
   procps-2.0.9 is OK with this, but doesn't report it.

<akpm@digeo.com>
   [PATCH] convert direct-io to use bio_add_page()
   
   From Badari Pavlati.
   
   Use bio_add_page() in direct-io.c.

<hugh@veritas.com>
   [PATCH] tmpfs swapoff deadlock
   
   tmpfs 1/5 swapoff deadlock: my igrab/iput around the yield in
   shmem_unuse_inode was rubbish, seems my testing never really hit the
   case until last week, when truncation of course deadlocked on the page
   held locked across the iput (at least I had the foresight to say "ugh!"
   there).  Don't yield here, switch over to the simple backoff I'd been
   using for months in the loopable tmpfs patch (yes, it could loop
   indefinitely for memory, that's already an issue to be dealt with
   later).  The return convention from shmem_unuse to try_to_unuse is
   inelegant (commented at both ends), but effective.

<hugh@veritas.com>
   [PATCH] cleanup of page->flags manipulations
   
   I've had this patch hanging around for a couple of months (you liked an
   earlier version, but I never found time to resubmit it), remove some
   unnecessary PageDirty and PageUptodate manipulations.
   
   add_to_page_cache can only receive a dirty page in the add_to_swap
   case, so deal with it there.  add_to_swap is better off using
   add_to_page_cache directly than add_to_swap_cache.  Keep move_to_ and
   _from_swap_cache simple, and don't fiddle with flags without reason.
   It's a little less efficient to correct clean->dirty list as an
   afterthought, but cuts unusual code from slow path.

<hugh@veritas.com>
   [PATCH] shmem_rename() fixes
   
   shmem_rename still didn't get parent directory link count quite right,
   in the case where you rename a directory in place of an empty directory
   (with rename syscall: doesn't happen like that with mv command); and it
   forgot to update new directory's ctime and mtime.  (I'll be sending 2.4
   version to Marcelo shortly.)

<hugh@veritas.com>
   [PATCH] tpmfs: fake a non-zero size for directories
   
   Apparently some applications are confused by tmpfs's practice of
   returning zero for the size of diretories.  In 2.4.20-pre6 Peter Anvin
   submitted a change to make tmpfs directories always have a size of "1".
   
   In the same spirit, this patch arranges for tmpfs directories to show
   up as having 20 * number_of_entries, including "." and "..".
   
   Apparently counting up the size of all the entries isn't worth the
   hassle.

<hugh@veritas.com>
   [PATCH] tmpfs: minor fixes
   
   tmpfs contributes to the AltSysRqM swapcache add and delete statistics,
   but not to its find statistics: use lookup_swap_cache wrapper to
   find_get_page, to contribute to those statistics too.  Elsewhere, use
   existing info pointer and NAME_MAX definition.  (I'll be sending 2.4
   version to Marcelo shortly.)

<hugh@veritas.com>
   [PATCH] add shmem_vm_writeback()
   
   Give tmpfs its own shmem_vm_writeback (and empty shmem_writepages):
   going through the default mpage_writepages is very wrong for tmpfs,
   since that may write nearby pages while still mapped into mms, but
   "writing" converts pages from tmpfs file identity to swap backing
   identity: doing so while mapped breaks assumptions throughout e.g.  the
   shared file is liable to disintegrate into private instances.

<hugh@veritas.com>
   [PATCH] shmem truncate race fix
   
   The earlier partial truncation fix in shmem_truncate admits it is racy,
   and I've now seen that (though perhaps more likely when
   mpage_writepages was writing pages it shouldn't).  A cleaner fix is,
   not to repeat the memclear in shmem_truncate, but to hold the partial
   page in memory throughout truncation, by shmem_holdpage from
   shmem_notify_change.

<hugh@veritas.com>
   [PATCH] shmem: remove info->sem
   
   Between inode->i_sem and info->lock comes info->sem; but it doesn't
   guard thoroughly against the difficult races (truncate during read),
   and serializes reads from tmpfs unlike other filesystems.  I'd prefer
   to work with just i_sem and info->lock, backtracking when necessary
   (when another task allocates block or metablock at the same time).
   
   (I am not satisfied with the locked setting of next_index at the start
   of shmem_getpage_locked: it's one lock hold too many, and it doesn't
   really fix races against truncate better than before: another patch in
   a later batch will resolve that.)

<hugh@veritas.com>
   [PATCH] consolidate shmem_getpage and shmem_getpage_locked
   
   The distinction between shmem_getpage and shmem_getpage_locked is not
   helpful, particularly now info->sem is gone; and shmem_getpage
   confusingly tailored to shmem_nopage's expectations.  Put the code of
   shmem_getpage_locked into the frame of shmem_getpage, leaving its
   callers to unlock_page afterwards.

<hugh@veritas.com>
   [PATCH] shmem: avoid metadata leakiness
   
   akpm and wli each discovered unfortunate behaviour of dbench on tmpfs:
   after tmpfs has reached its data memory limit, dbench continues to
   lseek and write, and tmpfs carries on allocating unlimited metadata
   blocks to accommodate the data it then refuses.  That particular
   behaviour could be simply fixed by checking earlier; but I think tmpfs
   metablocks should be subject to the memory limit, and included in df
   and du accounting.  Also, manipulate inode->i_blocks under lock, was
   missed before.

<hugh@veritas.com>
   [PATCH] put shmem metadata in highmem
   
   wli suffered OOMs because tmpfs was allocating GFP_USER, for its
   metadata pages.  This patch allocates them GFP_HIGHUSER (default
   mapping->gfp_mask) and uses atomic kmaps to access (KM_USER0 for upper
   levels, KM_USER1 for lowest level).  shmem_unuse_inode and
   shmem_truncate rewritten alike to avoid repeated maps and unmaps of the
   same page: cr's truncate was much more elegant, but I couldn't quite
   see how to convert it.
   
   I do wonder whether this patch is a bloat too far for tmpfs, and even
   non-highmem configs will be penalised by page_address overhead (perhaps
   a further patch could get over that).  There is an attractive
   alternative (keep swp_entry_ts in the existing radix-tree, no metadata
   pages at all), but we haven't worked out an unhacky interface to that.
   For now at least, let's give tmpfs highmem metadata a spin.

<hugh@veritas.com>
   [PATCH] shmem accounting fixes
   
   If we're going to rely on struct page *s rather than virtual addresses
   for the metadata pages, let's count nr_swapped in the private field:
   these pages are only for storing swp_entry_ts, and need not be examined
   at all when nr_swapped is zero.

<hugh@veritas.com>
   [PATCH] shmem: misc changes and cleanups
   
   If PAGE_CACHE_SIZE were to differ from PAGE_SIZE, the VM_ACCT macro,
   and shmem_nopage's vm_pgoff manipulation, were still not quite right.
   
   Slip a cond_resched_lock into shmem_truncate's long loop; but not into
   shmem_unuse_inode's, since other locks held, and swapoff awful anyway.
   
   Move SetPageUptodate to where it's not already set.  Replace
   copy_from_user by __copy_from_user since access already verified.
   
   Replace BUG()s by BUG_ON()s.  Remove an uninteresting PAGE_BUG().

<hugh@veritas.com>
   [PATCH] shmem whitespace cleanups
   
   Regularize the erratic whitespace conventions in mm/shmem.c.  Removal
   of blank line changes BUG_ON line numbers, otherwise builds the same.

<rth@twiddle.net>
   [PATCH] alpha strncpy fix
   
   Ported across from a nearly identical fix to the glibc tree.  Under
   some conditions we'd read one too many source words and segfault.

<ink@jurassic.park.msu.ru>
   [PATCH] alpha compile fixes
   
   - alpha/kernel/signal.c: sigmask_lock to sig->siglock transition;
   - alpha/lib/Makefile: fix EV6 targets (restore EXTRA_AFLAGS accidentally
     killed by previous patch).

<mingo@elte.hu>
   [PATCH] dump_stack() cleanup, BK-curr
   
   This modifies x86's dump_stack() to print out just the backtrace, not
   the stack contents.  The patch also adds one more whitespace after the
   numeric EIP value.  The old dump looked this way:
   
     bad: scheduling while atomic!
     Stack: ffffffff c041c72f 0000006a 00000068 000000f0 c13e1f28 c04c49c0 c13e1f28
            c02a4099 c04c49c0 000000f0 00000000 00003104 c012592e 00003104 00003104
            ffffffff 34000286 00000282 00000000 00000000 c13e1f28 c04c49c0 c04c4468
     Call Trace:
      [<c011f009>]sys_gettimeofday+0x89/0x90
      [<c0113e40>]do_page_fault+0x0/0x49e
      [<c0107d63>]syscall_call+0x7/0xb
   
   the new output is:
   
     bad: scheduling while atomic!
     Call Trace:
      [<c011f009>] sys_gettimeofday+0x89/0x90
      [<c0113e40>] do_page_fault+0x0/0x49e
      [<c0107d63>] syscall_call+0x7/0xb
   
   much nicer and much more compact.

<mingo@elte.hu>
   [PATCH] futex-2.5.40-B5
   
   This does a number of futex bugfixes, performance improvements and
   cleanups.
   
   The bugfixes are:
   
    - fix locking bug noticed by Martin Wirth: the ordering of
      page_table_lock, vcache_lock and futex_lock was inconsistent and
      created the possibility of an SMP deadlock.
   
    - fix spurious wakeup noticed by Andrew Morton: the get_user() in
      futex_wait() can set the task state to TASK_RUNNING.
   
    - fix futex_wake COW race, noticed by Martin Wirth - futex_wake() has to
      go through the same lookup rules as the futex_wait() code, otherwise it
      might end up trying to wake up based on the wrong physical page.
   
   Improvements:
   
    - speed up the basic addrs => page lookup done by the futex code. It used
      to do an unconditional get_user_pages() call, which did a vma lookup
      and other heavy-handed tactics - while the common case is that the
      page is mapped and available. Furthermore, due to the COW-race code we
      had to re-check the mapping anyway, which made the get_user_pages()
      thing pretty unnecessery. This inefficiency was noticed by Martin
      Wirth.
   
      the new lookup code first does a lightweight follow_page(), then if no
      page is present we do the get_user_pages() thing.
   
    - locking cleanups - the new lookup code made some things simpler, eg.
      the hash calculation can now be done in queue_me().
   
    - added comments
   
    - reduced include file use.
   
    - increased the futex hashtable.

<mingo@elte.hu>
   [PATCH] sigfix-2.5.40-D6
   
   This fixes all known signal semantics problems.
   
   sigwait() is really evil - i had to re-introduce ->real_blocked. When a
   signal has no handler defined then the actual action taken by the kernel
   depends on whether the sigwait()-ing thread was blocking the signal
   originally or not. If the signal was blocked => specific delivery to the
   thread, if the signal was not blocked => kill-all.
   
   fortunately this meant that PF_SIGWAIT could be killed - the real_blocked
   field contains all the necessery information to do the right decision at
   signal-sending time.
   
   i've also cleaned up and made the shared-pending code more robust: now
   there's a single central dequeue_signal() function that handles all the
   details. Plus upon unqueueing a shared-pending signal we now re-queue the
   signal to the current thread, which this time around is not going to end
   up in the shared-pending queue. This change handles the following case
   correctly: a signal was blocked in every signal, then one thread unblocks
   it and gets the signal delivered - but there's no handler for the signal
   => the correct action is to do a kill-all.
   
   i removed the unused shared_unblocked field as well, reported by Oleg
   Nesterov.
   
   now we pass both signal-tst1 and signal-tst2, so i'm confident that we got
   most of the details right.

<mingo@elte.hu>
   [PATCH] timer-2.5.40-F7
   
   This does a number of timer subsystem enhancements:
   
   - simplified timer initialization, now it's the cheapest possible thing:
   
       static inline void init_timer(struct timer_list * timer)
       {
               timer->base = NULL;
       }
   
     since the timer functions already did a !timer->base check this did not
     have any effect on their fastpath.
   
   - the rule from now on is that timer->base is set upon activation of the
     timer, and cleared upon deactivation. This also made it possible to:
   
   - reorganize all the timer handling code to not assume anything about
     timer->entry.next and timer->entry.prev - this also removed lots of
     unnecessery cleaning of these fields. Removed lots of unnecessary list
     operations from the fastpath.
   
   - simplified del_timer_sync(): it now uses del_timer() plus some simple
     synchronization code. Note that this also fixes a bug: if mod_timer (or
     add_timer) moves a currently executing timer to another CPU's timer
     vector, then del_timer_sync() does not synchronize with the handler
     properly.
   
   - bugfix: moved run_local_timers() from scheduler_tick() into
     update_process_times() .. scheduler_tick() might be called from the fork
     code which will not quite have the intended effect ...
   
   - removed the APIC-timer-IRQ shifting done on SMP, Dipankar Sarma's
     testing shows no negative effects.
   
   - cleaned up include/linux/timer.h:
   
        - removed the timer_t typedef, and fixes up kernel/workqueue.c to use
          the 'struct timer_list' name instead.
   
        - removed unnecessery includes
   
        - renamed the 'list' field to 'entry' (it's an entry not a list head)
   
        - exchanged the 'function' and 'data' fields. This, besides being
          more logical, also unearthed the last few remaining places that
          initialized timers by assuming some given field ordering, the patch
          also fixes these places. (fs/xfs/pagebuf/page_buf.c,
          net/core/profile.c and net/ipv4/inetpeer.c)
   
        - removed the defunct sync_timers(), timer_enter() and timer_exit()
          prototypes.
   
        - added docbook-style comments.
   
   - other kernel/timer.c changes:
   
        - base->running_timer does not have to be volatile ...
   
        - added consistent comments to all the important functions.
   
        - made the sync-waiting in del_timer_sync preempt- and lowpower-
          friendly.
   
   i've compiled, booted & tested the patched kernel on x86 UP and SMP. I
   have tried moderately high networking load as well, to make sure the timer
   changes are correct - they appear to be.

<mingo@redhat.com>
   [PATCH] workqueue lossage (fwd)
   
   patch from DaveM

<manfred@colorfullife.com>
   [PATCH] pipe bugfix /cleanup
   
   pipe_write contains a wakeup storm, 2 writers that write into the same
   fifo can wake each other up, and spend 100% cpu time with
   wakeup/schedule, without making any progress.
   
   The only regression I'm aware of is that
   
     $ dd if=/dev/zero | grep not_there
   
   will fail due to OOM, because grep does something like
   
      for(;;) {
         rlen = read(fd, buf, len);
         if (rlen == len) {
            len *= 2;
            buf = realloc(buf, len);
         }
      }
   
   if it operates on pipes, and due to the improved syscall merging, read
   will always return the maximum possible amount of data. But that's a grep
   bug, not a kernel problem.

<greg@kroah.com>
   PCI: remove pcibios_find_class()

<alan@lxorguk.ukuu.org.uk>
   [PATCH] PATCH: 2.5 trivial - MCA comments
   

<alan@lxorguk.ukuu.org.uk>
   [PATCH] disable GMX2000
   
   The GMX code in the DRI is unfinished stuff.  You need the old 4.0 DRM
   for the GMX2000 until 4.3 at least

<alan@lxorguk.ukuu.org.uk>
   [PATCH] PC110 pad docs are wrong
   
   Someone tweaked the PC110 documents changing touchpad to touchscreen,
   this changes it back because it is a touchpad and _not_ a touchscreen

<alan@lxorguk.ukuu.org.uk>
   [PATCH] Forward port AMD random number generator

<alan@lxorguk.ukuu.org.uk>
   [PATCH] 2.5 Fix set_bit abuse in ATP driver

<alan@lxorguk.ukuu.org.uk>
   [PATCH] move tulip into ethernet 10,100

<alan@lxorguk.ukuu.org.uk>
   [PATCH] aacraid driver for 2.5
   
   Forward port from 2.4

<arjanv@redhat.com>
   [PATCH] Remove sys_call_table export
   
   The following patch removes the export of the sys_call_table.
   
   There are no uses of this export that are valid and correct. The uses I've
   found so far are
   
   1. Calling syscalls from inside kernel modules
   iBCS/Linux-abi used to do this (and this is the reason for the export
   in the first place), however it does
   no longer, because newer gcc's (2.96/3.x) don't allow
   function pointer calls with a mismatching type. Also it's much better to
   just call the sys_foo functions directly (most are export symbol'd already
   and exporting more if needed wouldn't be a problem, they are clearly a
   stable interface). Since gcc does no longer allow this
   (and I doubt older ones allowed it for all platforms) this I
   consider invalid and unneeded use.
   
   2. Install new syscalls from kernel modules
   LiS seems to be doing this. The correct way to do this is how NFS does
   it for its syscall, and that doesn't need the syscall table to be
   exported for this. Without an in-kernel helper like NFS has, it is not
   possible to do this race free wrt module-unloads etc. Eg this use of the
   export is unneeded and incorrect.
   
   3. Intercept system calls
   OProfile (and intel's vtune which is similar in function) used to do this;
   however what they really need is a notification on certain
   events (exec() mostly). The way modules do this is store the original
   function pointer, install a new one that calls the old one after storing
   whatever info they need. This mechanism breaks badly in the light of
   multiple such modules doing this versus modules
   unloading/uninstalling their handlers (by restoring their saved pointer
   that may or may not point to a valid handler anymore).
   Eg the use of the export in this just a bandaid due to lack of a
   proper mechanism, and also incorrect and crash prone.
   
   4. Extend system calls
   The mechanism for this is identical to the previous one, except
   that now the actual syscall behavior is changed. I don't think open source
   modules do this (generally they don't need to, just adding things to the
   kernel proper works for them), however I've
   seen IBM's closed source cluster fs do this.
   The objections to the mechanism are the same as in 3. Also
   this changes the userspace ABI effectively, something which is undesireable.

<greg@kroah.com>
   PCI: remove pci_find_device()

<hch@sgi.com>
   [PATCH] Remove some more devfs crap
   
   Translation code for old devfs names that _never_ were in mainline
   for root=.

<greg@kroah.com>
   PCI: removed pcibios_present()

<jgrimm@touki.austin.ibm.com>
   sctp:  Cleanup 'sacked' queue upon teardown.  (jgrimm)
   
   The sacked queue holds chunks that have been gap ack'd, but we
   forgot to free them. 

<torvalds@penguin.transmeta.com>
   Add <linux/linkage.h> include to get FASTCALL() define.

<willy@debian.org>
   [PATCH] Remove another for_each_process loop
   
   Convert send_sigurg() to the for_each_task_pid() mechanism.  Also in
   the case where we were trying to send a signal to a non-existent PID,
   don't bother searching for -PID in the PGID array; we won't find it.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Alloc isdn_net_dev and struct net_device separately
   
   This a big patch, which now mostly finishes the separation work
   of isdn_net_dev, isdn_net_local and struct net_device.
   The latter two are allocated per network-layer known network interface,
   while isdn_net_dev is the entity which is accessed using isdnctrl,
   i.e. a per-channel thing.
   
   Since we allow for channel bundling, isdn_net_local, the priv data of
   an ISDN network interface, gets a list of isdn_net_dev's which can be
   used for transfering data on that interface.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Use generic eth_type_trans()
   
   Now that the generic eth_type_trans() has changed in a way that
   it works for dev->hard_header_size != ETH_HLEN, use it for
   ethernet-over-ISDN instead of the private copy.
   
   Also, kill the pointless isdn_net_adjust_hdr() function.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Separate hard_start_xmit() for different types of ISDN net devices
   
   Really use three different functions, which can call back into
   library-type functions (isdn_net_autodial) as needed.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Make hard_start_xmit() device type specific
   
   One goal is now achieved: Different types of ISDN net devices now have
   a struct ops which describes them, so we don't have a mess of
   if (lp->p_encap == <whatever>) everywhere, but things even nicely
   split into
   
   isdn_net.c: Common stuff and ethernet, raw-ip, and similar
   isdn_ciscohdlck.c: Cisco HDLC + keepalive
   isdn_ppp.c: Sync PPP
   
   where common code to be used library-like is provided by isdn_net.c

<torvalds@home.transmeta.com>
   Fix sigio process lookup handling

<perex@suse.cz>
   ALSA
     - DEVFS cleanup - removal of compatibility code for 2.2 and 2.4 kernels
     - fixed sgalaxy driver (save_flags/cli/restore_flags removal)
     - USB Audio driver
       - added the missing dev_set_drvdata() for 2.5 API
       - simplified the conexistence of old and new USB APIs
       - don't skip the active capture urbs
       - added the debug print for active capture urbs
       - don't change runtime->rate even if the current rate is not same
       - check the bandwidth for urbs (for tests only, now commented out)

<greg@kroah.com>
   PCI: fixed remaining usages of pcibios_present() that I missed previously.

<bcollins@debian.org>
   [PATCH] IEEE1394 updates to 2.5.40
   
   - Fixup for new tq changes
   - Fix dv1394 for use without devfs
   - Fix dv1394 for PAL capture
   - Fix a hard to trigger bug in nodemgr.c
   - Add another broken firmware device to sbp2's list

<bcollins@debian.org>
   [PATCH] More 1394 updates
   
   This incorporates security fixes from Alan that I brought from the
   2.4.20-pre9 tree.

<torvalds@penguin.transmeta.com>
   IO scheduler is a subsystem, not a driver. Initialize it as such.

<axboe@suse.de>
   [PATCH] deadline updates
   
   o Remove unused drq entry in deadline_merge()
   o Quit if insertion point found in deadline_merge()

<axboe@suse.de>
   [PATCH] ide-cd updates
   
   Here starts some new ide updates.
   
   o Don't turn on dma before after having sent the packet cdb
   o Clear sense data given in generic command, otherwise the user cannot
     trust it. I already sent this patch for 2.4.20-pre inclusion.

<axboe@suse.de>
   [PATCH] ide config.in
   
   o Make CONFIG_BLK_DEV_IDEPCI read 'PCI IDE chipset support' and not
     'Generic...', it's just confusing.

<axboe@suse.de>
   [PATCH] cleanup taskfile submit
   
   We don't need to care about the request, just look purely at the
   taskfile itself.

<axboe@suse.de>
   [PATCH] remove _P/_p delaying iops
   
   Lets kill these off for good.
   
   o Remove OUT_BYTE/IN_BYTE and variants. We defaulted to the fast ones
     even before
   
   o Add read barrier for ppc, it needs it

<axboe@suse.de>
   [PATCH] ide low level driver updates
   
   All of them in a single patch, would be silly to split. Does two things:
   
   o Inc module usage count to forcefully pin the module
   
   o Make the chipset init data __devinitdata
   
   o Kill ->init_setup() and just make it generic

<axboe@suse.de>
   [PATCH] pass elevator type by reference, not value
   
   Ingo spotted this one too, it's a leftover from when the elevator type
   wasn't a variable. Also don't pass in &q->elevator, it can always be
   deduced from queue itself of course.

<torvalds@penguin.transmeta.com>
   Oops, it's 'xxx_initcall()', not 'xxx_init()' (except for the
   legacy module_init(), just to confuse people).

<root@viper.(none)>
   Sync up Bluetooth core with 2.4.x.
   SMP locking fixes. 
   Support for Hotplug.
   Support for L2CAP connectionless channels (SOCK_DGRAM).
   HCI filter handling fixes.
   Other minor fixes and cleanups.

<greg@kroah.com>
   PCI: remove usages of pcibios_find_class()

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (1/27): arch.
   
   s390 arch file changes for 2.5.39.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (2/27): include.
   
   s390 include file changes for 2.5.39.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (3/27): drivers.
   
   s390 minimal device drivers changes for 2.5.39.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (4/27): syscalls.
   
   New system calls: security, async. i/o and sys_exit_group. Add 31 bit emulation
   function for sys_futex.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (5/27): ibm partition.
   
   Correct includes in ibm.c to make it compile.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (6/27): config.
   
   Remove some configuration options that don't really make sense.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (7/27): dasd driver.
   

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (8/27): xpram driver.
   
   Remove reference to xpram_release. Correct calls to bi_end_io and bio_io_error.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (9/27): bottom half removal.
   
   Replace IMMEDIATE_BH bottom half by tasklets in 3215, ctc and iucv driver.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (10/27): bitops bug.
   
   Fix broken bitops for unaligned atomic operations on s390.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (11/27): 31 bit emulation.
   
   Fix bug in 31 bit emulation of sys_msgsnd and rename sys32_pread/sys32_pwrite
   to sys32_pread64/sys32_pwrite64.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (12/27): linker scripts.
   
   Use a preprocessed linker script for building vmlinux on s390/s390x.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (13/27): preemption support.
   
   Add support for kernel preemption on s390/s390x.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (14/27): inline optimizations.
   
   Inline csum_partial for s390, the only reason it was out-of-line previously
   is that some older compilers could not get the inline version right.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (15/27): 64 bit spinlocks.
   
   Use diag 0x44 on s390x for spinlocks.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (16/27): timer interrupts.
   
   Make timer interrupt independent from boot cpu and do several ticks in one
   go if a virtual cpu didn't get an interrupt for a period of time > HZ.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (17/27): beautification.
   
   Remove bogus sanity checks and code cleanup.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (18/27): fpu registers.
   
   Cleanup load/store of fpu register on s390.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (19/27): ptrace cleanup.
   
   Rewrite s390 ptrace code in a more readable and less buggy way. As a part of
   this, all psw related definitions are moved into ptrace.h from a number of
   different locations.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (20/27): signal quiesce.
   
   Add 'signal quiesque' feature to s390 hardware console. A signal quiesce
   is sent from VM or the service element every time the system should shut
   down. We receive the quiesce signal and call ctrl_alt_del(). Finally the
   mainframes have ctrl-alt-del as well :-)

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (21/27): sync i/o bug.
   
   Remove bogus sanity check from {en,dis}able_sync_isc() and really disable all
   interrupt sub classes except isc 7 in wait_cons_dev.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (22/27): s390_process_IRQ.
   
   Cleanup s390_process_IRQ a little, the ending_status argument is never
   really used.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (23/27): channel paths.
   
   Check if defined chpids are available. Some code simplification.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (24/27): boot sequence.
   
   Rework boot sequence on s390:
   
   Traditionally, device detection os s390 is done completely
   at a _very_ early stage during bootup (from init_irq(),
   i.e. before memory management or the console are there).
   
   This has always been a bad idea, but now it broke even more
   since the linux driver model requires devices detection
   to take place after the core_initcalls are done.
   
   We now do only a small amount of scanning (probably
   less in the future) at the early stage, the bulk of it
   is done from a proper subsys_initcall(). This requires
   some changes in related areas:
   
   - the machine check handler initialization is split in
     two halves, since we want to catch major machine malfunctions
     as early as possible, but device machine checks can only
     be caught after the channel subsystem is up.
   
   - some functions that are called from the css initialization
     made some assumptions of when to use kmalloc or bootmem_alloc,
     which were broken anyway. We fix this here and hopefully
     can get rid of bootmem_alloc for the css completely in the future.
   
   - the debug logging feature for s390 was not used for functions
     in the initialization before, since it requires the memory
     management to be working. Now that we can be sure that it
     works, some special cases can be removed.
   
   Now that these changes are done, a partial implementation of the
   device model for the channel subsystem is possible, but at this
   point, none of the device drivers make use of that yet.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (25/27): init call.
   
   Remove call to s390_init_machine_check in init/main.c, the new boot code
   on s390 calls it via arch_initcall.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (26/27): /proc/interrupts.
   
   Don't create /proc/interrupts on s390.

<schwidefsky@de.ibm.com>
   [PATCH] s390 update (27/27): control characters.
   
   Replace IMMEDIATE_BH bottom half by tasklets in helper functions for
   console control characters. Fix a race condition and make it look nicer.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Fix build with modversions
   
   Sam Ravnborg missed a place I missed converting, and I found another one,
   too.

<greg@kroah.com>
   PCI: remove pcibios_find_device() from the 53c7,8xx.c SCSI driver

<torvalds@penguin.transmeta.com>
   Export the gdt table GPL-only for APM.

<maxk@viper.(none)>
   Bluetooth USB driver update.
   Remove firmware loading support, it's handled in hotplug.
   Other minor fixes.

<maxk@viper.(none)>
   Syncup HCI UART driver with 2.4.x.
   New improved UART proto interface.
   Support for BCSP protocol.

<maxk@viper.(none)>
   BNEP (Bluetooth Network Encapsulation Protocol) support.

<maxk@viper.(none)>
   RFCOMM protocol support.
   RFCOMM socket and TTY emulation APIs.

<yoshfuji@linux-ipv6.org>
   [IPV4/IPV6]: General cleanups.
   - Use s6_XXX instead of in6_u.s6_XXX
   - Use macros not magic numbers
   - Avoid __constant_{hton,ntoh}{l,s} in runtime code.

<anton@samba.org>
   [PATCH] 64-bit timer fix
   
   I think I have found it and it only hits on a 64 bit machine.
   
   If the timeout is big enough we still need to initialise timer->entry.
   Otherwise bad things happen we we hit del_timer.

<trond.myklebust@fys.uio.no>
   [PATCH] NFS: readdir reply truncated!
   
   Duh... Even a simple one-liner test can be wrong. The really sad bit
   is that I made the same mistake 3 weeks ago, fixed it, and then lost
   track of the fix...
   
   To recap fix to fix: A valid end of directory marker has to read
   (entry[0]==0 && entry[1]!=0). Here is final correct (I hope) patch.

<maxk@viper.(none)>
   Fix designated initializers in RFCOMM TTY layer.

<torvalds@home.transmeta.com>
   Undo due to weird behaviour on various boxes
   Cset exclude: ink@jurassic.park.msu.ru|ChangeSet|20021003201553|58706

<andmike@us.ibm.com>
   [PATCH] sg might_sleep fixes
   
   This is a update to a previous patch that fixed some sg might sleep
   errors.
   
   This patch corrects a problem in sg.c where a lock is held during calls to
   vmalloc and calls for device model registration.
   
   Note:
      Douglas Gilbert is the maintainer of this driver.
      dougg@gear.torque.net
      http://www.torque.net/sg/
   
      During Douglas Gilbert's time-off he connects when he can so it
      maybe a bit until he can address this.
   
      In the interim this patch should fix the problem, and
      still provide for safe additions.
   
   
   The full patch is available at:
   http://www-124.ibm.com/storageio/patches/2.5/sg
   
   -andmike
   --
   Michael Anderson
   andmike@us.ibm.com
   
    sg.c |   83 +++++++++++++++++++++++++++++++++++++++++--------------------------
    1 files changed, 52 insertions(+), 31 deletions(-)

<ahaas@neosoft.com>
   [IPV4/IPV6]: C99 designated initializers.

<buytenh@gnu.org>
   [NET]: Remove net_call_rx_atomic.

<buytenh@gnu.org>
   [BRIDGE]: Skip the LISTENING_STP state if STP is disabled.

<buytenh@gnu.org>
   [BRIDGE]: take BR_NETPROTO_LOCK for unlinking bridge device slaves

<torvalds@home.transmeta.com>
   Use dump_stack() for the USB storage buffer size checking,
   to make it possible to track down.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: small fixes
   
   Fix "make xconfig" and remove a reference to drivers/sbus/audio,
   which does not exist.
   
   (Sam Ravnborg)

<perex@suse.cz>
   ALSA update
     - CS46xx driver - removed unused variable
     - USB code
       - pass struct usb_interface pointer to the usb-midi parser.
         in usb-midi functions, this instance is used instead of parsing
         the interface from dev and ifnum.
       - allocate the descriptor buffer only for parsing the audio device.
       - clean up, new probe/disconnect callbacks for 2.4 API.
       - added the support for Yamaha and Midiman devices.                                                  

<davem@nuts.ninka.net>
   [SPARC]: Update for dequeue_signal changes.

<davem@nuts.ninka.net>
   [SPARC]: Uninline kmap atomic operations.

<zaitcev@redhat.com>
   mm/highmem.c: Include asm/tlbflush.h

<zaitcev@redhat.com>
   arch/sparc/kernel/sun4d_irq.c: init_timers --> sparc_init_timers

<perex@suse.cz>
   ALSA update
     - updated config descriptions for EMU10K1 and INTEL8X0

<davem@nuts.ninka.net>
   arch/sparc64/defconfig: Update.

<vandrove@vc.cvut.cz>
   [PATCH] FAT/VFAT memory corruption during mount()
   
   This patch fixes memory corruption during vfat mount: one byte
   before mount options is overwritten by ',' since strtok->strsep
   conversion happened.
   
   This patch also fixes another problem introduced by strtok->strsep
   conversion: VFAT requires that FAT does not modify passed options,
   but unfortunately FAT driver fails to preserve options string if
   there is more than one consecutive comma in option string.

<jejb@mulgrave.(none)>
   [SCSI] tidy up sd synchronize cache messages into a single line

<christer@weinigel.se>
   [PATCH] Updated NatSemi SCx200 patches for Linux-2.5
   
   This patch adds support for the National Semiconductor SCx200
   processor family to Linux 2.5.
   
   The patch consists of the following drivers:
   
     arch/i386/kernel/scx200.c -- give kernel access to the GPIO pins
   
     drivers/chars/scx200_gpio.c -- give userspace access to the GPIO pins
     drivers/chars/scx200_wdt.c -- watchdog timer driver
   
     drivers/i2c/scx200_i2c.c -- use any two GPIO pins as an I2C bus
     drivers/i2c/scx200_acb.c -- driver for the Access.BUS hardware
   
     drivers/mtd/maps/scx200_docflash.c -- driver for a CFI flash connected
                                         to the DOCCS pin

<Kai.Makisara@kolumbus.fi>
   [PATCH] SCSI tape devfs & driverfs fix
   
   fix device numbering in driverfs and devfs broken by previous patch
   (bug found by Bjoern A. Zeeb (bz@zabbadoz.net))

<bgerst@didntduck.org>
   [PATCH] struct super_block cleanup - hpfs
   
   Remove hpfs_sb from struct super_block.

<bgerst@didntduck.org>
   [PATCH] struct super_block cleanup - ext3
   
   Removes the last member of the union, ext3.

<akpm@digeo.com>
   [PATCH] fix /proc/vmstat:pgpgout/pgpgin
   
   These numbers are being sent to userspace as number-of-sectors, whereas
   they should be number-of-k.

<akpm@digeo.com>
   [PATCH] hugetlb kmap fix
   
   From Bill Irwin
   
   This patch makes alloc_hugetlb_page() kmap() the memory it's zeroing,
   and cleans up a tiny bit of list handling on the side.  Without this
   fix, it oopses every time it's called.

<akpm@digeo.com>
   [PATCH] remove debug code from list_del()
   
   It hasn't caught any bugs, and it is causing confusion over whether
   this is a permanent part of list_del() behaviour.

<akpm@digeo.com>
   [PATCH] distinguish between address span of a zone and the number
   
   From David Mosberger
   
   The patch below fixes a bug in nr_free_zone_pages() which shows when a
   zone has hole.  The problem is due to the fact that "struct zone"
   didn't keep track of the amount of real memory in a zone.  Because of
   this, nr_free_zone_pages() simply assumed that a zone consists entirely
   of real memory.  On machines with large holes, this has catastrophic
   effects on VM performance, because the VM system ends up thinking that
   there is plenty of memory left over in a zone, when in fact it may be
   completely full.
   
   The patch below fixes the problem by replacing the "size" member in
   "struct zone" with "spanned_pages" and "present_pages" and updating
   page_alloc.c.

<akpm@digeo.com>
   [PATCH] truncate fixes
   
   The new truncate code needs to check page->mapping after acquiring the
   page lock.  Because the page could have been unmapped by page reclaim
   or by invalidate_inode_pages() while we waited for the page lock.
   
   Also, the page may have been moved between a tmpfs inode and
   swapper_space.  Because we don't hold the mapping->page_lock across the
   entire truncate operation any more.
   
   Also, change the initial truncate scan (the non-blocking one which is
   there to stop as much writeout as possible) so that it is immune to
   other CPUs decreasing page->index.
   
   Also fix negated test in invalidate_inode_pages2().  Not sure how that
   got in there.

<akpm@digeo.com>
   [PATCH] O_DIRECT invalidation fix
   
   If the alignment checks in generic_direct_IO() fail, we end up not
   forcing writeback of dirty pagecache pages, but we still run
   invalidate_inode_pages2().  The net result is that dirty pagecache gets
   incorrectly removed.  I guess this will expose unwritten disk blocks.
   
   So move the sync up into generic_file_direct_IO(), where we perform the
   invalidation.  So we know that pagecache and disk are in sync before we
   do anything else.

<akpm@digeo.com>
   [PATCH] mempool wakeup fix
   
   When the mempool is empty, tasks wait on the waitqueue in "exclusive
   mode".  So one task is woken for each returned element.
   
   But if the number of tasks which are waiting exceeds the mempool's
   specified size (min_nr), mempool_free() ends up deciding that as the
   pool is fully replenished, there cannot possibly be anyone waiting for
   more elements.
   
   But with 16384 threads running tiobench, it happens.
   
   We could fix this with a waitqueue_active() test in mempool_free().
   But rather than adding that test to this fastpath I changed the wait to
   be non-exclusive, and used the prepare_to_wait/finish_wait API, which
   will be quite beneficial in this case.
   
   Also, convert the schedule() in mempool_alloc() to an io_schedule(), so
   this sleep time is accounted as "IO wait".  Which is a bit approximate
   - we don't _know_ that the caller is really waiting for IO completion.
   But for most current users of mempools, io_schedule() is more accurate
   than schedule() here.

<akpm@digeo.com>
   [PATCH] separation of direct-reclaim and kswapd functions
   
   There is some lack of clarity in what kswapd does and what
   direct-reclaim tasks do; try_to_free_pages() tries to service both
   functions, and they are different.
   
   - kswapd's role is to keep all zones on its node at
   
      zone->free_pages >= zone->pages_high.
   
     and to never stop as long as any zones do not meet that condition.
   
   - A direct reclaimer's role is to try to free some pages from the
     zones which are suitable for this particular allocation request, and
     to return when that has been achieved, or when all the relevant zones
     are at
   
      zone->free_pages >= zone->pages_high.
   
   The patch explicitly separates these two code paths; kswapd does not
   run try_to_free_pages() any more.  kswapd should not be aware of zone
   fallbacks.

<akpm@digeo.com>
   [PATCH] fix reclaim for higher-order allocations
   
   The page reclaim logic will bail out if all zones are at pages_high.
   But if the caller is requesting a higher-order allocation we need to go
   on and free more memory anyway.  That's the only way we have of
   addressing buddy fragmentation.

<akpm@digeo.com>
   [PATCH] use bio_get_nr_vecs() hint for pagecache writeback
   
   Use the bio_get_nr_pages() hint for sizing the BIOs which writeback
   allocates.

<akpm@digeo.com>
   [PATCH] Documentation/filesystems/ext3.txt
   
   By Vincent Hanquez <tab@tuxfamily.org>

<akpm@digeo.com>
   [PATCH] use bio_get_nr_vecs() for sizing direct-io BIOs
   
   From Badari Pulavarty.
   
   Rather than allocating maximum-sized BIOs, use the new
   bio_get_nr_vecs() hint when sizing the BIOs.
   
   Also keep track of the approximate upper-bound on the number of pages
   remaining to do, so we can again avoid allocating excessively-sized
   BIOs.

<akpm@digeo.com>
   [PATCH] remove write_mapping_buffers()
   
   When the global buffer LRU was present, dirty ext2 indirect blocks were
   automatically scheduled for writeback alongside their data.
   
   I added write_mapping_buffers() to replace this - the idea was to
   schedule the indirects close in time to the scheduling of their data.
   
   It works OK for small-to-medium sized files but for large, linear writes
   it doesn't work: the request queue is completely full of file data and
   when we later come to scheduling the indirects, their neighbouring data
   has already been written.
   
   So writeback of really huge files tends to be a bit seeky.
   
   So.  Kill it.  Will fix this problem by other means.

<akpm@digeo.com>
   [PATCH] use buffer_boundary() for writeback scheduling  hints
   
   This is the replacement for write_mapping_buffers().
   
   Whenever the mpage code sees that it has just written a block which had
   buffer_boundary() set, it assumes that the next block is dirty
   filesystem metadata.  (This is a good assumption - that's what
   buffer_boundary is for).
   
   So we do a lookup in the blockdev mapping for the next block and it if
   is present and dirty, then schedule it for IO.
   
   So the indirect blocks in the blockdev mapping get merged with the data
   blocks in the file mapping.
   
   This is a bit more general than the write_mapping_buffers() approach.
   write_mapping_buffers() required that the fs carefully maintain the
   correct buffers on the mapping->private_list, and that the fs call
   write_mapping_buffers(), and the implementation was generally rather
   yuk.
   
   This version will "just work" for filesystems which implement
   buffer_boundary correctly.  Currently this is ext2, ext3 and some
   not-yet-merged reiserfs patches.  JFS implements buffer_boundary() but
   does not use ext2-like layouts - so there will be no change there.
   
   Works nicely.

<akpm@digeo.com>
   [PATCH] remove page->virtual
   
   The patch removes page->virtual for all architectures which do not
   define WANT_PAGE_VIRTUAL.  Hash for it instead.
   
   Possibly we could define WANT_PAGE_VIRTUAL for CONFIG_HIGHMEM4G, but it
   seems unlikely.
   
   A lot of the pressure went off kmap() and page_address() as a result of
   the move to kmap_atomic().  That should be the preferred way to address
   CPU load in the set_page_address() and page_address() hashing and
   locking.
   
   If kmap_atomic is not usable then the next best approach is for users
   to cache the result of kmap() in a local rather than calling
   page_address() repeatedly.
   
   One heavy user of kmap() and page_address() is the ext2 directory code.
   
   On a 7G Quad PIII, running four concurrent instances of
   
      while true
      do
         find /usr/src/linux > /dev/null
      done
   
   on ext2 with everything cached, profiling shows that the new hashed
   set_page_address() and page_address() implementations consume 0.4% and
   1.3% of CPU time respectively.   I think that's OK.

<akpm@digeo.com>
   [PATCH] stricter dirty memory clamping
   
   The ratelimiting logic in balance_dirty_pages_ratelimited() is designed
   to prevent excessive calls to the expensive get_page_state(): On a big
   machine we only check to see if we're over dirty memory limits once per
   1024 dirtyings per cpu.
   
   This works OK normally, but it has the effect of allowing each process
   to go 1024 pages over the dirty limit before it gets throttled.
   
   So if someone runs 16000 tiobench threads, they can go 16G over the
   dirty memory threshold and die the death of buffer_head consumption.
   Because page dirtiness pins the page's buffer_heads, defeating the
   special buffer_head reclaim logic.
   
   I'd left this overshoot artifact in place because it provides a degree
   of adaptivity - of someone if running hundreds of dirtying processes
   (dbench!) then they do want to overshoot the dirty memory limit.
   
   But it's hard to balance, and is really not worth the futzing around.
   So change the logic to only perform the get_page_state() call rate
   limiting if we're known to be under the dirty memory threshold.

<akpm@digeo.com>
   [PATCH] clean up ll_rw_block()
   
   Hardly anything uses this function, so the debug checks in there are
   not of much value.
   
   The check for bdev_readonly() should be done in submit_bio().
   
   Local variable `major' was altogether unused.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Nicer warnings
   
   Improve the warning messages when using obsolete features, kill one
   remaining user of $(list-multi)
   
   (by Sam Ravnborg)
   
   I also made O_TARGET != built-in.o an error, since compatibility code for
   that case has already been dropped 

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Don't descend into arch/i386/boot
   
   We don't descend anymore when building vmlinux, so don't do so for
   the i386 specific boot targets, either.
   
   Plus, more cleanup in arch/i386/Makefile

<acme@conectiva.com.br>
   o LLC: start using seq_file for proc stuff

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Put .bss back to the end of vmlinux
   
   The kallsyms patches added __kallsyms as last section into vmlinux,
   behind .bss.
   
   This was done to save two additional kallsyms passes, since as the
   added section was last, it did not change the symbols before it.
   
   With the new infrastructure in the top-level Makefile, we do not need
   to do full relinks for these passes, so they are cheaper. We now
   use one additional link/kallsyms run to be able to place the __kallsyms
   section before .bss. The other pass is saved by adding an empty but 
   allocated __kallsyms section in kernel/kallsyms.c, so the first kallsyms
   pass already generates a section of the final size.

<rmk@flint.arm.linux.org.uk>
   [SERIAL] Allow PCMCIA serial cards to work again.
   The PCMCIA layer claims the IO or memory regions for all cards.  This
   means that any port registered via 8250_cs must not cause the 8250
   code to claim the resources itself.
   
   We also add support for iomem-based ports at initialisation time for
   PPC.

<rmk@flint.arm.linux.org.uk>
   [SERIAL] Fix serial includes for modversions/modules.
   This fixes the build error that occurs if you have a certain selection
   of module/modversions settings.

<acme@conectiva.com.br>
   o LLC: now it only uses seq_file for proc stuff
   
   some extra trivial cleanups.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: New file for net interface config and basic setup
   
   Add a new file isdn_net_lib.c, where code which is shared among different
   kind of network interface will gradually migrate to.
   
   For now, move the ioctl config code out of isdn_{common,net}.c there,
   and the basic register_netdev() + associated methods.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Convert remaining users of the old slave list
   
   ->slave and ->master have been superseded, remove remaining traces.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: split isdn_net state machine
   
   No code change, just splitting different states into separate functions.

<torvalds@home.transmeta.com>
   Increase the delay in waiting for pcmcia drivers to register.
   
   Reported by Peter Osterlund.
   
   (Yeah, the real fix would be to make driver services not have to
   know about low-level pcmcia core drivers beforehand, but that's not
   life as we know it right now).

<perex@suse.cz>
   [PATCH] fix sgalaxy.c driver cli/sti code.

<viro@math.psu.edu>
   [PATCH] pcd switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] initrd fix (missing set_capacity)

<viro@math.psu.edu>
   [PATCH] umem switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] ps2esdi switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] xd switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] acorn mfm switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] i2o switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] stram/z2ram switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] nbd switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] dasd switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] ubd switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] swim* switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] jsflash switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] xpram switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] atari floppy switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] amiga floppy switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] acorn floppy switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] paride floppy switched to alloc_disk()

<viro@math.psu.edu>
   [PATCH] DAC960 switched to alloc_disk()

<bgerst@didntduck.org>
   [PATCH] unistd.h cleanups
   
   This patch removes the stubs for syscalls that are not used from the
   kernel anymore.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: fix make -jN warnings
   
   If you hide the sub-make in a function, 'make' needs a little help...

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Reuse the dial_timer for idle hangup
   
   Since we use the dial timer only during setup and the idle timer
   only when the connection is active, we can simply (and cleanly) use
   the same timer.

<viro@math.psu.edu>
   [PATCH] cciss.c switched to use of alloc_disk()

<viro@math.psu.edu>
   [PATCH] fix of bug in previous DAC960 patch
   
   Missed memset() when switching DAC960 to alloc_disk().  Fixed.

<acme@conectiva.com.br>
   o IPX: use seq_file for proc stuff
   
   Also move the lenghty ChangeLog to a separate file.
   
   It also tidies a tiny bit of LLC.

<torvalds@home.transmeta.com>
   Make wildcard dependency filenames be relative, not absolute.
   
   That also matches the other dependency filenames these days,
   and makes the tree more position-independent.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Fix arch/i386/boot clean targets
   
   We removed some files which are long since dead, but on the other
   hand forgot some of the current ones.
   
   Also, add a missing ) in a warning (introduced and fixed by Sam Ravnborg ;)

<viro@math.psu.edu>
   [PATCH] cpqarray switched to alloc_disk()
   
   In addition to usual switch and cleanup, switched the damn thing
   to use of module_init/module_exit (and removed call from device_init()).

<torvalds@home.transmeta.com>
   Don't add the $(obj) prefix twice..

<akpm@digeo.com>
   [PATCH] smbfs compile fix
   
   smbfs compilation fix

<jejb@mulgrave.(none)>
   [SCSI] sd moved synchronisation from release to detach

<viro@math.psu.edu>
   [PATCH] acsi switched to alloc_disk()
   
   That's the last one.  Now we can start doing refcounting...

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Make idle timeout and retry wait parts of the state machine

<bjorn.andersson@erc.ericsson.se>
   net/8021q/vlan_dev.c: Fix lockup when setting egress priority.

<kai@tp1.ruhr-uni-bochum.de>
   Cset exclude: kai@tp1.ruhr-uni-bochum.de|ChangeSet|20021005215705|12351

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Fix kallsyms build
   
   After reverting my nice but totally broken idea about accelerating
   the linking steps, make the three-stage .tmp_kallsyms.o generation
   / addition work again.
   
   Yeah, that means that we now link vmlinux three times when
   CONFIG_KALLSYMS is set, and that's annoying.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Fix make clean in scripts/lxdialog

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: tidy up isdn_net_log_skb()

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Replace rx_netdev, st_netdev by a single field
   
   For some unknown reason, isdn_net kept two pointers back from the channel
   to the associated isdn_net_dev, one is enough, though.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Separate state machine actions into single functions
   
   Additionally, a little further cleanup, use the same timer
   for incoming call timeout no matter if D- or B-channel connect
   times out.
   
   Simplify idle hang-up code.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Move call control to isdn_net_lib.c
   
   No code change, just move the call control state machine from
   isdn_net.c to isdn_net_lib.c

<alan@lxorguk.ukuu.org.uk>
   [PATCH] forward port toughbook fixes for maestro3
   
   (Jaroslav you may want to clone this into ALSA if ALSA lacks this one)

<alan@lxorguk.ukuu.org.uk>
   [PATCH] fix warning in longhaul.c

<alan@lxorguk.ukuu.org.uk>
   [PATCH] update docs to match maestro3 changes

<alan@lxorguk.ukuu.org.uk>
   [PATCH] flush the right thing in the rd cache
   
   (From Matthew Wilcox)

<alan@lxorguk.ukuu.org.uk>
   [PATCH] Clean up sf16fmi radio

<alan@lxorguk.ukuu.org.uk>
   [PATCH] Fix cs89x0 warnings

<alan@lxorguk.ukuu.org.uk>
   [PATCH] NCR5380 port to 2.5 first pass
   
   There is still more work to do, the driver sucks in 2.4 and 2.5 but 2.5 has a
   lot more of what is needed to make it work nicely. Basically NCR5380_main
   probably has to become a thread in the next generation of the code.
   
   This however seems to get it up and crawling

<alan@lxorguk.ukuu.org.uk>
   [PATCH] Fix stupid scsi setup bug in 53c406, fix addressing

<alan@lxorguk.ukuu.org.uk>
   [PATCH] first pass at the ancient wd7000 crap
   
   (Wants indenting but I'll do an indenting pass after the code changes
   are accepted)

<alan@lxorguk.ukuu.org.uk>
   [PATCH] bring telephony in line with 2.4
   
   Also note the pcmcia fix - I think the other pcmcia cards should be
   using del_timer_sync, but seem not to be.

<alan@lxorguk.ukuu.org.uk>
   [PATCH] add the mini 4x6 font from uclinux
   
   This stands alone from UCLinux and is independent of whether it ever
   merges with the mainstream.  Its rather handy for getting an entire oops
   onto a PDA screen

<alan@lxorguk.ukuu.org.uk>
   [PATCH] make jffs/jffs2 work with signal changes

<alan@lxorguk.ukuu.org.uk>
   [PATCH] 6x4 font headers
   
   Oops forgot this in the first patch set

<alan@lxorguk.ukuu.org.uk>
   [PATCH] sane minimum proc count
   
   Again from UCLinux merge but relevant on its own for any embedded tiny box

<gotom@debian.or.jp>
   [PATCH] NinjaSCSI-32Bi/UDE PCI/Cardbus SCSI core driver
   
   This patch supports new driver nsp32 - NinjaSCSI-32Bi/UDE PCI/Cardbus
   SCSI adapter for 2.5.40. This driver supports at least (we tested) 7
   different PCI/Cardbus SCSI cards which use Workbit NinjaSCSI-32 SCSI
   processor.
   
   This is the driver part, next one is for things like Config.help,
   Makefile, and so on.

<gotom@debian.or.jp>
   [PATCH] NinjaSCSI-32Bi/UDE PCI/Cardbus SCSI driver incidentals
   
   Config files, makefiles etc for the NinjaSCSI driver.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Make the state machine explicit
   
   Add a finite state machine helper module, which is basically copied over
   from the hisax driver with a little bit of beautification.
   
   Eventually, all ISDN should be converted to using these routines.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Use a tasklet for the Eicon driver
   
   Armin Schindler converted the driver to use tasklets, which makes more
   sense than the new work_struct stuff here.

<marcel@holtmann.org>
   [PATCH] Bluetooth kbuild fix and config cleanup
   
   This removes the obsolete O_TARGET and cleans up the Config.* and *.c
   files to have a unique CONFIG_BLUEZ prefix.  Additional two missing help
   entries are added.

<devik@cdi.cz>
   net/sched/sch_htb.c: Check that node is really leaf before modifying cl->un.leaf

<acme@conectiva.com.br>
   o X25: use seq_file for proc stuff
   
   Also some CodingStyle cleanups.

<acme@conectiva.com.br>
   o X25: fix permission bogosity in create_proc_entry usage
   
   Thanks to Al Viro for reviewing this, this also fixes the
   example that made me do this copy'n'paste brain fart.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Extend state machine
   
   Do dial-out via the state machine as well, and add a state
   to wait for the D-channel hangup as well before unbinding
   the isdn_net_dev.
   
   Plus assorted compile/warning fixes.

<davem@nuts.ninka.net>
   [VLAN]: Accept zero vlan at unregister.

<kai@tp1.ruhr-uni-bochum.de>
   ISDN: Allow for return values in the state machine
   
   It does not make sense for all events (like timer expiry), but for
   some uses it's helpful for the called routine to return an error
   code.

<acme@conectiva.com.br>
   o Appletalk: use seq_file for proc stuff
   
   And also move MODULE_LICENSE from aarp.c to ddp.c, as its there
   that the module_init/exit is.
   
   Also added MODULE_AUTHOR and MODULE_DESCRIPTION.

<davem@nuts.ninka.net>
   arch/sparc64/mm/init.c: Initialize {min,max}_low_pfn and max_pfn properly.

<davem@nuts.ninka.net>
   net/core/dev.c: Print lethal dev/protocol errors with KERN_CRIT.

<davem@nuts.ninka.net>
   net/8021q/vlan.c: Unsigned value may never be < 0.

<steve@gw.chygwyn.com>
   [PATCH] Trivial fix to aio.c:__aio_get_req()
   
   This is a simple fix to aio.c:__aio_get_req() where it appears that
   a freed aio request could be incorrectly returned in the error path,

<axboe@suse.de>
   [PATCH] ide io port types
   
   IDE uses u32 as being an io port, which is wrong. We even have an arch
   type for this, ide_ioreg_t. Use that.
   
   Also fix a bad printk() in ide-disk, introduced with the swsusp stuff.

<schwidefsky@de.ibm.com>
   [PATCH] s390 dasd driver update
   
   Get rid of name and bdev in dasd_device_t structure.

<cel@citi.umich.edu>
   [PATCH] add struct file* to ->direct_IO addr space op
   
   This makes file credentials available to the ->direct_IO address space
   operation by replacing its struct inode* argument with a struct file*
   argument.  this patch is a prerequisite for NFS direct I/O support.  it
   breaks the raw device driver.

<cel@citi.umich.edu>
   [PATCH] remove NFS client internal dependence on page->index
   
   This makes the NFS client copy the page->index field into its read and
   write request structures (struct nfs_page) when setting up I/O on a
   page.  this makes it possible for NFS direct I/O support to reuse
   existing NFS client subroutines, and helps eventually allow NFS I/O to
   and from anonymous pages.  it is a prerequisite for NFS direct I/O
   support.

<cel@citi.umich.edu>
   [PATCH] initial support for NFS direct I/O for 2.5
   
   This adds initial support for NFS direct I/O in the 2.5 kernel.  many
   have asked for this support to be included in 2.5.  this patch does not
   provide working NFS direct I/O, but i'm sending what i have now so that
   it can be included before October 20.
   
   NFS direct I/O is enabled by its very own kernel config option.  when
   enabled, the NFS client won't build to prevent people from using this and
   possibly corrupting their NFS files.  later i will send a patch that
   finishes the implementation.
   
   [ Config option currently disabled ]

<david-b@pacbell.net>
   [PATCH] pci/pool.c less spinlock abuse
   
   That previous patch got rid of a boot time might_sleep() warning,
   but I noticed two later on:
   
     - kmalloc() needed SLAB_ATOMIC
   
     - destroying the 'pools' driverfs attribute could sleep too
   
   The clean/simple patch for the second one tweaked an API:
   
     - pci_pool_create() can't be called in_interrupt() any more.
       nobody used it there, and such support isn't needed; plus
       that rule matches its sibling call, pci_pool_destroy().
   
     - that made its SLAB_* flags parameter more useless, so it's
       removed and the DMA-mapping.txt is updated.  (this param
       was more trouble than it was worth -- good that it's gone.)
   
   Nobody (even DaveM) objected to those API changes, so I think
   this should be merged.

<torvalds@penguin.transmeta.com>
   Linux v2.5.41
Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.