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

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

Advertisement

Change log for patch v2.5.35

Summary of changes from v2.5.34 to v2.5.35
============================================

<anton@samba.org>
   ppc64: remove some unnecessary sign extensions

<anton@samba.org>
   ppc64: remove ancient stat syscalls

<anton@samba.org>
   ppc64: add mmap64 support

<anton@samba.org>
   ppc64: add sendfile64 support and restore ioperm syscall

<anton@samba.org>
   ppc64: Dont force O_LARGEFILE on for 32 bit apps. From sparc64

<anton@samba.org>
   ppc64: merge in changes from x86 irq balance code

<anton@samba.org>
   ppc64: Update the fake pci read code to handle a return of all 1s.

<anton@samba.org>
   ppc64: Fix sys32_readahead wrapper to obey ABI wrt passing long longs

<anton@samba.org>
   ppc64: remove status, no longer used

<anton@samba.org>
   ppc64: Remove use of <asm/smplock.h>

<anton@samba.org>
   ppc64: remove some old code

<anton@samba.org>
   ppc64: clean up syscall table, making it obvious which are obsolete and which are 32 bit only

<anton@samba.org>
   ppc64: Remove old keyboard code

<anton@samba.org>
   ppc64: fixes for 2.5.32

<anton@samba.org>
   hvc_console: stop HVC console while xmon is running

<anton@samba.org>
   ppc64: make udelay a barrier, fixes problem with input layer keyboard probing

<anton@samba.org>
   ppc64: defconfig update

<anton@samba.org>
   ppc64: config.in cleanup

<anton@samba.org>
   ppc64: Add security and AIO syscalls
   ppc64: copy FE0 and FE1 bits into MSR when ptracing
   ppc64: warn when registering duplicate ioctls

<anton@samba.org>
   ppc64: Compile in LLC, needed for token ring

<anton@samba.org>
   ppc64: turn off token ring for the moment, it oopses

<agrover@groveronline.com>
   ACPI trivial cleanups (Kochi Takayoshi)

<vojtech@suse.cz>
   This fixes problems in serport.c found by Russell King:
          1) Problem with current->state in serport_ldisc_read.
             Solved by using wait_event_interruptible()
          2) Problem when serport_ldisc_read() is entered twice.
             Solved using set_bit et al.
          3) Complex naming of the serio ports.
             Using tty_name() instead.
          4) Possible stack overflows in name generations.
             Using tty_name() instead. 

<ak@suse.de>
   Because x86-64 also always reserves the kbd region,
   we must not call request_region() in i8042-io.h, like
   we don't for i386, alpha, etc.

<agrover@groveronline.com>
   By John Belmonte - improvements to Toshiba ACPI driver:
   1) Fix sscanf
   2) Add TV out support
   3) Add hotkey status
   4) Add version info

<agrover@groveronline.com>
   ACPI Config.in update by Christoph Hellwig
   - 3 space indents
   - one menu for all arches instead of duplicating
   - define_*s moved below the real questions

<agrover@groveronline.com>
   Remove obsolete OSL functions (Kochi Takayoshi)

<agrover@groveronline.com>
   ifdef some arch-specific ACPI code

<david-b@pacbell.net>
   [PATCH] uhci, doc + cleanup
   
   Another UHCI patch.  I'm sending this since Dan said he was going to
   start teaching "uhci-hcd" how to do control and interrupt queueing,
   and this may help.  Granted it checks out (I didn't test the part
   that has a chance to break, though it "looks right"), I think it
   should get merged in at some point.  What it does:
   
      - updates and adds some comments/docs
      - gets rid of a "magic number" calling convention, instead passing
        an explicit flag UHCI_PTR_DEPTH or UHCI_PTR_BREADTH (self-doc :)
      - deletes bits of unused/dead code
      - updates the append-to-qh code:
          * start using list_for_each() ... clearer than handcrafted
            loops, and it prefetches too.  Lots of places should get
            updated to do this, IMO.
          * re-orders some stuff to fix a sequencing problem
          * adds ascii-art to show how the urb queueing is done
            (based on some email Johannes sent me recently)
   
   That sequencing problem is that when splicing a QH between A and B,
   it currently splices A-->QH before QH-->B ... so that if the HC is
   looking at that chunk of schedule at that time, everything starting
   at B will be ignored during the rest of that frame.  (Since the QH
   is initted to have UHCI_PTR_TERM next, stopping the schedule scan.)
   
   I said "problem" not "bug" since in the current code it would probably
   (what does that "PIIX bug" do??) just reduce control/bulk throughput.
   That's because the logic is only appending towards the  end of each
   frame's schedule, where the FSBR loopback kicks in.

<david-b@pacbell.net>
   [PATCH] Re: [patch 2.5.31-bk5] uhci, misc
   
   This patch has some small UHCI bugfixes
   
      - on submit error, frees memory and (!) returns error code
      - root hub should disconnect only once
      - pci pool code shouldn't be given GFP_DMA
      - uses del_timer_sync(), which behaves on SMP, not del_timer()
   
   and cleanups:
   
      - use container_of
      - doesn't replicate so much hcd state
      - no such status -ECONNABORTED
      - uses bus_name in procfs, not "hc0", "hc1" etc

<zwane@mwaikambo.name>
   [PATCH] pci_free_consistent on ohci initialisation failure
   
   The trace at the end of the message shows the init failure.

<bmatheny@purdue.edu>
   [PATCH] Lexar USB CF Reader
   
   Two weeks ago I sent this patch to the listed USB storage maintainer
   (mdharm-usb@one-eyed-alien.net) and have not yet heard back. The
   attached patch adds support for the Lexar USB CF Reader identified by
   id_product 0xb002, version 0x0113 (which is the version I have). This
   patch is against the 2.4.19 kernel, sorry if this is the wrong address
   to send this stuff to. Thanks.

<david-b@pacbell.net>
   [PATCH] ehci locking
   
   I've been chasing problems on a KT333 based system, with
   the 8253 southbridge and EHCI 1.0 (!), and this fixes at
   least some of them:
   
      - locking updates:
         * a few routines weren't protected right
         * less irqsave thrashing for schedule lock
   
      - adds a watchdog timer that should fire when the
        STS_IAA interrupt seems to be missing.
   
      - gives ports back to companion UHCI/OHCI on rmmod
   
      - re-enables faulted QH only after all its completion
        callbacks have done their work
   
      - removes an oops I've seen when usb-storage unlinks
        stuff.  (it seemed confused about error handling, but
        that's not a reason to oops.)
   
      - minor cleanup:  deadcode rm, etc
   
   Right now the watchdog just barks, and that mechanism might
   go away (or into the shared hcd code).  Sometimes the issue
   it reports seems to clear up by itself, but sometimes not...

<david-b@pacbell.net>
   [PATCH] Re: updated ehci patch ...
   
    * keep watchdog on shorter leash, and just do
      standard irq processing when it barks.  this
      means I can use a somewhat iffy vt8235 mobo.
   
    * updates to the driverfs debug output, including
      using S_IRUGO so anyone can gawk.
   
    * some updates, mostly to use a new hcd_to_bus(),
      so this version also compiles on a (slightly
      patched) 2.4.20-pre5 kernel.  (*)

<mdharm-usb@one-eyed-alien.net>
   [PATCH] PATCH: usb-storage: fix software eject
   
   This patch fixes the recently broken software eject of media.  At least, it
   should.  I'm back to having compile problems again, but the fix should
   be pretty self-evident.

<david-b@pacbell.net>
   [PATCH] ohci-hcd endpoint scheduling, driverfs
   
   This patch cleans up some messy parts of this driver, and
   was pleasantly painless.
   
         - gets rid of ED dma hashtables
            * less memory needed
            * also less (+faster) code
            * ... rewrites all ED scheduling ops, they now use
              cpu addresses, like EHCI and UHCI do already
   
         - simplifies ED scheduling (no dma hashtables)
            * control and bulk lists are now doubly linked
            * periodic tree still singly linked; driver uses a
              new CPU view "shadow" of the hardware framelist
            * previous periodic code was cryptic, almost read-only
            * simpler tree code for EDs with {branch,period}
   
         - bugfixes periodic scheduling
            * when CONFIG_USB_BANDWIDTH, checks per-frame load
              against the limit; no more dodgey accounting
            * handles iso period != 1; interrupt and iso schedule
              EDs with the same routine (HW sees special TDs)
            * credit usbfs with bandwidth for endpoints, not URBs
   
         - adds driverfs output (when CONFIG_USB_DEBUG)
            * resembles EHCI:  'async' (control+bulk) and
              'periodic' (interrupt+iso) files show schedules
            * shows only queue heads (EDs) just now (*)
   
         - has minor text and code cleanups, etc
   
   Now that this logic has morphed into more comprehensible
   form, I know what to borrow into the EHCI code!
   
   
        (*) It shows TDs on the td_list, but this patch won't
            put them there.  A queue fault handling update will.

<petkan@users.sourceforge.net>
   [PATCH] USB: pegasus driver patch
   
     one more adapter, changed company name and forgotten flag

<greg@kroah.com>
   USB: remove __NO_VERSION__
   
   Thanks to Rusty "trivial" Russell

<rmk@arm.linux.org.uk>
   [PATCH] 2.5.32-usb
   
   This patch appears not to be in 2.5.32, but applies cleanly.
   
   The following patch fixes 3 problems in USB:
   
   1. Don't pci_map buffers when we know we're not going to pass them
      to a device.
   
      This was first noticed on ARM (no surprises here); the root hub
      code, rh_call_control(), placed data into the buffer and then
      called usb_hcd_giveback_urb().  This function called
      pci_unmap_single() on this region which promptly destroyed the
      data that rh_call_control() had placed there.  This lead to a
      corrupted device descriptor and the "too many configurations"
      message.
   
   2. If controller->hcca is NULL, don't try to dereference it.
   
   3. If we free the root hub (in ohci-hcd.c or uhci-hcd.c), don't
      leave a dangling pointer around to trip us up in usb_disconnect().
      EHCI appears to get this right.

<greg@kroah.com>
   USB: clean up the error path in create_special_files() for usbfs
   
   Thanks to David Brownell for pointing out the problem here.

<johann.deneux@it.uu.se>
   A small documentation update and a unused constant removal.

<paulus@samba.org>
   PPC32: Use vunmap rather than vfree in iounmap.

<agrover@groveronline.com>
   ACPI: Remove interpreter debugger and kdb directories. These ultimately
   didn't prove useful enough to be used on a regular basis.

<Andries.Brouwer@cwi.nl>
   [PATCH] Feiya 5-in-1 Card Reader
   
   I have a USB 5-in-1 Card Reader, that will read CF and SM and SD/MMC.
   Under Linux it appears as three SCSI devices.
   For today, the report is on the CF part.
   
   The CF part works fine under ordinary usb-storage SCSI simulation,
   with one small problem: 8 and 32 MB cards, that are detected as
   having 15872 and 63488 sectors by other readers, are detected as
   having 15873 and 63489 sectors by this Feiya reader
   (0x090c / 0x1132).
   In the good old days probably nobody would have noticed, but these
   days the partition reading code also wants to read the last sector.
   This results in the SCSI code taking the device off line:
   
   [USB storage does a READ_10, which fails since the sector is past
   the end of the disk. Then it tries a READ_6 and nothing ever happens,
   probably because the device does not support READ_6. Then the
   error handler does an abort which triggers some bugs in scsiglue.c
   and transport.c, then the error handler does a device reset, then
   a host reset, then a bus reset, and finally the device is taken offline.]
   
   The patch below does not address any bugs in the SCSI error code
   (a big improvement would be just to rip it all out - this error code
   never achieves anything useful but has crashed many a machine)
   and does not fix the USB code either.
   It just adds a flag to the unusual_devices section mentioning that
   this device (my revision is 1.00) has this bug.
   
   Without the patch the kernel crashes, or insmod usb-storage hangs.
   With the patch the CF part of the device works perfectly.
   
   (Another change is to only print "Fixing INQUIRY data" when
   really something is changed, not when the data was OK already.)
   
   Andries

<agrover@groveronline.com>
   ACPI: Do not do certain bits of APIC config if CONFIG_ACPI_HT_ONLY is set.

<davem@nuts.ninka.net>
   [TIGON3]: Merge to version 1.1
   - When not low-power, only set GPIO enables in lclctrl on
   5700 chips
   - Follow all writes to foo DMAC_MODE with a readback and
   udelay(40)
   - Be explicit about the fact that the driver disables wake-on-lan
   by default and how the user may enable it
   - A few NIC_SRAM_DATA_CFG_foo bits were wrong or missing
   - Clock control programming for some chips when going to low
   power mode was wrong.
   - Bump driver version/reldata for release
   - PCI write posting fixes
     * Sanitize every PCI write that requires a delay afterwards by
       doing a dummy read back from the register.
     * Handle the interesting case of this when doing a core-clock
       reset by using PCI config space indirect writes to GRC_MISC_CFG
       since we cannot do an MMIO read back from the chip during this
       reset event because it clears MMIO space enable in PCI_CONFIG
     * Add a new tg3_flag TG3_FLAG_MBOX_WRITE_REORDER which is set
       on chipsets that may violate PCI write ordering rules, when
       set we always read back from tx/rx ring mailbox registers after
       a write to guarentee the writes appear to the chip in order.
   - Make sure to always enable AS_MASTER bits when necessary
   - PHY reset fixes
     * Always reset PHY on init, for every chip revision
     * Program 5703 specific PHY stuff after the reset
     * Always enable Ethernet@WireSpeed after that reset
     * Always set ADVERTISE_PAUSE_CAP in initial adv reg.

<Oliver.Neukum@lrz.uni-muenchen.de>
   [PATCH] two byte offset for kaweth
   
   this is the two byte offset patch to kaweth for 2.5
   to prevent MIPS crashing and speed up other arches.

<david-b@pacbell.net>
   [PATCH] usbnet, add YOPY device IDs
   
   A now-happy Yopy user sent me these IDs.

<shaggy@kleikamp.austin.ibm.com>
   Bump up JFS_LINK_MAX from 64K to 4G.
   
   Taking advantage of the change of i_nlink from nlink_t to unsigned int.

<zaitcev@redhat.com>
   arch/sparc/config.in: Add missing parts for modern fashion configs.

<zaitcev@redhat.com>
   arch/sparc/defconfig: Supply working defconfig to show what is working, what is not.

<zaitcev@redhat.com>
   [SPARC]: Kill remaining remnants of kgdb support.

<zaitcev@redhat.com>
   [SPARC64]: Cleanup serial_console declarations.

<zaitcev@redhat.com>
   [SPARC]: Get 2.5.x building once more.

<zaitcev@redhat.com>
   drivers/serial/sunzilog.c: Fix build of sparc32 probing code.

<anton@samba.org>
   ppc64: add arg to do_fork and fix ELF_AUX entries as done in ppc32

<shaggy@kleikamp.austin.ibm.com>
   Extended attribute fixes for JFS.

<davem@nuts.ninka.net>
   [TIGON3] Initial TCP segmentation offload support.

<davem@nuts.ninka.net>
   [TIGON3] Fix typos in TSO changes.

<davem@nuts.ninka.net>
   [TIGON3]: Force use of PCI config space reg writes when loading firmare.

<davem@nuts.ninka.net>
   [TIGON3]: Disable TSO for now, tso firmware can hang tx cpu.

<davem@nuts.ninka.net>
   [TCP]: Delay tstamp state commit in input fast path until we verify csum.

<paulus@samba.org>
   PPC32: Update the PCI config-space access functions for PReP.
   These got missed in my previous commit.

<paulus@samba.org>
   PPC32: rearrange includes in arch/ppc/kernel/irq.c to fix a compile error.

<jblack@linuxguru.net>
   [PATCH] Toshiba.c IRQ Patch (Christoph Hellwig eats people?)
   
   Somewhere around 2.5.31 the method for setting and clearing interrupts
   changed:
   
   From-                     To-
   save_flags(flags);        local_irq_save(flags);
   cli();
   
   restore_flags(flags);     local_irq_restore(flags);
   
   
   Though bordering on trivial, including toshiba support with stock 2.5.34
   fails to compile, which this patch seems to fix. This patch fixes this
   issue and has worked reliably for me under 2.5.31, though it is untested on
   2.5.32 and 2.5.33 because I didn't manage to get those to work.
   
   A note to those that are a bit rough on kernel patch newbies.... submitting
   a kernel patch for the very first time is a rather intimidating experience
   so please don't chew my head off unless its absolutely necessary.
   
   See my point? I was so worried that Cristoph Hellwig is going to come to
   my house and eat me I forgot to include the patch itself. :)

<stern@rowland.harvard.edu>
   [PATCH] USB storage: abort bug fix
   
   Also, have you sent in the one-line fix I found for the abort bug?
   Andries found that it cured his BUG_ON problem.  In case you didn't save a
   copy of it, I've included it below.

<fzago@austin.rr.com>
   [PATCH] [PATCH] (repost) fix for big endian machines in scanner.c
   
   This patch fixes a problem with big endian machines and scanner drivers which
   use the SCANNER_IOCTL_CTRLMSG ioctl. The big endian to little endian swap was
   done twice, resulting in a no-op.

<david-b@pacbell.net>
   [PATCH] [PATCH 2.5.33+] ohci and iso-in
   
   I added a bug in 2.5.23 when cleaning up something that
   was broken ... it wasn't broken in quite the way I had
   thought at the time!
   
   This fixes a problem some folk have reported recently
   with ISO-IN, by masking a common non-error outcome.
   
   Please merge to Linus' tree, on top of the one patch
   you already have queued.  Thanks to Nemosoft for such
   quick turnaround on testing!

<greg@kroah.com>
   Compaq PCI Hotplug driver: fixed __FUNCTION__ usages

<pe1rxq@amsat.org>
   [PATCH] USB: se401 driver update
   

<greg@kroah.com>
   PCI: hotplug core cleanup to get pci hotplug working again
   
   - removed pci_announce_device_to_drivers() prototype as the function is long gone
   - always call /sbin/hotplug when pci devices are added to the system if
     so configured (this includes during the system bring up.)

<agrover@groveronline.com>
   ACPI: Do not compile functions not used in HT_ONLY mode

<zubarev@us.ibm.com>
   [PATCH] IBM PCI Hotplug driver update
   
   - fix polling logic
   - add ability to write [chassis/rxe]#slot# instead of just slot#

<zubarev@us.ibm.com>
   [PATCH] IBM PCI Hotplug driver update for ISA based controllers
   

<zubarev@us.ibm.com>
   [PATCH] IBM PCI Hotplug driver update for PCI based controllers
   

<greg@kroah.com>
   PCI: export pci_scan_bus() as the IBM PCI Hotplug driver needs it.

<greg@kroah.com>
   PCI Hotplug: remove pci_*_nodev() prototypes as the functions are gone.
   
   The pci_bus_* functions should be used instead.

<chris@wirex.com>
   [PATCH] 2.5.34 kernel-api DocBook fix
   
   Update kernel-api.tmpl to reflect mtrr changes so that the docs will build.

<vandrove@vc.cvut.cz>
   [PATCH] 2.5.34: recalc_sigpending missing for modules
   
   When recalc_sigpending was converted from inline to real function,
   appropriate EXPORT_SYMBOL() was not created.  Needed at least for ncpfs
   and lockd.

<quintela@mandrakesoft.com>
   [PATCH] : Grammatical fixes
   
     Documentation/porting: s/are/and/
     Documentation/directory-locking: s/that means// was repeated

<mochel@osdl.org>
   [PATCH] Re: Performance issue in 2.5.32+
   
   - The early startup code was changed so smp_prepare_cpus() is now called
     before do_basic_setup().  do_basic_setup() is where mtrr_init() is
     called, which mtrr_init_secondary_cpu() is dependent on being called.
   
   - mtrr_init_boot_cpu() was removed from the AP startup code. This was a
     SMP-only hack that made sure mtrr_init() happened when SMP was
     enabled.  That's right - two different code paths to do the same
     thing, obscured by compile-time defines.
   
   The appended patch makes sure mtrr_init() is called before
   smp_prepare_cpus(). It's ugly, and I'll work on a cleaner solution, but
   James: could you try it and see if it fixes your performance issues?

<greg@kroah.com>
   Compaq PCI Hotplug driver: changed calls to pci_*_nodev() to pci_bus_*()

<greg@kroah.com>
   IBM PCI Hotplug driver: changed calls to pci_*_nodev() to pci_bus_*()

<torvalds@home.transmeta.com>
   Get Intel model name from the CPU

<mochel@osdl.org>
   Reorganize the mtrr init sequence a bit. All mtrr init now happens
   during the initcall sequence, after all CPUs have been brought up. 
   mtrr_init() calls a static init_other_cpus(), which fires off a function 
   on all other cpus to replicate the state across all of them. 
   
   arch/i386/kernel/smpboot.c::smp_callin() had the following: 
   
   #ifdef CONFIG_MTRR
          /*
           * Must be done before calibration delay is computed
           */
          mtrr_init_secondary_cpu ();
   #endif
   
   
   I couldn't figure this one out. The P4 manual says nothing about this, nor
   find any other documentation about it. The P4 manual says only that state
   must be synchronized across all CPUs, which it is. And, it happens before
   anything else is executed on the other CPUs, and before any devices or
   drivers have been brought up.
   
   The cyrix mtrr code was also updated to handle this style of SMP initialization.
   

<agrover@groveronline.com>
   ACPI: Fix possible sleeping at interrupt context (Matthew Wilcox)

<torvalds@penguin.transmeta.com>
   Never _ever_ BUG() if you don't have to
   Cset exclude: greg@kroah.com|ChangeSet|20020905153320|19047

<fokkensr@fokkensr.vertis.nl>
   [PATCH] USER_HZ & NTP problems
   
   I've been playing with different HZ values in the 2.4 kernel for a while
   now, and apparantly Linus also has decided to introduce a USER_HZ
   constant (I used CLOCKS_PER_SEC) while raising the HZ value on x86 to
   1000.
   
   On x86 timekeeping has shown to be relative fragile when raising HZ (OK,
   I tried HZ=2048 which is quite high) because of the way the interrupt
   timer is configured to fire HZ times each second.  This is done by
   configuring a divisor in the timer chip (LATCH) which divides a certain
   clock (1193180) and makes the chip fire interrupts at the resulting
   frequency.
   
   Now comes the catch: NTP requires a clock accuracy of 500 ppm.  For some
   HZ values the clock is not accurate enough to meet this requirement,
   hence NTP won't work well.
   
   An example HZ value is 1020 which exceeds the 500 ppm requirement.  In
   this case the best approximation is 1019.8 Hz.  the xtime.tv_usec value
   is raised with a value of 980 each tick which means that after one
   second the tv_usec value has increased with 999404 (should be 1000000)
   which is an accuracy of 596 ppm.
   
   Some more examples:
        HZ Accuracy (ppm)
      ---- --------------
       100             17
      1000            151
      1024            632
      2000            687
      2008            343
      2011             18
      2048           1249
   
   What I've been doing is replace tv_usec by tv_nsec, meaning xtime is now
   a timespec instead of a timeval.  This allows the accuracy to be
   improved by a factor of 1000 for any (well ...  any?) HZ value. 
   
   Of course all kinds of calculations had te be improved as well.  The
   ACTHZ constantant is introduced to approximate the actual HZ value, it's
   used to do some approximations of other related values. 

<skip.ford@verizon.net>
   [PATCH] 2.5.34 ufs/super.c
   
   This is needed since 2.5.32 to successfully mount a UFS partition.

<sfr@canb.auug.org.au>
   [PATCH] cdrom.c is the only file to include asm/fcntl.h
   
   drivers/cdrom/cdrom.c is the only file (apart from include/linux/fcntl.h)
   that includes asm/fcntl.h.  This changes that and should have no affect.
   
   I need to do this before I consolidate the asm/fcntl.h files into
   linux/fcntl.h (coming next - again).

<anton@samba.org>
   ppc64: INIT_SIGNALS fix

<anton@samba.org>
   ppc64: add rwlock_is_locked

<zaitcev@redhat.com>
   [SPARC] sparc 2.5.x again
   - Little woops in the new PCI configuration routines
   - Removal of last CONFIG_SUN_SERIAL occurances
   - sunzilog initialized itself even if obio is not present,
   also remove pointless goto
   - sunru oopsed outright trying to use iobase

<mikpe@csd.uu.se>
   [PATCH] 2.5.34 floppy driver init/exit fixes
   
   The 2.5 floppy driver has for a long time has two init/exit bugs:
   1. It calls register_sys_device() on init, but fails to call
      unregister_sys_device() in exit. This leads to data structure
      corruption if floppy is a module and it gets unloaded.
   2. If calls register_sys_device() early on init, but fails to call
      unregister_sys_device() if init fails. Again, this leads to
      data structure corruption.
   
   The patch below fixes both these problems.

<mikpe@csd.uu.se>
   [PATCH] undo 2.5.34 ftape damage
   
   In the 2.5.33->2.5.34 step someone removed "export-objs" from
   drivers/char/ftape/lowlevel/Makefile, which makes it impossible to build
   ftape as a module since is _does_ have a number of EXPORT_SYMBOL's.
   
   This reverts that change.

<axboe@suse.de>
   [PATCH] PCI individual resource handling
   
   This merges the changes from 2.4-ac that allow drivers to enable (and
   mark as used) only a subset of PCI resources, for those drivers that
   need it (at this point apparently only the i845 IDE controller).

<axboe@burns.home.kernel.dk>
   Move around IDE files to match 2.4.20-pre5-ac4 layout. Do this
   before applying patches, for clarity and for keeping bk revision
   history.

<axboe@burns.home.kernel.dk>
   Add Makefile's for the new arm/ legacy/ pci/ pci/ directories

<axboe@suse.de>
   [PATCH] blk_fs_request()
   
   Add blk_fs_request(rq) to avoid testing rq->flags & REQ_CMD directly.

<axboe@suse.de>
   [PATCH] IDE pci ids
   
   Update IDE pci ids to match 2.4.20-pre5-ac4 levels.

<axboe@suse.de>
   [PATCH] hdreg command updates etc
   
   Update hdreg to match 2.4 levels.
   
   o Use consistent SRV_STAT instead of SERVICE_STAT
   o Add sector count status bits for tcq
   o Add various missing commands
   o hd_driveid update

<viro@math.psu.edu>
   [PATCH] Missing IDE partition 3 of 3 on 2.5.34
   
   devfs side fixed thus:

<mingo@elte.hu>
   [PATCH] Re: do_syslog/__down_trylock lockup in current BK
   
   This fixes the lockup.
   
   The bug happened because reparenting in the CLONE_THREAD case was done in
   a fundamentally non-atomic way, which was asking for various races to
   happen: eg. the target parent gets reparented to the currently exiting
   thread ...
   
   (the non-CLONE_THREAD case is safe because nothing reparents init.)
   
   the solution is to make all of reparenting atomic (including the
   forget_original_parent() bit) - this is possible with some reorganization
   done in signal.c and exit.c. This also made some of the loops simpler.

<akpm@digeo.com>
   [PATCH] writer throttling fix
   
   The patch fixes a few problems in the writer throttling code.  Mainly
   in the situation where a single large file is being written out.
   
   That file could be parked on sb->locked_inodes due to pdflush
   writeback, and the writer throttling path coming out of
   balance_dirty_pages() forgot to look for inodes on ->locked_inodes.
   
   The net effect was that the amount of dirty memory was exceeding the
   limit set in /proc/sys/vm/dirty_async_ratio, possibly to the point
   where the system gets seriously choked.
   
   The patch removes sb->locked_inodes altogether and teaches the
   throttling code to look for inodes on sb->s_io as well as sb->s_dirty.
   
   Also, just leave unwritten dirty pages on mapping->io_pages, and
   unwritten dirty inodes on sb->s_io.  Putting them back onto
   ->dirty_pages and ->dirty_inodes was fairly pointless, given that both
   lists need to be looked at.

<akpm@digeo.com>
   [PATCH] pass the correct flags to aops->releasepage()
   
   Restore the gfp_mask in the VM's call to a_ops->releasepage().  We can
   block in there again, and XFS (at least) can use that.

<akpm@digeo.com>
   [PATCH] exact dirty state accounting
   
   Some adjustments to global dirty page accounting.
   
   Previously, dirty page accounting counted all dirty pages.  Even dirty
   anonymous pages.  This has potential to upset the throttling logic in
   balance_dirty_pages().  Particularly as I suspect we should decrease
   the dirty memory writeback thresholds by a lot.
   
   So this patch changes it so that we only account for dirty pagecache
   pages which have backing store.  Not anonymous pages, not swapcache,
   not in-memory filesystem pages.
   
   To support this, the `memory_backed' boolean has been added to struct
   backing_dev_info.  When an address space's backing device is marked as
   memory-backed, the core kernel knows to not include that mapping's
   pages in the dirty memory accounting.
   
   For memory-backed mappings, dirtiness is a way of pinning the page, and
   there's nothing the kernel can to do clean the page to make it freeable.
   
   driverfs, tmpfs, and ranfs have been coverted to mark their mappings as
   memory-backed.
   
   The ramdisk driver hasn't been converted.  I have a separate patch for
   ramdisk, which fails to fix the longstanding problems in there :(
   
   With this patch, /bin/sync now sends /proc/meminfo:Dirty to zero, which
   is rather comforting.

<akpm@digeo.com>
   [PATCH] discontigmem code cleanup #1
   
   Patch from Martin Bligh.
   
   "This mainly changes the PLAT_MY_MACRO_IS_ALL_CAPS() stuff to be
    normal_macro(), and takes out some unnecessary redirection of function
    names.  No functionality changes, nothing touched outside i386
    discontigmem ...  just makes code readable.  Rumour has it that the
    PLAT_* stuff came from IRIX - I don't see that as a good reason to make
    the Linux code unreadable.  Tested on 16-way NUMA-Q."

<akpm@digeo.com>
   [PATCH] discontigmem code cleanup #2
   
   Patch from Martin Bligh
   
   "This mainly just rips out some magic extra structures in the boot time
    code to determine node sizes, and counts in pages instead of bytes.
    Oh, and I put the code that allocates pgdat into allocage_pgdat,
    instead of find_max_pfn_node, which seems like an incongruous home for
    it.
   
    No functionality changes, nothing touched outside i386 discontigmem ...
    just makes code cleaner and more readable.  Tested on 16-way NUMA-Q."

<akpm@digeo.com>
   [PATCH] reduce the default dirty memory thresholds
   
   Writeback parameter tuning.  Somewhat experimental, but heading in the
   right direction, I hope.
   
   - Allowing 40% of physical memory to be dirtied on massive ia32 boxes
     is unreasonable.  It pins too many buffer_heads and contribues to
     page reclaim latency.
   
     The patch changes the initial value of
     /proc/sys/vm/dirty_background_ratio, dirty_async_ratio and (the
     presently non-functional) dirty_sync_ratio so that they are reduced
     when the highmem:lowmem ratio exceeds 4:1.
   
     These ratios are scaled so that as the highmem:lowmem ratio goes
     beyond 4:1, the maximum amount of allowed dirty memory ceases to
     increase.  It is clamped at the amount of memory which a 4:1 machine
     is allowed to use.
   
   - Aggressive reduction in the dirty memory threshold at which
     background writeback cuts in.  2.4 uses 30% of ZONE_NORMAL.  2.5 uses
     40% of total memory.  This patch changes it to 10% of total memory
     (if total memory <= 4G.  Even less otherwise - see above).
   
   This means that:
   
   - Much more writeback is performed by pdflush.
   
   - When the application is generating dirty data at a moderate
     rate, background writeback cuts in much earlier, so memory is
     cleaned more promptly.
   
   - Reduces the risk of user applications getting stalled by writeback.
   
   - Will damage dbench numbers.  It turns out that the damage is
     fairly small, and dbench isn't a worthwhile workload for
     optimisation.
   
   - Moderate reduction in the dirty level at which the write(2) caller
     is forced to perform writeback (throttling).  Was 40% of total
     memory.  Is now 30% of total memory (if total memory <= 4G, less
     otherwise).
   
   This is to reduce page reclaim latency, and generally because
   allowing processes to flood the machine with dirty data is a bad
   thing in mixed workloads.

<akpm@digeo.com>
   [PATCH] buffer_head takedown for bighighmem machines
   
   This patch addresses the excessive consumption of ZONE_NORMAL by
   buffer_heads on highmem machines.  The algorithms which decide which
   buffers to shoot down are fairly dumb, but they only cut in on machines
   with large highmem:lowmem ratios and the code footprint is tiny.
   
   The buffer.c change implements the buffer_head accounting - it sets the
   upper limit on buffer_head memory occupancy to 10% of ZONE_NORMAL.
   
   A possible side-effect of this change is that the kernel will perform
   more calls to get_block() to map pages to disk.  This will only be
   observed when a file is being repeatadly overwritten - this is the only
   case in which the "cached get_block result" in the buffers is useful.
   
   I did quite some testing of this back in the delalloc ext2 days, and
   was not able to come up with a test in which the cached get_block
   result was measurably useful.  That's for ext2, which has a fast
   get_block().
   
   A desirable side effect of this patch is that the kernel will be able
   to cache much more blockdev pagecache in ZONE_NORMAL, so there are more
   ext2/3 indirect blocks in cache, so with some workloads, less I/O will
   be performed.
   
   In mpage_writepage(): if the number of buffer_heads is excessive then
   buffers are stripped from pages as they are submitted for writeback.
   This change is only useful for filesystems which are using the mpage
   code.  That's ext2 and ext3-writeback and JFS.  An mpage patch for
   reiserfs was floating about but seems to have got lost.
   
   There is no need to strip buffers for reads because the mpage code does
   not attach buffers for reads.
   
   These are perhaps not the most appropriate buffer_heads to toss away.
   Perhaps something smarter should be done to detect file overwriting, or
   to toss the 'oldest' buffer_heads first.
   
   In refill_inactive(): if the number of buffer_heads is excessive then
   strip buffers from pages as they move onto the inactive list.  This
   change is useful for all filesystems.  This approach is good because
   pages which are being repeatedly overwritten will remain on the active
   list and will retain their buffers, whereas pages which are not being
   overwritten will be stripped.

<akpm@digeo.com>
   [PATCH] rmap pte_chain speedup and space saving
   
   The pte_chains presently consist of a pte pointer and a `next' link.
   So there's a 50% memory wastage here as well as potential for a lot of
   misses during walks of the singly-linked per-page list.
   
   This patch increases the pte_chain structure to occupy a full
   cacheline.  There are 7, 15 or 31 pte pointers per structure rather
   than just one.  So the wastage falls to a few percent and the number of
   misses during the walk is reduced.
   
   The patch doesn't make much difference in simple testing, because in
   those tests the pte_chain list from the previous page has good cache
   locality with the next page's list.
   
   The patch sped up Anton's "10,000 concurrently exitting shells" test by
   3x or 4x.  It gives a 10% reduction in system time for a kernel build
   on 16p NUMAQ.
   
   It saves memory and reduces the amount of work performed in the slab
   allocator.
   
   Pages which are mapped by only a single process continue to not have a
   pte_chain.  The pointer in struct page points directly at the mapping
   pte (a "PageDirect" pte pointer).  Once the page is shared a pte_chain
   is allocated and both the new and old pte pointers are moved into it.
   
   We used to collapse the pte_chain back to a PageDirect representation
   in page_remove_rmap().  That has been changed.  That collapse is now
   performed inside page reclaim, via page_referenced().  The thinking
   here is that if a page was previously shared then it may become shared
   again, so leave the pte_chain structure in place.  But if the system is
   under memory pressure then start reaping them anyway.

<akpm@digeo.com>
   [PATCH] resurrect CONFIG_HIGHPTE
   
   Bill Irwin's patch to fix up pte's in highmem.
   
   With CONFIG_HIGHPTE, the direct pte pointer in struct page becomes the
   64-bit physical address of the single pte which is mapping this page.
   
   If the page is not PageDirect then page->pte.chain points at a list of
   pte_chains, which each now contain an array of 64-bit physical
   addresses of the pte's which are mapping the page.
   
   The functions rmap_ptep_map() and rmap_ptep_unmap() are used for
   mapping and unmapping the page which backs the target pte.
   
   The patch touches all architectures (adding do-nothing compatibility
   macros and inlines).  It generally mangles lots of header files and may
   break non-ia32 compiles.  I've had it in testing since 2.5.31.

<torvalds@home.transmeta.com>
   atari_rootsec.h moved to fs/partitions/atari.h, but somehow the
   version in include/linux didn't get deleted.

<torvalds@home.transmeta.com>
   The scheduler should complain not just about interrupts,
   but also about being called whenever we're holding any
   other preemption locks.

<celso@bulma.net>
   [PATCH] drivers_net_pcmcia_fmvj18x_cs.c save_flags unsigned check
   
     The function save_flags must use an unsigned long parameter instead a
     long (signed) one
   
     This trivial patch solves the problem

<james@cobaltmountain.com>
   [PATCH] Typos in drivers_s390_net_iucv.h
   

<celso@bulma.net>
   [PATCH] drivers_net_arcnet_arcnet.c save_flags unsigned check
   
     The function save_flags must use unsigned long instead long (signed)
     This trivial patch solves the problem

<celso@bulma.net>
   [PATCH] drivers_net_hamradio_scc.c save_flags unsigned check
   
     The function save_flags must use unsigned long instead long (signed)
     This trivial patch solves the problem

<skip.ford@verizon.net>
   [PATCH] Comment fix asm-i386_hardirq.h
   

<celso@bulma.net>
   [PATCH] drivers_net_3c505.c save_flags unsigned check
   
     The function save_flags must use unsigned long instead long (signed)
     This trivial patch solves the problem

<Matt_Domsch@dell.com>
   [PATCH] Domsch zip code change
   
     Trivial patch changes my zip code.  Applies to 2.4.x and 2.5.x trees.

<maalanen@ra.abo.fi>
   [PATCH] [patch, 2.5] fix errorpath in apne.c
   

<bhards@bigpond.net.au>
   [PATCH] header cleanup - drivers_char_dz.c
   
     <linux/serial.h> has the normal idempotent construction.
   
     The attached file removes the second #include.

<celso@bulma.net>
   [PATCH] drivers_net_pcmcia_3c574_cs.c save_flags unsigned check
   
     The function save_flags must use an unsigned long parameter instead a
     long (signed) one
   
     This trivial patch solves the problem

<celso@bulma.net>
   [PATCH] drivers_net_ni65.c save_flags unsigned check
   
     The function save_flags must use unsigned long instead long (signed)
     This trivial patch solves the problem

<rusty@rustcorp.com.au>
   [PATCH] Designated initializers for shm
   
   The old form of designated initializers are obsolete: we need to
   replace them with the ISO C forms before 2.6.  Gcc has always supported
   both forms anyway.

<berny.f@aon.at>
   [PATCH] typo: include_linux_pci_ids.h s_DEVIDE_DEVICE
   

<rusty@rustcorp.com.au>
   [PATCH] Designated initializers for cs46xx drivers
   
   The old form of designated initializers are obsolete: we need to
   replace them with the ISO C forms before 2.6.  Gcc has always supported
   both forms anyway.

<maalanen@ra.abo.fi>
   [PATCH] [patch 2.5] at1700 trivial
   
     Bad error path..
   
     ret is already set to -ENODEV, no need to set them again before
     jumping out.

<peter@cadcamlab.org>
   [PATCH] remove duplicated AGP Config.in
   
     drivers/char/Config.in still has a complete copy of agp/Config.in.
     It's an exact cut-n-paste - the md5sums even match. (:

<rddunlap@osdl.org>
   [PATCH] 2.5.31 spell_typo fix
   

<james@cobaltmountain.com>
   [PATCH] drivers_scsi_aic7xxx_aic7xxx_core.c, typo: the the
   

<lucasvr@terra.com.br>
   [PATCH] 2.5.31_drivers_char_lp.c
   
     This is a trivial patch already applied in the -ac tree for the 2.4.19 kernel.
     Patch for lp.c avoid +/- operations with 0 and explicit some debug information
     as KERN_INFO or KERN_ERR.

<celso@bulma.net>
   [PATCH] drivers_net_de600.c save_flags unsigned check
   
     The function save_flags must use unsigned long instead long (signed)
     This trivial patch solves the problem

<bhards@bigpond.net.au>
   [PATCH] header cleanup - drivers_char_serial_tx3912.c
   
     <linux/init.h> has the normal idempotent construction.
   
     The attached file removes the second #include.

<bhards@bigpond.net.au>
   [PATCH] Re: header cleanup - drivers_ieee1394_sbp2.c
   
     <asm/io.h> has the normal idempotent construction on every architecture.
   
     The attached file removes the second #include.

<celso@bulma.net>
   [PATCH] drivers_net_pcmcia_aironet4500_cs.c save_flags unsigned check
   
     The function save_flags must use an unsigned long parameter instead a
     long (signed) one
     This trivial patch solves the problem

<celso@bulma.net>
   [PATCH] drivers_net_pcmcia_smc91c92_cs.c
   
     The function save_flags must use an unsigned long parameter instead a
     long (signed) one
     This trivial patch solves the problem

<celso@bulma.net>
   [PATCH] drivers_net_at1700.c save_flags unsigned check
   
     The function save_flags must use unsigned long instead long (signed)
     This trivial patch solves the problem

<ahaas@neosoft.com>
   [PATCH] designated initializer patches for fs_nfs
   
     Here are some patches for C99 initializers in fs/nfs. Patches
     are against 2.5.32.

<willy@debian.org>
   [PATCH] sleeping file locks
   
    - Add FL_SLEEP flag to indicate we intend to sleep and therefore desire
      to be placed on the block list.  Use it for POSIX & flock locks.
    - Remove locks_block_on.
    - Change posix_unblock_lock to eliminate a race that will appear once we
      don't use the BKL any more.
    - Update the comment for locks_same_owner() and rename it to
      posix_same_owner().
    - Change locks_mandatory_area() to allocate its lock on the stack and
      call posix_lock_file() instead of repeating that logic.
    - Rename the "caller" parameter to posix_lock_file() to "request"
      to better show that this is not to be inserted directly.
    - Redo some of the proc code a little.  Stop exposing kernel addresses
      to userspace (whoever thought _that_ was a good idea?!) and show how
      we should be printing the device name.  The last part is ifdeffed
      out to avoid breaking lslk.
    - Remove FL_BROKEN.  And there was much rejoicing.

<sam@ravnborg.org>
   [PATCH] ftape EXPORT_SYMBOL damage clean-up
   
   The reason for the ftape messup of export-objs is the usage of the
   strange FT_KSYM macro in ftape_syms.c.
   
   That exist solely for backwards compatibility for kernel 2.1.18 and older.
   
   Better clean it up.

<willy@debian.org>
   [PATCH] Remove unused Config.help
   
   When drivers/serial was split off, the following helptexts should have
   been deleted, but weren't.

<willy@debian.org>
   [PATCH] remove SERIAL_IO_GSC
   
   SERIAL_IO_GSC was a mistake and should never have been added.

<torvalds@home.transmeta.com>
   Oops, lost ID in 2.4.x merge

<torvalds@home.transmeta.com>
   Missing <linux/version.h>, yet testing the kernel version

<axboe@burns.home.kernel.dk>
   arm icside update

<axboe@burns.home.kernel.dk>
   Update of the legcay ide controller drivers. mainly the IN_BYTE -> inb()
   and preparation for truly modular low level drivers.

<axboe@burns.home.kernel.dk>
   aec62xx update

<axboe@burns.home.kernel.dk>
   alim15x3 update

<axboe@burns.home.kernel.dk>
   amd74xx update

<axboe@burns.home.kernel.dk>
   cmd640 update

<axboe@burns.home.kernel.dk>
   cmd64x update

<axboe@burns.home.kernel.dk>
   cs5530 update

<axboe@burns.home.kernel.dk>
   cy82c693 update

<axboe@burns.home.kernel.dk>
   hpt34x update

<axboe@burns.home.kernel.dk>
   hpt366 update

<axboe@burns.home.kernel.dk>
   it8172 update

<axboe@burns.home.kernel.dk>
   ns87145 update

<axboe@burns.home.kernel.dk>
   opti621 update

<axboe@burns.home.kernel.dk>
   promise update

<axboe@burns.home.kernel.dk>
   pdcadma update

<axboe@burns.home.kernel.dk>
   piix update

<axboe@burns.home.kernel.dk>
   rz1000 update

<axboe@burns.home.kernel.dk>
   serverworks update

<axboe@burns.home.kernel.dk>
   sis5513 update

<axboe@burns.home.kernel.dk>
   sl82c105 update

<axboe@burns.home.kernel.dk>
   slc90e66 update

<axboe@burns.home.kernel.dk>
   trm290 update

<axboe@burns.home.kernel.dk>
   via update

<axboe@burns.home.kernel.dk>
   adma100 update

<axboe@burns.home.kernel.dk>
   generic ide pci init code

<axboe@burns.home.kernel.dk>
   add driver for pci ide nvidia chipset

<axboe@burns.home.kernel.dk>
   add low level driver for sis sata controller

<axboe@burns.home.kernel.dk>
   ppc low level ide driver updates

<axboe@burns.home.kernel.dk>
   ide-cd updates:
   
   o kill silly ide_cdrom_end_reuquest() function, it only duplicates
     ide core code.
   o use the atapi error, status, ireason, etc types
   o use ide-iops functions, not IN_BYTE etc
   o use blk_fs_request() where appropriate
   o limit retries on MEDIUM_ERROR sense key
   o use new ide_end_request() that handles nr_sectors
   o rename ->reinit to ->attach

<axboe@burns.home.kernel.dk>
   ide-disk updates:
   
   o ide-iops changes
   o ide_end_request() now takes a nr_sectors argument, driver->end_request
     as well
   o remove idedisk_end_request(), it's a duplicate of ide core helper
   o byte -> u8
   o ->reinit is now ->attach (to match 2.4.20-pre5-ac)

<axboe@burns.home.kernel.dk>
   ide-dma updates:
   
   o ide-iops changes
   o driver->end_request and ide_end_request changes
   o ->dmaproc() is now split into separate functions
   o work on new mmio adapters
   o init cleanup

<axboe@burns.home.kernel.dk>
   ide-floppy updates:
   
   o byte -> u8
   o remove various status register definitions, these are now ata (atapi)
     generic
   o ide-iops changes
   o remove idefloppy_end_request(), dupe of ide core helper
   o driver->end_request changes
   o lots of style cleanups
   o update to new dma interface
   o ->reinit to ->attach updates

<axboe@burns.home.kernel.dk>
   ide-geometry updates:
   
   o byte -> u8
   o small style cleanups

<axboe@burns.home.kernel.dk>
   new pci init code

<axboe@burns.home.kernel.dk>
   ide-pnp updates:
   
   o remove *_FUNC abstraction
   o remove MODULE ifdefs
   o small style changes

<axboe@burns.home.kernel.dk>
   ide-probe updates:
   
   o byte -> u8
   o drive_is_flashcard() moved to probe code
   o ide-iops changes
   o various cleanups
   o remove useless ide_lock debug stuff

<axboe@burns.home.kernel.dk>
   ide-proc updates:
   
   o remove low level driver ifdef mess
   o allow "host" to register into proc list instead

<axboe@burns.home.kernel.dk>
   ide-tape update:
   
   o byte -> u8
   o remove various register structs, it's ide general now
   o ide-iops changes
   o various style cleanups
   o update to new ide-dma api
   o remove idetape_do_end_request(), dupe of ide core helper
   o ->reinit to ->attach changes

<axboe@burns.home.kernel.dk>
   ide-taskfile updates:
   
   o ide-iops changes (mainly moving stuff to ide-iops.c)
   o byte -> u8
   o update to new ide-dma api
   o driver->end_request changes
   o various style cleanups
   o remove ALTSTAT_SCREW_UP stuff
   o WAIT_CMD -> WAIT_WORSTCASE interrupt timeout
   o add (commented out) various ata commands to match 2.4.20-pre5-ac
   o move the flagged_* interrupt handlers

<axboe@burns.home.kernel.dk>
   ide_modes.h updates:
   
   o byte -> u8

<axboe@burns.home.kernel.dk>
   ide core updates, and addition of ide-iops.c

<axboe@burns.home.kernel.dk>
   update ide/ Makefile to match new file/dir layout

<axboe@burns.home.kernel.dk>
   ide configure updates

<axboe@burns.home.kernel.dk>
   add ide-lib helpers

<axboe@burns.home.kernel.dk>
   ide-scsi updates:
   
   o byte -> u8
   o use atapi register definitions
   o update to ide-iops changes
   o driver->end_request() changes
   o update to new ide-dma api
   o ->reinit to ->attach

<axboe@burns.home.kernel.dk>
   arch ide updates. mainly ide_ioreg_t type changes, and removal of
   silly old irq and region registration etc.

<axboe@burns.home.kernel.dk>
   missed pdc4030.h update:
   
   o silly IS_PDC4030_DRIVE definition

<axboe@burns.home.kernel.dk>
   ide_map_buffer() and ide_unmap_buffer() could cause imbalanced calls
   to bio_kmap/kunmap_irq(), which would screw the preemption count. pass
   in rq to ide_unmap_buffer() as well to make the right decision.

<axboe@hera.kernel.org>
   bio.h:
     clean up with bio_kmap_irq() thing properly. remove the micro optimization of _not_ calling kmap_atomic() if this isn't a highm+
em page. we could keep that and do the inc_preempt_count() ourselves, but I'm not sure it's worth it and this is cleaner.

<shaggy@kleikamp.austin.ibm.com>
   JFS: add permission checks before getting or setting xattrs

<davem@nuts.ninka.net>
   [TIGON3]: Do not reference vlgrp unless TG3_VLAN_TAG_USED is set.

<ink@jurassic.park.msu.ru>
   [PATCH] alpha update
   
   - signal update; make do_signal use generic get_signal_to_deliver()
   - irqs_disabled macro
   - remove vmlinux.lds.s target from arch/alpha/Makefile since it works
     correctly in the top level Makefile
   - extra argument for pcibios_enable_device (most likely we'll never
     use it though...)

<sam@ravnborg.org>
   [PATCH] zftape: Cleanup zftape_syms.c
   
   Removed compatibility cruft from zftape_syms.c.
   There is no need to be compatible with kernel 2.1.18 and older.
   Replaced FT_KSYM with direct call to EXPORT_SYMBOL.

<sam@ravnborg.org>
   [PATCH] drivers/char/Makefile: Remove pty.o from export-objs
   
   Remove pty.o from the export-objs list, since pty.c does not export
   any symbols.
   
   A /* EXPORT_SYMBOL */ comment may have fooled the original author.

<mingo@elte.hu>
   [PATCH] exit.c compilation warning fix
   
   I forgot to remove an unused label in the deadlock fix patch.

<mingo@elte.hu>
   [PATCH] sys_exit_group(), threading, 2.5.34
   
   This is another step to have better threading support under Linux, it
   implements the sys_exit_group() system call.
   
   It's a straightforward extension of the generic 'thread group' concept,
   which extension also comes handy to solve a number of problems when
   implementing POSIX threads.
   
   POSIX exit() [the C library function] has the following semantics: all
   thread have to exit and the waiting parent has to get the exit code that
   was specified for the exit() function.  It also has to be ensured that
   every thread has truly finished its work by the time the parent gets the
   notification.  The exit code has to be propagated properly to the parent
   thread even if not the thread group leader calls the exit() function.
   
   Normal single-thread exit is done via the pthread_exit() function, which
   calls sys_exit().
   
   Previous incarnations of Linux POSIX threads implementations chose the
   following solution: send a 'thread management' signal to the thread
   group leader via tkill(), which thread goes around and kills every
   thread in the group (except itself), then calls sys_exit() with the
   proper exit code.  Both old libpthreads and NGPT use this solution.
   
   This works to a certain degree, unless a userspace threading library
   uses the initial thread for normal thread work [like the new
   libpthreads], which 'work' can cause the initial thread to exit
   prematurely.
   
   At this point the threading library has to catch the group leader in
   pthread_exit() and has to keep the management thread 'hanging around'
   artificially, waiting for the management signal. Besides being slightly
   confusing to users ('why is this thread still around?') even this variant
   is unrobust: if the initial thread is killed by the kernel (SIGSEGV or any
   other thread-specific event that triggers do_exit()) then the thread goes
   away without the thread library having a chance to intervene.
   
   the sys_exit_group() syscall implements the mechanism within the kernel,
   which, besides robustness, is also *much* faster. Instead of the threading
   library having to tkill() every thread available, the kernel can use the
   already existing 'broadcast signal' capability. (the threading library
   cannot use broadcast signals because that would kill the initial thread as
   well.)
   
   as a side-effect of the completion mechanism used by sys_exit_group() it
   was also possible to make the initial thread hang around as a zombie until
   every other thread in the group has exited. A 'Z' state thread is much
   easier to understand by users - it's around because it has to wait for all
   other threads to exit first.
   
   and as a side-effect of the initial thread hanging around in a guaranteed
   way, there are three advantages:
   
    - signals sent to the thread group via sys_kill() work again. Previously
      if the initial thread exited then all subsequent sys_kill() calls to
      the group PID failed with a -ESRCH.
   
    - the get_pid() function got faster: it does not have to check for tgid
      collision anymore.
   
    - procps has an easier job displaying threaded applications - since the
      thread group leader is always around, no thread group can 'hide' from
      procps just because the thread group leader has exited.
   
    [ - NOTE: the same mechanism can/will also be used by the upcoming
        threaded-coredumps patch. ]
   
   there's also another (small) advantage for threading libraries: eg. the
   new libpthreads does not even have any notion of 'group of threads'
   anymore - it does not maintain any global list of threads. Via this
   syscall it can purely rely on the kernel to manage thread groups.
   
   the patch itself does some internal changes to the way a thread exits: now
   the unhashing of the PID and the signal-freeing is done atomically. This
   is needed to make sure the thread group leader unhashes itself precisely
   when the last thread group member has exited.
   
   (the sys_exit_group() syscall has been used by glibc's new libpthreads
   code for the past couple of weeks and the concept is working just fine.)

<acme@conectiva.com.br>
   LLC: small cleanups, leave debug on for a while
   
   . dprintk already puts the log level
   . fix some comments to match new behaviour

<acme@conectiva.com.br>
   LLC: tcpfying the beast
   
   . s/mac_indicate/llc_rcv/g
   . s/llc_sap_send_ev/llc_sap_state_process/g
   . s/llc_station_send_ev/llc_station_state_process/g
   . s/llc_conn_send_ev/llc_conn_state_process/g
   . fix some comments wrt current behaviour
   . s/llc_find_sock/llc_lookup_established/g
   . llc_sock_alloc now receives the protocol family as a
     parameter, will be used by llc_lookup_listener to
     properly handle multiple upper layer protocols
   . s/inline/__inline__/g

<acme@conectiva.com.br>
   LLC: sys_listen already checks for backlog > SOMAXCONN
   
   also remove tests against SOCK_SEQPACKET, it is not supported
   in llc_ui_create.

<acme@conectiva.com.br>
   LLC: llc_build_and_send_pkt
   
   Rename llc_data_req_handler with llc_build_and_send_pkt, following my
   plan to have LLC look more like TCP/IP and to slowly remove all the ugly
   prim types and sap->{req,ind,conf}.
   
   No problems with Appletalk up to now as it only uses UI and I'm up to
   now only concentrating on connection mode, so that we can remove all
   the duplicated work in core and PF_LLC.

<acme@conectiva.com.br>
   LLC: kill llc_prim_data and LLC_PRIM_DATA for sap->ind() and sap->conf()
   
   On the road to kill all prims, llc_prim_data bits the dust, now
   the core queues the data directly and takes care of the conf semantics,
   i.e. waking up the upper layer when the confirmation arrives. Maybe I'll
   have to put more info on skb->cb for conf and ind, but for PF_LLC this is
   enough for now. Have to check NetBEUI tho. But we can always add back
   removed features, better than having features that nobody uses :-)

<acme@conectiva.com.br>
   [LLC] split llc_pdu_router into llc_{station,sap,conn}_rcv

<acme@conectiva.com.br>
   [LLC] llc_ui_wait_for_data and socket locking fixes
   
   . now llc_ui_accept uses llc_ui_wait_for_data (llc_ui_recvmsg probably
     will use it too, we'll see)
   . all the llc_ui_wait_for_ now receive the timeout in jiffies, not
     in seconds
   . use sk_rcvtimeo()
   . release_sock before going to sleep in the llc_ui_wait_for functions
   . llc_ui_release has to get the socket lock

<acme@conectiva.com.br>
   [LLC] use llc_mac_{match,null} in more places

<acme@conectiva.com.br>
   [LLC] turn tons of simple pdu functions into returning void
   
   All of those functions cannot possibly fail, so there is no
   point in always returning 0. I'll probably turn all of them
   into inlines in the future too.

<acme@conectiva.com.br>
   [LLC] use just one struct sock per connection
   
   With this PF_LLC is tightly integrated with the core and that is a
   good thing 8)
   
   . kill llc_ui_opt, the only non-duplicated bit is struct sockaddr_llc
     and this now lives in llc_opt
   . remove debug code from llc_sk_alloc/free (previously llc_sock_alloc/free)
   . the skbs allocated for event processing don't need to have any payload
     at all, just the skb->cb is enough, so remove the bogus 1 from alloc_skb
     calls
   . llc_conn_disc put on death row
   . llc_process_tmr_ev callers have to hold the socket lock
   . the request functions in llc_if.c doesn't hold the socket lock anymore
     its up to its callers on the socket layer (llc_sock.c)
   . llc_sk_alloc now receives a priority for sk_alloc call and is the
     only way to alloc a new sock (from llc_mac and llc_sock, bottom and top)
   . added the traditional struct sock REFCNT_DEBUG support for llc
   . llc_sock was simplified and is on the zen route to cleanliness, wait for
     the next patches, it'll shrink a lot when I zap all the crap (as in
     not needed) list handling, using the existing list maintained in
     struct llc_sap for that, probably splitting it in two, one for listening
     sockets and other for (being) established ones.  Ah, and the sap->ind
     and sap->req and friends will die.

<mingo@elte.hu>
   [PATCH] Thread deadlock fix..
   
   This fixes the old-pthreads breakage i can reproduce.
   
   the fix is to only do the thread-group exit-completion logic in case of
   thread-groups.

<davem@nuts.ninka.net>
   [TIGON3]: Fix slight perf regression from TSO changes.
   - Keep cache of previously written vlan_tag value in TX ring.
   Avoid the TX descriptor write if they match.

<davem@nuts.ninka.net>
   [VLAN] Use unregister_netdevice to prevent rtnl double-lock.
   - vlan_device_event is called by the networking with rtnl_lock
   held already, so if we use unregister_netdev we hang trying
   to get the rtnl semaphore again.

<davem@nuts.ninka.net>
   [TIGON3]: New way to flush posted writes of GRC_MISC_CFG.
   - The indirect register trick does not work so well on some
   5701 variants, so just read back PCI_COMMAND to do this.

<davem@nuts.ninka.net>
   [NAPI]: Do not check netif_running() in netif_rx_schedule_prep.

<torvalds@penguin.transmeta.com>
   Allocate system call numbers: 250 and 251 for hugetlb, with 
   252 for exit_group

<mlang@delysid.org>
   [PATCH] HandyTech HandyLink patch
   
   HandyTech's Braille displays support a USB port, those are
   implemented with a GoHubs usb serial converter.  The only difference
   is that the pID is 0x1200, not 0x1000.

<david-b@pacbell.net>
   [PATCH] usbnet, Epson client
   
     * Tells about some Epson firmware that uses this as part
       of a Linux interop solution (PDA-ish SoCs, hmm)
     * Includes some GeneSys info from emails
     * Minor cleanups

<david-b@pacbell.net>
   [PATCH] ehci misc fixes
   
   This removes some bugs:
   
    - a short read problem with control requests
    - only creates one control qh (memleak fix)
    - adds an omitted hardware handshake
    - reset timeout in octal, say what?
    - a couple BUG()s outlived their value
   
   Plus it deletes unused stub code for split ISO
   and updates some internal doc.

<oliver@neukum.name>
   [PATCH] fix for error handling in microtek
   

<oliver@neukum.name>
   [PATCH] new ids for hpusbscsi
   
   new device ids for hpusbscsi

<oliver@neukum.name>
   [PATCH] open/close fix for kaweth
   
   this handles the error case.

<greg@kroah.com>
   USB: compile time fix for previous kaweth patch.

<rct@gherkin.frus.com>
   [PATCH] 2.5.X config: USB speedtouch driver
   
    Minor nit: the subject driver depends on ATM, so a config-time check to
    see if ATM support is enabled is appropriate.

<acme@conectiva.com.br>
   LLC: llc_lookup_listener
   
   With this LLC_CONN_PRIM and friends went to the death row, next
   patch will introduce llc_establish_connection, turning on the
   electric chair switch for LLC_CONN_PRIM et al.

<acme@conectiva.com.br>
   [LLC] llc_establish_connection & LLC_CONN_PRIM bits the bucket
   
   . Bzzzt, rest in peace LLC_DATA_PRIM. We won't miss you.
   . In the process I also killed sap->resp and all of the
     functions it was calling, the Procom guys left this in
     the codebase but _nobody_ was actually using it.

<rz@linux-m68k.org>
   Few small fixes for Q40 keyboard support.

<david-b@pacbell.net>
   [PATCH] ehci, async idle timout
   
   One more patch:  this turns off async schedule processing
   if there are no control or bulk transactions for a while
   (currently HZ/3).  Consequence:  no PCI accesses unless
   there's work to do.  (And a FIXME comment is gone!)

<adam@yggdrasil.com>
   The following patch shaves a six bytes from the loaded size
   of pcspkr.o and another 90 elsewhere in the .o file.

<bhards@bigpond.net.au>
   Change "D: Drivers=" to "H: Handlers=" in /proc/bus/input/devices.

<adam@yggdrasil.com>
   [PATCH] Building list of drives in right order
   
      ata_attach in linux-2.5.34/drivers/ide/ide.c builds a list of
   IDE drives that do not yet have a device driver bound to them, in case
   ide-disk, ide-scsi, or whatever driver you want to use is not loaded
   yet.
   
      The problem was that ata_attach was adding to the head of
   the list, so the list was being built in reverse order.  So, if
   you had two IDE disks, and ide-disk was a loadable module, the
   devfs entries for the disks would be numbered in reverse (the
   first disk would be /dev/discs/disc1, and the second would be
   /dev/discs/disc0).
   
      This fixes the problem by changing the relevant list_add to
   list_add_tail.  Incidentally, the generic code in drivers/base/ already
   does it this way.

<acme@conectiva.com.br>
   [LLC] llc_send_disc & LLC_DISC_PRIM bites the dust

<oliver@neukum.name>
   [PATCH] fixes for races in kaweth probe
   
   using init_etherdev(0, 0) in probe is a race. The struct net_device must be
   allocate and filled before init_etherdev is called, or there's a race which
   creates a network interface that isn't usable.
   The patch for kaweth for 2.5 fixes it.

<acme@conectiva.com.br>
   [LLC] add missing kfree_skb in llc_conn_state_process
   
   This one fixes a skb leak in disconnection notification.

<lopezp@grupocp.es>
   [PATCH] usbmidi patch
   
   I have changed the name of a local variable "l" to be "j", because with some
   fonts should be difficult to see if [1+l+i] means [2+i] or what.

<jdike@karaya.com>
   [PATCH] UML arch (user-mode Linux)
   
   This patch implements UML for 2.5.34.

<acme@conectiva.com.br>
   [LLC] remove unsupported flowcontrol prim bits

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Fix up non-verbose mode
   
   Just some cosmetical changes to align output in non-verbose mode.

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Fix copying of shipped files
   
   When using cp to copy the shipped file to its actual name,
   permissions would be preserved, particularly the copy would be
   read-only when the original was (BitKeeper) read-only, leading
   to an error when executing the rule a second time.
   
   So now we use cat, which will generate a writable file.

<shaggy@kleikamp.austin.ibm.com>
   JFS: cleanup -- Remove excessive typedefs

<kai@tp1.ruhr-uni-bochum.de>
   kbuild: Use normal rule for preprocessing vmlinux.lds.S
   
   Use the same rule as in Rules.make for preprocessing 
   vmlinux.lds.S, that also gives automatic dependency tracking.
   This means we should also use the standard AFLAGS_... instead
   of CPPFLAGS_... to provide specific additional flags.

<drow@false.org>
   [PATCH] Typo in do_syslog/__down_trylock lockup fix
   
   Linus spotted one cut-n-pasto ('tracing' argument) but didn't see the
   other: we were walking the ptrace_children list by the sibling field.
   
   So we got garbage for your task_structs when this happened.  If the list
   wasn't empty, it would crash.  Strace detaches from all tasks when it
   receives a Control-C so only with enough threads and SMP would this be
   easily seen.

<Franz.Sirl-kernel@lauterbach.com>
   I needed this small patch if i8042.c is built as a module. Franz.
   Exporting kbd_pt_regs in keyboard.c.

<neilb@cse.unsw.edu.au>
   [PATCH] md - 1 of 3 - Remove BUG in md.c that change in 2.5.33 triggers.
   
   Since 2.5.33, the blk_dev[].queue is called without
   the device open, so md_queue_proc can no-longer assume
   that the device is open.

<neilb@cse.unsw.edu.au>
   [PATCH] md - 2 of 3 - Fix bug in raid5 AGAIN
   
   That recent bug fix in raid5 just changed the bug, it didn't fix it.
   I think that the original code was actually wrong, which didn't
   help.
   
   This time, the code actually matches the nearby comment, that has been expanded
   a bit, so I feel somewhat more confident that it is actually right.

<neilb@cse.unsw.edu.au>
   [PATCH] md - 3 of 3 - Fix compile errors when tracing enabled in MD
   
   both md.c and raid5.c can be compiled with debugging and compile
   errors in this code aren't normally noticed as they aren't even
   compiled.
   
   Now the debugging messages are compiled but optimised out so we will
   always see the errors.
   
   Current errors are fixed.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 1: New structure initialisers for lockd.
   
   Just the new structure initialisers.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 2: Lockd to shutdown without engaging with nfsd
   
   Currently, when lockd wants to invalidate all it's
   clients, it asks nfsd to iterate through them.  Now
   it iterates itself.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 3: Increase separation between lockd and nfsd.
   
   lockd currently asks nfsd for a 'client handle' for each
   request.
   
   This is used as a key for finding (or creating) a 'nlm_host'
   structure, so that there is only one of these per client...almost.
   There can currently be up to 4 nlm_hosts for a given client,
   depending on protocol (udp/tcp) or version (v1 or v4).
   
   But this isn't handled very well.
   
   So the question is: is there any advantage in having only on
   nlm_host per real host, or have we simply have one for each IP
   address that makes requests, whether they are separate hosts or not.
   
   The nlm_host structure is used:
    1/ to hold a lockd rpc client for talking to the
       remote lockd.  Having multiple lockd clients cannot hurt
       except possibly to waste a little space.
    2/ to identify resources to free when we receive notification
       from statd that a client has restarted.
       As statd gets a hostname and looks up all IP addresses,
       and then sends a notification for each IP for which it has
       a registration, there is no need to minimise the number
       of nlm_host structures (each of which register for monitoring).
    3/ to identify resources to free when a client sends a
       "free_all" request.  If a client uses multiple IP addresses to
       create locks, and then sends free_all from just one IP address
       we will loose here.
       However it is not clear that a client would ever want to send
       a free_all request, and the linux client doesn't seem to, so
       there is unlikely to be any loss here.
   
   This patch does not ask nfsd for a client identifier, but rather
   finds an nlm_host based on IP, version, protocol (udp/tcp) and
   whether we are acting as NFS server or client.
   
   All of this information is then placed in the cookie that is
   passed to statd and returned by statd when the client restarts.
   Previously only the IP address was passing the cookie, so possibly
   not all nlm_host structures would have been found.
   
   Because of these changes, lockd does not need to know
   anything about the nfsd export table, so the interface to
   nfsd is much more narrow.
   
   Another consequence is that when nfsd is told to delete a client,
   it cannot tell lockd to forget all the locks for that client.
   However it is not clear that lockd should ever forget any locks
   unless it is told to shutdown (or simulate a shutdown), and in
   anycase, the current nfsd admin tools never tell nfsd to delete
   a client anyway.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 4: Discard svc_uidmap structure
   
   It is un-used and never will be.  uid mapping will be done a
   different way (if at all).

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 5: Get rid of ex_parent from svc_export
   
   I was never entirely sure what it was for, but it
   is not used now, only set, so it can go.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 6: Expose anon uid and gid in /proc/fs/nfs/exports
   
   Don't print if default, which should be "-2", but is currently 65534..
   We really need a 32bit uid interface for 2.6.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 7: Discard cl_idlen
   
   It is never used

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 8: Don't store path in exports table.
   
   Instead, use d_path to find path from dentry/vfsmnt.
   This requires allocating a buffer at exp_open time,
   and releasing it when closing.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 9: Discard cl_addr
   
   We currently store the address list with each
   client and use it only to print out comments
   on /proc/fs/nfs/exports
   While these can be helpful, they are not critical and
   could be added back later after we restructure the exports
   table.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 10: Discard ex_dev and ex_ino from svc_export
   
   They can be deduced from ex_dentry

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 11: Remove problematic "security" checks when NFS exporting.
   
   The nfs server currently doesn't allow you to export both a
   directory and an ancestor of that directory on the same filesystem.
   
   This check is more of a problem than a solution and can be
   done in user-space if needed, so it is removed.
   
   The potential for a security problem is because the files
   below the lower directory could be accessed as though it were under
   either of the export points, and so the access control that is
   applied might not be what is expected (by the nieve admin).
   
   e.g.  export /a as readwrite and /a/b as readonly.  Then a/b/c
   can be accessed readwrite as it is in /a which might not be the
   intend.  Altering the user to this can be done in userspace though.
   
   The current restriction also stops exporting / as readonly and
   /tmp as read-write which some people want to do.  Providing
   /tmp is also exported subtree_check (the default) there is no
   security issue here.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 12: Change exp_parent to talk directory tree, not hash table.
   
   Currently get_parent (needed to find the exportpoint
   above a given dentry) walks the hash table of export points
   checking each with is_subdir.  Now it walks up the d_parent
   link checking each for membership in the hashtable.
   
   nfsd_lookup currently does that walk too (when crossing
   a mountpoint backwards) so the code gets unified.
   
   This approach makes more sense as we move towards a cache
   for export information that can be filled on demand.
   It also assumes less about the hash table (which will change).

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 13: Separate out the multiple keys in the export hash table.
   
   Currently each entry in the export table had two hash chains
   going through it, one for hash-by-dev/ino,  One for hash-by-fsid.
   This is contrary to the goal of a simple hash table structure.
   
   The two hash-tables per client are replace by one which stores 'exp_key's
   which contain the key (as a file handle fragment) and a pointer to the
   real export entry.
   
   The export entries are then all stored in a single hash table indexed
   by client+vfsmount+dentry;

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 14: Filehandle lookup makes use of new export table structure.
   
   Filehandle lookup currently breaks out the interesting pieces of
   a filehandle and passes them to exp_get or exp_get_fsid, which put the
   pieces back into a filehandle fragment.
   
   We define a new interface "exp_find" which does a lookup based on
   a filehandle fragment to avoid this double handling.
   
   In the process, common code in exp_get_key and exp_get_fsid_key is united
   into exp_find_key.
   
   Also, filehandle composition now uses the mk_fsid_v? inline functions.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 15: Unite per-client export key hash tables.
   
   Instead of a separate hash table per client we now
   have one hash table which includes the client in the key.

<neilb@cse.unsw.edu.au>
   [PATCH] kNFSd 16: Remove per-client list of exports.
   
   This is used:
     to iterate all exports when making /proc/fs/nfs/exports
     to find all exports of a client to unexport them.
   
   The first can just as easily be done by iterating the export_table
   hash table.
   
   The second is very rarely called and can be done by iterating the
   hash table looking for exports for the given client.

<neilb@cse.unsw.edu.au>
   [PATCH] md - Fix problems with freeing gendisk in md.c
   
   md currently tries to set_capacity() *after* freeing
   the gendisk structure.
   
   It also frees the gendisk even when switching to read-only.
   
   That patch open-codes free_mddev (which is only called once)
   and cleans all this up.

<acme@conectiva.com.br>
   [LLC] save sockaddr_llc info in connection packets
   
   Also only unassign the sock from the sap if the socket
   is not zapped, because autobind can fail, leaving it
   unassigned...
   
   Noticed with llcping/llcpingd from Jay, that I'm using
   now to test PF_LLC SOCK_DGRAM (xid, test, ui).
   
   Also add more debugging calls, disabled by default in
   mainline.

<davem@nuts.ninka.net>
   [NAPI]: Set SCHED before dev->open, clear if fails.  Restore netif_running check to netif_rx_schedule_prep.

<davem@nuts.ninka.net>
   [TIGON3]: Use spin_lock_irqsave in tg3_interrupt, fixes SMP hang.

<davem@nuts.ninka.net>
   [TIGON3]: Add 5704 support.

<anton@samba.org>
   ppc64: xtime.tv_nsec fixes

<anton@samba.org>
   ppc64: DISCONTIGMEM updates, rework to be like x86 version

<anton@samba.org>
   ppc64: add in_atomic

<anton@samba.org>
   ppc64: updates from Rochester

<anton@samba.org>
   ppc64: EEH update from Todd Inglett

<anton@samba.org>
   ppc64: Allocate RTAS above OF, from Peter Bergner

<anton@samba.org>
   ppc64: new pci config methods, from Todd Inglett

<anton@samba.org>
   ppc64: updates from Rochester

<anton@samba.org>
   ppc64: UP compile fixes

<acme@conectiva.com.br>
   [LLC] kill sap->req()
   
   Intermediate patch for the PF_LLC SOCK_DGRAM prim clean-up, now
   PF_LLC is prims in the sending side, now to hack the core to
   not use prims to send to PF_LLC.
   
   This also fixes a skb leak on llc_sap_state_process.

<mingo@elte.hu>
   [PATCH] ptrace-fix-2.5.34-A2, BK-curr
   
   I distilled the attached fix-patch from Daniel's bigger patch - it
   includes all fixes for all currently known ptrace related breakages,
   which include things like bad behavior (crash) if the tracer process
   dies unexpectedly.

<mingo@elte.hu>
   [PATCH] sys_exit() threading improvements, BK-curr
   
   This implements the 'keep the initial thread around until every thread
   in the group exits' concept in a different, less intrusive way, along
   your suggestions.  There is no exit_done completion handling anymore,
   freeing of the task is still done by wait4().  This has the following
   side-effect: detached threads/processes can only be started within a
   thread group, not in a standalone way.
   
   (This also fixes the bugs introduced by the ->exit_done code, which made
   it possible for a zombie task to be reactivated.)
   
   I've introduced the p->group_leader pointer, which can/will be used for
   other purposes in the future as well - since from now on the thread
   group leader is always existent.  Right now it's used to notify the
   parent of the thread group leader from the last non-leader thread that
   exits [if the thread group leader is a zombie already].

<davem@nuts.ninka.net>
   [TIGON3]: GRC_MISC_CFG_BOARD_ID_5704CIOBE is wrong...

<davem@nuts.ninka.net>
   kernel/signal.c: Not all systems have SIGSTKFLT.

<davem@nuts.ninka.net>
   [SPARC]: Catchup with signal infrastructure changes.

<davem@nuts.ninka.net>
   [SPARC]: pcibios_enable_device has new mask argument.

<davem@nuts.ninka.net>
   [SPARC64]: timespecs now have tv_nsec in place of tv_usec.

<davem@nuts.ninka.net>
   [SPARC64]: Delete do_gettimeofday asm.

<davem@nuts.ninka.net>
   [SPARC]: Update ide headers.  WARNING: this is known broken, fixes coming from Jens Axboe.
   - Jens needs to seperate out the IN/OUT macros to seperate what accesses
   are to the IDE_DATA register and the rest.  On big-endian platforms
   the IDE_DATA register should be accessed in big-endian for it to all
   work out correctly or at least be compatible with the behavior existing
   before the IDE platform macro interface changes in 2.5.x

<davem@nuts.ninka.net>
   [SPARC64]: Add rwlock_is_locked and in_atomic.

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

<davem@nuts.ninka.net>
   arch/sparc/kernel/check_asm.sh: Handle output from newer versions of GCC.

<davem@nuts.ninka.net>
   [SPARC]: Add rwlock_is_locked.

<davem@nuts.ninka.net>
   [SPARC]: Add is_atomic.

<davem@nuts.ninka.net>
   [SPARC]: Update for tv_nsec in xtime.

<davem@nuts.ninka.net>
   [SPARC]: Add irqs_disabled.

<davem@nuts.ninka.net>
   [SPARC]: Add kmap_atomic_to_page.

<davem@nuts.ninka.net>
   [SPARC]: Add sys_exit_group syscall entries.

<defouwj@purdue.edu>
   net/ipv4/ip_options.c: IPOPT_END padding needs to increment optptr.

<skip.ford@verizon.net>
   include/asm-sparc/hardirq.h: Fix comment.

<davem@nuts.ninka.net>
   [LLC]: Fix build bustage.

<mingo@elte.hu>
   [PATCH] NMI watchdog SMP fix
   
   This makes NMIs work - otherwise they go to CPU 0 only and any hard
   lockup on the other CPUs will not be detected by the nmi_watchdog.

<akpm@digeo.com>
   [PATCH] readv/writev speedup
   
   This is Janet Morgan's patch which converts the readv/writev code
   to submit all segments for IO before waiting on them, rather than
   submitting each segment separately.
   
   This is a critical performance fix for O_DIRECT reads and writes.
   Prior to this change, O_DIRECT vectored IO was forced to wait for
   completion against each segment of the iovec rather than submitting all
   segments and waiting on the lot.  ie: for ten segments, this code will
   be ten times faster.
   
   There will also be moderate improvements for buffered IO - smaller code
   paths, plus writev() only takes i_sem once.
   
   The patch ended up quite large unfortunately - turned out that the only
   sane way to implement this without duplicating significant amounts of
   code (the generic_file_write() bounds checking, all the O_DIRECT
   handling, etc) was to redo generic_file_read() and generic_file_write()
   to take an iovec/nr_segs pair rather than `buf, count'.
   
   New exported functions generic_file_readv() and generic_file_writev()
   have been added:
   
   ssize_t generic_file_readv(struct file *filp, const struct iovec *iov,
                             unsigned long nr_segs, loff_t *ppos);
   ssize_t generic_file_writev(struct file *file, const struct iovec *iov,
                             unsigned long nr_segs, loff_t * ppos);
   
   If a driver does not use these in their file_operations then they will
   continue to use the old readv/writev code, which sits in a loop calling
   calls fops->read() or fops->write().
   
   ext2, ext3, JFS and the blockdev driver are currently using this
   capability.
   
   Some coding cleanups were made in fs/read_write.c.  Mainly:
   
   - pass "READ" or "WRITE" around to indicate the diretion of the
     operation, rather than the (confusing, inverted)
     VERIFY_READ/VERIFY_WRITE.
   
   - Use the identifier `nr_segs' everywhere to indicate the iovec
     length rather than `count', which is often used to indicate the
     number of bytes in the syscall.  It was confusing the heck out of me.
   
   - Some cleanups to the raw driver.
   
   - Some additional generality in fs/direct_io.c: the core `struct dio'
     used to be a "populate-and-go" thing.  Janet has broken that up so
     you can initialise a struct dio once, then loop around feeding it
     more file segments, then wait on completion against everything.
   
   - In a couple of places we needed to handle the situation where we
     knew, a-priori, that the user was going to get a short read or write.
     File size limit exceeded, read past i_size, etc.  We handled that by
     shortening the iovec in-place with iov_shorten().  Which is not
     particularly pretty, but neither were the alternatives.

<akpm@digeo.com>
   [PATCH] Use a sync iocb for generic_file_read
   
   This adds support for synchronous iocbs and converts generic_file_read
   to use a sync iocb to call into generic_file_aio_read.
   
   The tests I've run with lmbench on a piii-866 showed no difference in
   file re-read speed when forced to use a completion path via aio_complete
   and an -EIOCBQUEUED return from generic_file_aio_read -- people with
   slower machines might want to test this to see if we can tune it any
   better.  Also, a bug fix to correct a missing call into the aio code
   from the fork code is present.  This patch sets things up for making
   generic_file_aio_read actually asynchronous.

<acme@conectiva.com.br>
   [LLC] remove all tmr ev structs & fix psnap and p8022 wrt ui sending
   
   . No need for the timer_running member on llc_timer,
     we only need it in one place, and timer_pending is
     equivalent. One more procom OS generalisation killed.
   . Move the skb->protocol assignment in llc_build_and_send_pkt
     routines and llc_ui_send_data to the caller, this is the common
     practice in Linux networking code (think netif_rx) and required
     to keep the request functions in psnap and p8022 simple.
   . Remove the rpt_status (report status) ev members, not
     used at all, not even in the original procom code.
   . Convert psnap and p8022 request functions to use
     llc_ui_build_and_send_ui_pkt, removing all the prim cruft.

<neilb@cse.unsw.edu.au>
   [PATCH] PATCH - cset 1.497.59.25 breaks MD autodetect
   
   The partition changes shifted a lot of indexes down one, but this one
   shouldn't have been shifted...

<mingo@elte.hu>
   [PATCH] thread exit deadlock bug
   
   This fixes the Mozilla SMP lockup in the exit path.

<mingo@elte.hu>
   [PATCH] signal failures in nightly LTP test
   
   On 13 Sep 2002, Paul Larson wrote:
   >
   > The nightly LTP test against the 2.5 kernel bk tree last night turned up
   > some test failures we don't normally see.  These failures did not show
   > up in the run from the previous night.
   
   [...]
   > I found what was breaking this, looks like it was this change from your
   > shared thread signals patch:
   > -   if (sig < 1 || sig > _NSIG ||
   > -       (act && (sig == SIGKILL || sig == SIGSTOP)))
   > +   if (sig < 1 || sig > _NSIG || (act && sig_kernel_only(sig)))
   
   This fixes this bug and a number of others in the same class - the
   signal behavior bitmasks should never be consulted before making sure
   that the signal is in the word range.

<vandrove@vc.cvut.cz>
   [PATCH] 2.5.34-bk fcntl lockup
   
   This fixes endless loop without schedule which happens as soon as smbd
   invokes fcntl64(7, F_SETLK64, ...).  fcntl_setlk64 gets cmd F_SETLK64,
   not F_SETLK tested in the loop;
   
   Maybe return value from posix_lock_file should be changed to -EINPROGRESS
   or -EJUKEBOX instead of testing passed cmd in callers, but this oneliner
   works too. If you preffer changing posix_lock_file return value to clearly
   distinugish between -EAGAIN and lock request queued, I'll do that.

<mingo@elte.hu>
   [PATCH] hide-threads-2.5.34-C1
   
   I fixed up the 'remove thread group inferiors from the tasklist' patch. I
   think i managed to find a reasonably good construct to iterate over all
   threads:
   
      do_each_thread(g, p) {
         ...
      } while_each_thread(g, p);
   
   the only caveat with this is that the construct suggests a single-loop -
   while it's two loops internally - and 'break' will not work. I added a
   comment to sched.h that warns about this, but perhaps it would help more
   to have naming that suggests two loops:
   
      for_each_process_do_each_thread(g, p) {
         ...
      } while_each_thread(g, p);
   
   but this looks a bit too long. I dont know. We might as well use it all
   unrolled and no helper macros - although with the above construct it's
   pretty straightforward to iterate over all threads in the system.

<torvalds@home.transmeta.com>
   Make sure MTRR setting is atomic on SMP, since
    - HT CPU's can share the MTRR state between cores
    - the code uses static variables that are shared

<mingo@elte.hu>
   [PATCH] wait4-fix-2.5.34-A0, BK-curr
   
   the attached patch (against BK-curr) fixes a sys_wait4() bug noticed by
   Ulrich Drepper. The kernel would not block properly if there are eligible
   children delayed due to the new delayed thread-group-leader logic. The
   solution is to introduce a new type of 'eligible child' type - and skip
   over delayed children but set the wait4 flag nevertheless.
   
   The libpthreads testcase that failed due to it now it works fine.

<mingo@elte.hu>
   [PATCH] clone-fix-2.5.34-A0, BK-curr
   
   This fixes a clone-flags bug noticed by Roland McGrath.  The current
   CLONE_DETACHED & CLONE_THREAD forcing code did things in the wrong
   order, which makes it possible to force an oops the following way:
   
           main () { syscall(120, 0x00400000); }
   
   instead of changing the order of CLONE_SIGHAND and CLONE_THREAD flag
   forcing (which would fix the bug), the proper approach is to fail with
   -EINVAL if invalid combinations of clone flags are detected.  This
   change does not affect existing applications.

<mingo@elte.hu>
   [PATCH] detached-fix-2.5.34-A0, BK-curr
   
   This fixes three resource accounting related bugs introduced by detached
   threads:
   
    - the 'child CPU usage' fields were updated in wait4 until now - this was
      slightly buggy for a number of reasons, eg. if the exit_code writout
      faults then it's possible to trigger this code multiple times.
   
    - those threads that do not go through wait4 were not properly accounted.
   
    - sched_exit() was incorrectly assuming that current == parent. In the
      detached case p->parent is the real parent.
   
   with this patch applied things like 'time' work again for new-style
   threaded apps.

<mingo@elte.hu>
   [PATCH] exit-thread-2.5.34-A0, BK-curr
   
   This optimizes sys_exit_group() to only take the siglock if it's a true
   thread group.  Boots & works fine.

<mingo@elte.hu>
   [PATCH] wait4-fix-2.5.34-B2, BK-curr
   
   This fixes a number of bugs that broke ptrace:
   
    - wait4 must not inhibit TASK_STOPPED processes even for thread group
      leaders.
   
    - do_notify_parent() should not delay the notification of parents if
      the thread in question is ptraced.
   
   strace now works as expected for CLONE_THREAD applications as well.

<mingo@elte.hu>
   [PATCH] exit-fix-2.5.34-C0, BK-curr
   
   This fixes one more exit-time resource accounting issue - and it's also
   a speedup and a thread-tree (to-be thread-aware pstree) visual
   improvement.
   
   In the current code we reparent detached threads to the init thread.
   This worked but was not very nice in ps output: threads showed up as
   being related to init.  There was also a resource-accounting issue, upon
   exit they update their parent's (ie.  init's) rusage fields -
   effectively losing these statistics.  Eg.  'time' under-reports CPU
   usage if the threaded app is Ctrl-C-ed prematurely.
   
   The solution is to reparent threads to the group leader - this is now
   very easy since we have p->group_leader cached and it's also valid all
   the time.  It's also somewhat faster for applications that use
   CLONE_THREAD but do not use the CLONE_DETACHED feature.

<mingo@elte.hu>
   [PATCH] thread-exec-2.5.34-B1, BK-curr
   
   This implements one of the last missing POSIX threading details - exec()
   semantics.  Previous kernels had code that tried to handle it, but that
   code had a number of disadvantages:
   
    - it only worked if the exec()-ing thread was the thread group leader,
      creating an assymetry. This does not work if the thread group leader
      has exited already.
   
    - it was racy: it sent a SIGKILL to every thread in the group but did not
      wait for them to actually process the SIGKILL. It did a yield() but
      that is not enough. All 'other' threads have to finish processing
      before we can continue with the exec().
   
   This adds the same logic, but extended with the following enhancements:
   
    - works from non-leader threads just as much as the thread group leader.
   
    - waits for all other threads to exit before continuing with the exec().
   
    - reuses the PID of the group.
   
   It would perhaps be a more generic approach to add a new syscall,
   sys_ungroup() - which would do largely what de_thread() does in this
   patch.
   
   But it's not really needed now - posix_spawn() is currently implemented
   via starting a non-CLONE_THREAD helper thread that does a sys_exec().
   There's no API currently that needs a direct exec() from a thread - but
   it could be created (such as pthread_exec_np()).  It would have the
   advantage of not having to go through a helper thread, but the
   difference is minimal.

<torvalds@home.transmeta.com>
   Use CLONE_KERNEL for the common kernel thread flags.

<paulus@samba.org>
   PPC32: extra argument for pcibios_enable_resources/device

<paulus@samba.org>
   PPC32: add argument to INIT_SIGNALS use in arch/ppc/kernel/process.c

<paulus@samba.org>
   PPC32: convert xtime usage from timeval to timespec

<paulus@samba.org>
   PPC32: define atomic_add_negative

<paulus@samba.org>
   PPC32: allocate syscall #s for alloc/free_hugepages and exit_group
   and add exit_group to the syscall table.

<paulus@samba.org>
   PPC32: remove the ppc32-specific ide_fix_driveid.
   There is a perfectly good one in drivers/ide/ide-iops.c now.

<paulus@samba.org>
   PPC32: define kmap_atomic_to_page

<paulus@samba.org>
   PPC32: remove unused IDE functions from include/asm-ppc/ide.h.
   
   This gets rid of ide_request/free_irq, ide_get/release_lock,
   ide_check/request/release_region etc.

<paulus@samba.org>
   PPC32: define rwlock_is_locked().

<mingo@elte.hu>
   [PATCH] thread exec fix, BK-curr
   
   The broadcast SIGKILL kept pending in the new thread as well, and killed
   it prematurely ...

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