1. 05 Nov, 2002 40 commits
    • Greg Kroah-Hartman's avatar
      Merge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5 · 039a0ac4
      Greg Kroah-Hartman authored
      into kroah.com:/home/greg/linux/BK/gregkh-2.5
      039a0ac4
    • Christopher Hoover's avatar
      [PATCH] [PATCH] 2.5.44 sa-1111 ohci hcd · 2dc4da94
      Christopher Hoover authored
      Dereferencing hcd.pdev will always oops with SA-1111.  It has to be
      treated as a cookie, not a pointer in any common OHCI HCD code.
      
      Apparently we need a clean way to go from struct device * to struct
      ohci_hcd *.  I added dev_to_ohci that does the obvious thing and added
      separate implementations for PCI and SA-1111.  Two implementations is
      ugly but I didn't think it wise (for me) to hack on the PCI/driverfs
      interface, so I just cut & paste the old code.
      
      Two patches.  The first is a diff from linux-2.5.44 and
      linux-2.5.44-rmk1.  It is from rmk and adds a struct device pointer to
      ohci_hcd.  The second depends on the first and contains my changes to
      clean up to the pdev oops problems.  (Some fuzz may occur as I have
      ohci-1024 applied.)
      
      With these changes, SA111 OHCI-HC/HCD is showing some signs of life on
      linux-2.5.44-rmk1.  usb-storage is currentl blowing chunks, but I think
      I saw some patches go by against 2.5.44 that I haven't yet tried.
      2dc4da94
    • Manfred Spraul's avatar
      [PATCH] `i_version' initialization fix · 9d1f716f
      Manfred Spraul authored
      Ahm.
      
      No. It must be i_version = 1
      
      Otherwise there is a trivial bug:
          mkdir("dir");
          <force the directory out of dcache>
          dir = open("dir");
          lseek(dir,1,SEEK_SET);
          readdir();
      
      lseek sets f_version to 0, and readdir() trusts f_pos, because i_version
      is 0, too. This applies to all filesystems.
      
      The ext2 patch already sets i_version to 1.
      9d1f716f
    • Andrew Morton's avatar
      [PATCH] initialise timers in sound/ · c93c0f1e
      Andrew Morton authored
      The result of a timer audit in sound/*
      c93c0f1e
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/davem/BK/net-2.5 · ecb0c4f5
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      ecb0c4f5
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/davem/BK/sparc-2.5 · ec1a424c
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      ec1a424c
    • David S. Miller's avatar
      d9e74368
    • David S. Miller's avatar
    • David S. Miller's avatar
      Merge nuts.ninka.net:/home/davem/src/BK/network-2.5 · 0244b384
      David S. Miller authored
      into nuts.ninka.net:/home/davem/src/BK/net-2.5
      0244b384
    • David S. Miller's avatar
    • Art Haas's avatar
      [PATCH] C99 designated initializers for fs/ext3 · 59a45951
      Art Haas authored
      This fixes the new ACL bits in fs/ext3 to use C99 designated
      initializers.
      59a45951
    • Art Haas's avatar
      [PATCH] C99 designated initializers for fs/ext2 · d8ba9c63
      Art Haas authored
      This converts the new ACL bits in fs/ext2 to use C99 designated
      initializers.
      d8ba9c63
    • Andrew Morton's avatar
      [PATCH] use timer intialiser in workqueues · 5db72991
      Andrew Morton authored
      Teach DECLARE_WORK about __TIMER_INITIALIZER.  So all statically
      initialised workqueues have valid timers.  eg:
      drivers/char/random.c:batch_work.
      5db72991
    • Randy Dunlap's avatar
      [PATCH] usb-midi requires SOUND · 90f8a197
      Randy Dunlap authored
      usb-midi requires SOUND, otherwise, when built in-kernel but soundcore
      is modular, usb-midi can't resolve some sound interfaces.
      90f8a197
    • Alan Stern's avatar
      [PATCH] USB storage: use the new transfer_buf() routine · 024d1130
      Alan Stern authored
      This patch switches from using usb_stor_bulk_msg() to
      usb_stor_bulk_transfer_buf(), which includes a great deal more logic.  This
      allows for elimination of all sorts of duplicate code (clearing STALLs,
      etc.).
      
      This also eliminates the (now) redundant functions from the ISD-200 driver.
      024d1130
    • Matthew Dharm's avatar
      [PATCH] USB storage: check for abort at higher levels · 88142a11
      Matthew Dharm authored
      This patch adds tests for an aborted command to higher-level functions.
      This allows faster exit from a couple of paths and will allow code
      consolidation in the lower-level transport functions.
      88142a11
    • Matthew Dharm's avatar
      [PATCH] USB storage: fix result code checks · b2f45fd6
      Matthew Dharm authored
      This patch fixes up some result-code tests that were missed in previous
      patches.
      b2f45fd6
    • Matthew Dharm's avatar
      [PATCH] USB storage: move init of residue to a central place · cea0dfcf
      Matthew Dharm authored
      This patch moves the initialization of the SCSI residue field to be in
      just a couple of places, instead of all over the map.  It's code
      consolidation.
      cea0dfcf
    • David Brownell's avatar
      [PATCH] ohci-hcd, remove oops and... · c73c6dea
      David Brownell authored
      Two changes, one big one not:
      
      - check before traversing a null pointer, removing oops
      
      - always do bandwidth checks, no point in allowing overcommit
      
      That oops possibility has been there for a bit over two months,
      but something changed recently which made me see it.   Maybe
      sme other folk have seen this one too (in ed_deschedule).
      c73c6dea
    • David Brownell's avatar
      [PATCH] usbtest, Kconfig and misc · 97664e0e
      David Brownell authored
      Minor patches:
      
      - resend of the Config.in patch, updated to Kconfig,
         plus makes 'usbtest' modular when usb is;
      
      - hmm, "usbfs" isn't locking here.  protect.  fix
         is basically from martin:  add/use a semaphore.
      
      - that one-liner to make sure get_configuration is
         called correctly (with funkier test firmware).
      
      - new 'realworld' module param can be used to turn
         off the real-world accomodations and be stricter
         about what device failures make ch9 tests fail.
      97664e0e
    • Anton Blanchard's avatar
      [PATCH] fix slab allocator for non zero boot cpu · d737f84b
      Anton Blanchard authored
      The slab allocator doesnt initialise ->array for all cpus. This means
      we fail to boot on a machine with boot cpu != 0. I was testing current
      2.5 BK.
      
      Luckily Rusty was at hand to explain the ins and outs of initialisers
      to me.
      d737f84b
    • Andrew Morton's avatar
      [PATCH] timers: input, networking · 047ab431
      Andrew Morton authored
      More timer micropatches.
      047ab431
    • David S. Miller's avatar
      Merge nuts.ninka.net:/home/davem/src/BK/sparcwork-2.5 · 651caa58
      David S. Miller authored
      into nuts.ninka.net:/home/davem/src/BK/sparc-2.5
      651caa58
    • Linus Torvalds's avatar
      Merge timer initialization cleanups · 6a65c34a
      Linus Torvalds authored
      6a65c34a
    • Jeff Garzik's avatar
      Merge redhat.com:/home/jgarzik/repo/linus-2.5 · d68780fb
      Jeff Garzik authored
      into redhat.com:/home/jgarzik/repo/net-drivers-2.5
      d68780fb
    • Scott Feldman's avatar
      e100 net driver: remove driver-isolated flag/lock. · c5265e0f
      Scott Feldman authored
      Other locks already cover the areas in question, and additionally
      this lock was held in areas where it should not have been, triggering
      error messages in 2.5.x.
      c5265e0f
    • Jeff Garzik's avatar
      Merge redhat.com:/home/jgarzik/repo/linus-2.5 · 62d552e1
      Jeff Garzik authored
      into redhat.com:/home/jgarzik/repo/net-drivers-2.5
      62d552e1
    • Andrew Morton's avatar
      [PATCH] timers: drivers/* · b28bf3f6
      Andrew Morton authored
      Results of a quick pass through everything under drivers/.  We're
      mostly OK in there.  I will have missed some.
      b28bf3f6
    • David S. Miller's avatar
      [SPARC64]: Define LDFLAGS_BLOB · 8939a01d
      David S. Miller authored
      8939a01d
    • Andrew Morton's avatar
      [PATCH] timers: scsi · bdc629c9
      Andrew Morton authored
      The patches which I needed to avoid the warnings with my build.
      bdc629c9
    • Andrew Morton's avatar
      [PATCH] timers: initialisers · bc3c081b
      Andrew Morton authored
      Add some infrastructure for statically initialising timers,
      use that in workqueues.
      bc3c081b
    • Andrew Morton's avatar
      [PATCH] fix mod_timer() race · 2eb724ed
      Andrew Morton authored
      If two CPUs run mod_timer against the same not-pending timer then they
      have no locking relationship.  They can both see the timer as
      not-pending and they both add the timer to their cpu-local list.  The
      CPU which gets there second corrupts the first CPU's lists.
      
      This was causing Dave Hansen's 8-way to oops after a couple of minutes
      of specweb testing.
      
      I believe that to fix this we need locking which is associated with the
      timer itself.  The easy fix is hashed spinlocking based on the timer's
      address.  The hard fix is a lock inside the timer itself.
      
      It is hard because init_timer() becomes compulsory, to initialise that
      spinlock.  An unknown number of code paths in the kernel just wipe the
      timer to all-zeroes and start using it.
      
      I chose the hard way - it is cleaner and more idiomatic.  The patch
      also adds a "magic number" to the timer so we can detect when a timer
      was not correctly initialised.  A warning and stack backtrace is
      generated and the timer is fixed up.  After 16 such warnings the
      warning mechanism shuts itself up until a reboot.
      
      It took six patches to my kernel to stop the warnings from coming out.
      The uninitialised timers are extremely easy to find and fix.  But it
      will take some time to weed them all out.  Maybe we should go for
      the hashed locking...
      
      Note that the new timer->lock means that we can clean up some awkward
      "oh we raced, let's try again" code in timer.c.  But to do that we'd
      also need to take timer->lock in the commonly-called del_timer(), so I
      left it as-is.
      
      The lock is not needed in add_timer() because concurrent
      add_timer()/add_timer() and concurrent add_timer()/mod_timer() are
      illegal.
      2eb724ed
    • Andrew Morton's avatar
      [PATCH] `event' removal: kill it · 3cf803fb
      Andrew Morton authored
      Final act, from Manfred:
      
      The attached patch removes 'event' entirely from the kernel: it's not
      used anymore.
      
      All event users [vfat dentry revalidation; ext2/3 inode generation;
      readdir() file position revalidation in several filesystems] were
      converted to local counters.
      3cf803fb
    • Andrew Morton's avatar
      [PATCH] `event' removal: other filesystems · 9448b90c
      Andrew Morton authored
      Patch from Manfred Spraul
      
      Several filesystems compare f_version and i_version to validate
      directory positions in readdir(): The directory position is revalidated
      if i_version is not equal f_version.  Operations that could invalidate
      the cached position set i_version or f_version to '++event', event is a
      global variable.  Global uniqueness is not needed, 'i_version++' and
      'f_version=0' is sufficient to guarantee that the next readdir() will
      revalidate the directory position, and that avoids the need for an ugly
      global variable.
      
      The attached patch converts all filesystems except ext2, which was
      converted with a seperate patch.
      9448b90c
    • Andrew Morton's avatar
      [PATCH] `event' removal: ext2 · 9aefc010
      Andrew Morton authored
      Patch from Manfred Spraul
      
      Use a local counter instead of the global 'event' variable for the
      readdir() optimization.
      
      Depends on patch-event-II
      
      Background:
        The only user of i_version and f_version in ext2 is
        ext2_readdir(). As an optimization, ext2 performs the
        validation of the start position for readdir() only if
              flip->f_version != inode->i_version.
        If there was no llseek and no directory change since the
        last readdir() call, then f_pos can be trusted.
        f_version is set to 0 in get_empty_flip and during llseek.
        Right now, i_version set to ++event during ext2_read_inode
        and commit_chunk, i.e. at inode creation and if a directory
        is changed.
        Initializing i_version to 1, and updating with i_version++
        achieves the same effect, without the need of a global variable.
        Global uniqueness is not required, there are no other uses
        of [if]_version in ext2.
      
      Change relative to the patch you have right now:
      i_version is initialized to 1 instead of 0. For ext2 it's doesn't
      matter [there is always a valid 'len' value at the beginning of a
      directory data block], but it's cleaner.
      9aefc010
    • Andrew Morton's avatar
      [PATCH] `event' removal: core kernel · 4ccf7a32
      Andrew Morton authored
      Patch from Manfred Spraul
      
      f_version and i_version are used by filesystems to check if it can
      reuse the f_pos position across readdir calls without validation.
      
      Right now f_version and i_version are modified by
          f_version = ++event;
          i_version = ++event;
          if (f_version != i_version) goto revalidate
      and event is a global, exported variable.
      
      But that's not needed,
          f_version  = 0;
          i_version++;
          if (f_version != i_version) goto revalidate
      works too, without the ugly 'event' variable.
      
      I got an ok from viro, and I had notified the fs maintainers, no
      complaints either
      
      - block_dev.c, block_llseek updates f_version to '++event'.
         grep showed that no device driver uses f_version, this is dead
         code copied from the default llseek implementation.
      
      - the llseek implementations and get_empty_flip set f_version
         to '++event'
         This is not dead code, but
                  filp->f_version = 0
         achieves the same effect:
         f_version is used by the readdir() implementation of several
         filesystems to skip the revalidation of f_pos at the beginning
         of a readdir call: If llseek was not called and the filesystem
         did not change since the last readdir call, then the value in
         f_pos can be trusted.
         The implementation (for example in ext2) is
           inode->i_version = ++event;
         in all operations that change a directory
         At the beginning of file_operation->readdir():
           if(inode->i_version != flip->f_version)
                      revalidate();
           filp->f_version = inode->i_version;
         There are other users of f_version, but none of them use the
         default llseek implementation (e.g. fs/pipe.c)
      4ccf7a32
    • Linus Torvalds's avatar
      Merge · eb0ad91a
      Linus Torvalds authored
      eb0ad91a
    • Yokota Hiroshi's avatar
      [PATCH] NinjaSCSI-3R driver patch updated. · a4e184ce
      Yokota Hiroshi authored
       NinjaSCSI-3R PCMCIA SCSI host adapter driver updated for the latest
      kernel tree.
      a4e184ce
    • Christoph Hellwig's avatar
      [PATCH] fix intermezzo compile failure · cb66cfd0
      Christoph Hellwig authored
      Intermezzo has some strange, broken code trying to deal with extended
      attributes and and ACLs.  Fortunately the xattr code is hidden under
      a config option that's never set, but the ACL code is enabled by
      CONFIG_POSIX_ACL that's se by ext2/ext3 and jfs now.  Change it to
      #if 0 to get intermezzo compiling again.
      cb66cfd0
    • Linus Torvalds's avatar
      Merge bk://cloos.bkbits.net/sbp2fix · ede1e83b
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      ede1e83b