1. 01 Oct, 2002 2 commits
    • James Bottomley's avatar
      [PATCH] remove mid-layer assumption that devices must be able to queue at least one command · 4fac4dee
      James Bottomley authored
      This allows the request_fn() to recover properly from either host_blocked
      or device_blocked at zero command depth.
      
      Also adds the facility for queuecommand() to tell us whether it wants
      the host or only the device blocked
      4fac4dee
    • James Bottomley's avatar
      [PATCH] first cut at fixing unable to requeue with no outstanding · e7d2d832
      James Bottomley authored
       commands
      
      The attached represents an attempt to break the scsi mid-layer of the 
      assumption that any device can queue at least one command.
      
      What essentially happens if the host rejects a command with no other 
      outstanding commands, it does a very crude countdown (basically counts the 
      number of cycles through the scsi request function) until the device gets 
      enabled again when the count reaches zero.  I think the iteration in the 
      request function is better than a fixed timer because it makes the system more 
      responsive to I/O pressure (and also, it's easier to code).
      
      I've tested this by making a SCSI driver artificially reject commands with 
      none outstanding (and run it on my root device).  A value of seven seems to 
      cause a delay of between half and five seconds before the host starts up again 
      (depending on the I/O load).
      
      If this approach looks acceptable, I plan the following enhancements
      
      1. Make device_busy count down in the same fashion
      2. give ->queuecommand() a two value return (one for blocking the entire host 
      and another for just blocking the device).
      3. Make the countdown tuneable from the host template.
      e7d2d832
  2. 30 Sep, 2002 13 commits
    • Linus Torvalds's avatar
      Linux v2.5.40 · 7570df54
      Linus Torvalds authored
      7570df54
    • Linus Torvalds's avatar
      Merge http://linux-scsi.bkbits.net/scsi-for-linus-2.5 · 2b9fa51a
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      2b9fa51a
    • James Bottomley's avatar
      Merge mulgrave.(none):/home/jejb/BK/linux-2.5 · fd0a1c61
      James Bottomley authored
      into mulgrave.(none):/home/jejb/BK/scsi-for-linus-2.5
      fd0a1c61
    • Mike Anderson's avatar
      Error handler general clean up · 9b46c836
      Mike Anderson authored
      9b46c836
    • Rolf Fokkens's avatar
      [PATCH] sg.c and USER_HZ, kernel 2.5.37 · 8885e375
      Rolf Fokkens authored
      Hi!
      
      Since the introduction of USER_HZ the SG_[GS]ET_TIMEOUT ioctls may have
      a serious BUG as userspace uses a different HZ from the HZ in kernelspace.
      
      In x86 HZ=1000 and USER_HZ=100, resulting in confusing timouts as the
      kernel measures time 10 times as fast as userspace.
      
      This patch is an attempt to fix this by transforming USER_HZ based timing to
      HZ based timing before storing it in timeout. To make sure that SG_GET_TIMEOUT
      and SG_SET_TIMEOUT behave consistently a field timeout_user is added which
      stores the exact value that's passed by SG_SET_TIMEOUT and it's returned on
      SG_GET_TIMEOUT.
      
      Rolf Fokkens
      fokkensr@fokkensr.vertis.nl
      
      P.S. this is the second post of this patch
      8885e375
    • James Bottomley's avatar
      dfa944ae
    • Andrew Morton's avatar
      scsi_initialise_merge_fn() will only set highio if ->type == TYPE_DISK. · 2b562242
      Andrew Morton authored
      But it's called from scsi_add_lun()->scsi_alloc_sdev() before the type
      is known.  The type is -1 all the time in scsi_initialise_merge_fn()
      and scsi always bounces.
      
      This patch makes it do the right thing - just enable block-highmem for
      all scsi devices.
      
      Jens had this to say:
      
      "I guess that block-highmem has been around long enough, that I can
       use the term 'historically' at least in the kernel sense :-)
      
       This extra check was added for IDE because each device type driver
       (ide-disk, ide-cd, etc) needed to be updated to not assume virtual
       mappings of request data was valid.  I only did that for ide-disk,
       since this is the only one where bounce buffering really hurt
       performance wise.  So while ide-cd and ide-tape etc could have been
       updated, I deemed it uninteresting and not worthwhile.
      
       Now, this was just carried straight into the scsi counter parts,
       conveniently, because of laziness.  A quick glance at sr shows that it
       too can aviod bouncing easily (no changes needed).  st may need some
       changes, though.  So again, for scsi it was a matter of not impacting
       existing code in 2.4 too much.
      
       So TYPE_DISK check can be killed in 2.5 if someone does the work of
       checking that it is safe.  I'm not so sure it will make eg your SCSI
       CD-ROM that much faster :-)"
      
      2b562242
    • David Gibson's avatar
      [PATCH] Squash warning in fs/devfs/base.c · 5dd17103
      David Gibson authored
      This removes an unused label in fs/devfs/base.c
      5dd17103
    • Greg Kroah-Hartman's avatar
      Merge kroah.com:/home/greg/linux/BK/bleeding_edge-2.5 · 1a008d0e
      Greg Kroah-Hartman authored
      into kroah.com:/home/greg/linux/BK/gregkh-2.5
      1a008d0e
    • Randy Dunlap's avatar
      [PATCH] hc_sl811 build and memory leak · 5c1c6931
      Randy Dunlap authored
      It needs s/malloc.h/slab.h/ .
      It also forgets to free some memory on an error exit patch.
      Patch for 2.5.39 follows.
      5c1c6931
    • David Brownell's avatar
      [PATCH] usb_sg_{init,wait,cancel}() · 1e4fece8
      David Brownell authored
      Here are the scatterlist primitives there's been mail about before.
      Now the code has passed basic sanity testing, and is ready to merge
      into Linus' tree to start getting wider use.  Greg, please merge!
      
      To recap, the routines are a utility layer packaging several usb
      core facilities to improve system performance.  It's synchronous.
      The code uses functionality that drivers could use already, but
      generally haven't:
      
          - Request queueing.  This is a big performance win.  It lets
            device drivers help the hcds avoid wasted i/o bandwidth, by
            eliminating irq and scheduling latencies between requests.  It
            can make a huge difference at high speed, when the latencies
            often exceed the time to handle each i/o request!
      
          - The new usb_map_sg() primitives, leveraging IOMMU hardware
            if it's there (better than entry-at-a-time mapping).
      
          - URB_NO_INTERRUPT transfer flag, a hint to hcds that they
            can avoid a 'success irq' for this urb.  Only the urb for
            the last scatterlist entry really needs an IRQ, the others
            can be eliminated or delayed.  (OHCI uses this today, and
            any HCD can safely ignore it.)
      
      The particular functionality in these APIs seemed to meet Matt's
      requirements for usb-storage, so I'd hope the 2.5 usb-storage
      code will start to use these routines in a while.  (And maybe
      those two scanner drivers: hpusbscsi, microtek.)
      
      Brief summary of testing:  this code seems correct for normal
      reads and writes, but the fault paths (including cancelation)
      haven't been tested yet.  Both EHCI and OHCI seem to be mostly
      OK with these more aggressive queued loads, but may need small
      updates (like the two I sent yesterday).  Unfortunately I have
      to report that UHCI and urb queueing will sometimes lock up my
      hardware (PIIX4), so while we're lots better than 2.4 this is
      still a bit of a trouble spot for now.
      
      I'll be making some testing software available shortly, which
      will help track down remaining HCD level problems by giving the
      queuing APIs (and some others!) a more strenuous workout than
      most drivers will, in their day-to-day usage.
      
      - Dave
      1e4fece8
    • Matthew Dharm's avatar
      [PATCH] USB-storage: problem clearing halts · 2eea1938
      Matthew Dharm authored
      Greg, attached is a patch designed for diagnostic purposes.  Please apply
      to the 2.5 tree -- yes, we'll be removing this at some point in the future.
      
      It appears that we have a problem clearing halts.  This patch causes a very
      clear message to be printed whenever a usb_stor_clear_halt() manages to
      work.  So far, I haven't seen such a thing happen.  And I've seen _lots_ of
      STALL conditions.
      
      This problem has likely been around for a while... however, it hasn't been
      noticed before because usb-storage was difficult to use because of other
      bugs.  Heck, the most recent 'bk pull' is the first one for me in _months_
      which let me boot all the way into X11.
      
      I'm going to hold my patch queue until this is resolved.  On my test setup,
      it's easy to see this failing.  I've tried with 4 different devices, with
      both UHCI and EHCI drivers.  I don't want to confuse this problem with
      other patches...
      
      'result' in this function always seems to be -32.  Which is odd, because
      control endpoints shouldn't do that.
      
      I'm open to suggestions as to where to look for this bug, but my instincts
      are telling me that this is a core or HCD issue, not a usb-storage issue.
      
      On a positive note, this means that the error-recovery system gets a good
      workout.
      2eea1938
    • Linus Torvalds's avatar
      Merge bk://bk.arm.linux.org.uk · 2fbc109c
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      2fbc109c
  3. 01 Oct, 2002 4 commits
  4. 30 Sep, 2002 21 commits
    • Russell King's avatar
      [ARM] Fix sa1111 IRQ handling · 99afe913
      Russell King authored
      We must clear down all currently pending IRQs before servicing any
      IRQ on the chip.  This prevents immediate recursion into the
      interrupt handling paths when we service the first IRQ.
      99afe913
    • Russell King's avatar
      [ARM] Update cpufreq related sa1100 related drivers and CPU code · 3496bea8
      Russell King authored
      This cset updates sa1100 code for the now merged cpufreq next-gen.
      3496bea8
    • Russell King's avatar
      [ARM] sa1100fb updates · a58cdfc6
      Russell King authored
      Update sa1100fb for recent fbcon changes, and move stork LCD power
      handling into machine specific file.
      a58cdfc6
    • Russell King's avatar
      [ARM] Remove "struct device" from sa1111_init() callers · ef0a3748
      Russell King authored
      This didn't follow the LDM model correctly.  The SA1111 is always
      a device on the root bus.
      ef0a3748
    • Russell King's avatar
    • Russell King's avatar
      [ARM] Update SA1111 core and related drivers for LDM. · 18db28ae
      Russell King authored
      This cset updates the SA1111 core, PCMCIA, OHCI and keyboard drivers,
      allowing them to take advantage of the Linux device manager code;
      this implements initial suspend/resume support for the SA1111 in the
      core.  Many existing drivers currently rely on the old PM-based
      interface for suspend/resume support.
      18db28ae
    • David Brownell's avatar
      [PATCH] ohci-hcd, paranoia · 86cdffc9
      David Brownell authored
      In a test where some memory corruption happened, I noticed an
      oops (null pointer exception in_irq) that's avoidable.  Here's
      a patch that avoids it ... anyone seeing the err() is likely
      to hang some process, but that's better than the alternative.
      (Also inlines some used-once routines, saving a bit of space
      to make up for the new diagnostic.)
      86cdffc9
    • David Brownell's avatar
      [PATCH] ehci-hcd, urb queuing · c5375618
      David Brownell authored
      In doing some more extensive testing of the urb queueing behavior,
      I noticed that (a) IOC wasn't always being set for each urb, while
      for now it needs to be set; (b) a qh patchup wasn't done quite
      where it should be.  This resolves those two issues, as well
      as making it a bit less noisy to unlink lots of urbs at the once.
      c5375618
    • Greg Kroah-Hartman's avatar
      ef3249f3
    • David Brownell's avatar
      [PATCH] usbcore misc cleanup · 846f917c
      David Brownell authored
      This has minor usbcore cleanups:
      
      DOC:
          - the changes passing a usb_interface to driver probe() and disconnect()
            weren't reflected in their adjacent docs.  likewise they still said
            it was possible to get a null usb_device_id (no more).
      
          - the (root) hub API restrictions from rmk's ARM patch weren't
            flagged
      
          - mention the non-dma-coherent cache issue for usb_buffer_alloc()
      
          - mention disconnect() cleanup issue with usb_{control,bulk}_msg()
            [ you can't cancel those urbs from disconnect() ]
      
      CODE
          - make driver ioctl() use 'usb_interface' too ... this update
            also resolves an old 'one instance per device' bad assumption
      
          - module locking on driver->ioctl() was goofy, kept BKL way too
            long and didn't try_inc_mod_count() like the rest of usbcore
      
          - hcd unlink code treated iso inappropriately like interrupt;
            only interrupt still wants that automagic mode
      
          - move iso init out of ohci into shared submit_urb logic
      
          - remove interrupt transfer length restriction; hcds that don't
            handle packetization (just like bulk :) should be updated,
            but device drivers won't care for now.
      846f917c
    • Greg Kroah-Hartman's avatar
    • Greg Kroah-Hartman's avatar
      0dfd9af4
    • Greg Kroah-Hartman's avatar
    • Greg Kroah-Hartman's avatar
      driver core: added location of device in driverfs tree to /sbin/hotplug call. · c422d217
      Greg Kroah-Hartman authored
      /sbin/hotplug is now called when any device is added or removed from the
      system.
      c422d217
    • Greg Kroah-Hartman's avatar
    • Greg Kroah-Hartman's avatar
      USB: queue_task() fixups · d09b74a3
      Greg Kroah-Hartman authored
      d09b74a3
    • Dave Jones's avatar
      [PATCH] include fix · 1b8ad82f
      Dave Jones authored
      Trivial include file fix..
      1b8ad82f
    • Dave Jones's avatar
      [PATCH] Various trivial module related fixes. · 95aff773
      Dave Jones authored
      More bits from 2.5.39-dj sucked out by Adrian Bunk.
      
       - drivers/char/toshiba.c: add
         MODULE_{PARM_DESC,AUTHOR,DESCRIPTION,SUPPORTED_DEVICE}
       - drivers/mtd/nand/nand_ecc.c: add MODULE_{AUTHOR,DESCRIPTION}
       - drivers/net/skfp/skfddi.c: add MODULE_AUTHOR
       - drivers/net/tokenring/olympic.c: remove "\n" at the end of
         MODULE_DESCRIPTION
       - fs/driverfs/inode.c: add MODULE_LICENSE
       - fs/nls/nls_cp1250.c: correct MODULE_LICENSE
       - include/linux/module.h: add "GPL v2" to the list of free software
         licenses
      95aff773
    • Dave Jones's avatar
      [PATCH] trivial bits. · 4aaae0d9
      Dave Jones authored
      Adrian Bunk went through .39-dj, and pulled out a bunch of
      trivial bits (docs changes, whitespace fixes etc)
      
       - CREDITS: update the web-address of Tigran A. Aivazian
       - Documentation/Changes: higher minimum version of reiserfsprogs
       - s/www.linuxdoc.org/www.tldp.org/g in:
         - Documentation/DocBook/sis900.tmpl
         - Documentation/kernel-docs.txt
         - Documentation/scsi-generic.txt
         - Documentation/scsi.txt
         - Documentation/sound/oss/PAS16
       - Documentation/filesystems/isofs.txt: document where to get ISO 9660
         docs from
       - Documentation/networking/00-INDEX: document that e100.txt and e1000.txt
         are present
       - typo fixes in:
         - Documentation/networking/ip-sysctl.txt
         - Documentation/s390/Debugging390.txt
         - drivers/ide/Config.help
       - MAINTAINERS:
         - update location of the emu10k1-devel and linux-mips lists
         - Remy Card is no longer ext2 maintainer
         - list Andrew Morton instead of Remy Card as second ext3 maintainer
         - update mail addresses of Riley H. Williams and Jack Hammer
         - misc whitespace -> tab fixes
       - arch/mips/kernel/time.c: correct the location of a README
       - whitespace -> tab fixes in
         drivers/net/{3c505,3c509,arcnet/arcnet,at1700,hamradio/scc,ni65,
         pcmcia/aironet4500_cs}.c and drivers/net/wan/lmc/lmc_var.h
       - drivers/pci/quirks.c: update URL
       - remove tabs/whitespace at the end of lines in:
         - drivers/tc/lk201-map.map
         - drivers/tc/lk201-remap.c
         - drivers/tc/zs.h
       - fs/jfs/jfs_logmgr.c: remove two extra empty lines
       - include/linux/auto_fs.h: s/__x86_64/__x86_64__/
      4aaae0d9
    • Dominik Brodowski's avatar
      [PATCH] cpufreq crashes on P4 · 1c6232c3
      Dominik Brodowski authored
      In two drivers a wrong size of memory was allocated for cpufreq_driver: as
      it must include NR_CPUS times a struct cpufreq_policy (and not struct
      cpufreq_freqs). Thanks to Petr Vandrovec for this patch.
      1c6232c3
    • Matthew Wilcox's avatar
      [PATCH] Remove QDIO_BH · 06ccf012
      Matthew Wilcox authored
      QDIO_BH was never actually used anyway, and won't do much good now BHs
      are gone.
      06ccf012