29 Aug, 2005

7 commits

  • Here's the problem. Try to do this on 2.6.12:
    - Kill udev and HAL
    - Insert a CD-ROM into a SCSI or USB CD-ROM drive
    - Run dd if=/dev/scd0
    - cat /sys/block/sr0/size
    - Eject the CD, insert a different one
    - Run dd if=/dev/scd0
    This is likely to do "access beyond the end of device", if you let it
    - cat /sys/block/sr0/size
    This shows the size of a previous CD, even though dd was supposed
    to revalidate the device.
    - Run dd if=/dev/scd0
    The second run of dd works correctly!

    The bug was introduced in 2.5.31, when Al fixes the recursive opens
    in partitioning. Before, the code worked like this:
    - Block layer called cdrom_open directly
    - cdrom_open called sr_open
    - sr_open called check_disk_change
    - check_disk_change called sr_media_change
    - sr_media_change did cd->needs_disk_change=1
    - before returning sr_open tested cd->needs_disk_change
    and called get_sector_size.

    In 2.6.12, the check_disk_change is called from cdrom_open only. Thus:
    - Block layer calls sr_bd_open
    - sr_bd_open calls cdrom_open
    - cdrom_open calls sr_open
    - sr_open tests cd->needs_disk_change, which wasn't set yet; returns
    - cdrom_open calls check_disk_change
    - check_disk_change calls sr_media_change
    - sr_media_change does cd->needs_disk_change=1, but nobody cares

    Acked by: Alexander Viro
    Signed-off-by: James Bottomley

    Pete Zaitcev
     
  • This patch fixes a long term borkenness in
    ibmvscsi where we were using the wrong timeout
    field from the scsi command (and using the
    wrong units.) Now broken by the fact that the
    scsi_cmnd timeout field is gone entirely.
    This only worked before because all the SCSI
    targets assumed that 0 was default.

    Signed-off-by: Dave Boutcher
    Signed-off-by: James Bottomley

    Dave C Boutcher
     
  • C files should include the files with the prototypes for their global
    functions.

    Signed-off-by: Adrian Bunk
    Signed-off-by: James Bottomley

    Adrian Bunk
     
  • attribute_container_classdev_to_container is an exported function of the
    attribute_container.c file. However, there's no prototype for it. Now
    I actually want to use it, so add one.

    Signed-off-by: James Bottomley

    James Bottomley
     
  • With the removal of the spinlocking around eh calls, we need to add a
    little more locking back in, otherwise we do some naked list
    manipulation.

    Signed-off-by: Dave Boutcher
    Signed-off-by: James Bottomley

    Dave C Boutcher
     
  • This patch fixes the bad assumption of the aacraid driver with use_sg.
    I used the 3w-xxxx driver fix as a guide for this.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • If your transport class sets the ATTRIBUTE_CONTAINER_NO_CLASSDEVS flag,
    then its configure method never gets called. This patch fixes that so
    that the configure method is called with a NULL classdev.

    Also remove a spurious inverted comma in the transport_class comments.

    Signed-off-by: James Bottomley

    James Bottomley
     

15 Aug, 2005

5 commits


13 Aug, 2005

12 commits


10 Aug, 2005

1 commit


09 Aug, 2005

2 commits

  • When run on a kernel that scans all LUNs, a certain crappy
    scsi scanner reports the same LUN over and over..
    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=155457

    Aparently they were so shamed by this, they chose to remain
    anonymous. Though it seems the blacklist code handles
    anonymous vendors just fine.

    Signed-off-by: Dave Jones
    Signed-off-by: James Bottomley

    Dave Jones
     
  • Received from Mark Salyzyn

    This patch adds the product ID for the ICP9067MA adapter.

    The entries for the ICP9085LI, ICP5085BR, IBM8k & ASR4810SAS were
    incorrect and would not initialize the adapters correctly.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     

08 Aug, 2005

3 commits

  • There are certain rogue devices (and the aic7xxx driver) that return
    BUSY or QUEUE_FULL forever. This code will apply a global timeout (of
    the total number of retries times the per command timer) to a given
    command. If it is exceeded, the command is completed regardless of its
    state.

    The patch also removes the unused field in the command: timeout and
    timeout_total.

    This solves the problem of detecting an endless loop in the mid-layer
    because of BUSY/QUEUE_FULL bouncing, but will not recover the device.
    In the aic7xxx case, the driver can be recovered by sending a bus reset,
    so possibly this should be tied into the error handler?

    Signed-off-by: James Bottomley

    James Bottomley
     
  • I have rediffed the patch against 2.6.13-rc5, done a couple of cosmetic
    cleanups, and run some tests. Brian King has acknowledged that it fixes the
    problems he has seen. Seems mature enough for inclusion into 2.6.14 (or
    later)?

    Nate's explanation of the changes:

    I've attached patches against 2.6.13rc2. These are basically identical
    to my earlier patches, as I found that all issues I'd seen in earlier
    kernels still existed in this kernel.

    To summarize, the changes are: (more details in my original email)

    - add a kref to the scsi_tape structure, and associate reference
    counting stuff

    - set sr_request->end_io = blk_end_sync_rq so we get notified when an IO
    is rejected when the device goes away

    - check rq_status when IOs complete, else we don't know that IOs
    rejected for a dead device in fact did not complete

    - change last_SRpnt so it's set before an async IO is issued (in case
    st_sleep_done is bypassed)

    - fix a bogus use of last_SRpnt in st_chk_result

    Signed-off-by: Nate Dailey
    Signed-off-by: Kai Makisara
    Signed-off-by: James Bottomley

    Kai Makisara
     
  • The cmd->timeout field has been obsolete for a while now. While looking
    to remove it, I came across this use in the aacraid driver. It looks
    like you want to initialise the firmware with the current timeout of the
    command (in seconds), so the value I think you should be using is
    cmd->timeout_per_command.

    Acked by: Mark Haverkamp
    Acked by: Mark Salyzyn
    Signed-off-by: James Bottomley

    James Bottomley
     

07 Aug, 2005

1 commit

  • without it you get this failure:

    drivers/built-in.o(.text+0xdcccd): In function `ahd_linux_slave_configure':
    drivers/scsi/aic7xxx/aic79xx_osm.c:636: undefined reference to `spi_dv_device'
    drivers/built-in.o(.text+0xdd7b1): In function `ahd_send_async':
    drivers/scsi/aic7xxx/aic79xx_osm.c:1652: undefined reference to `spi_display_xfer_agreement'
    drivers/built-in.o(.init.text+0x7b4d): In function `ahd_linux_init':
    drivers/scsi/aic7xxx/aic79xx_osm.c:2765: undefined reference to `spi_attach_transport'
    drivers/built-in.o(.init.text+0x7c94):drivers/scsi/aic7xxx/aic79xx_osm.c:2774: undefined reference to `spi_release_transport'
    drivers/built-in.o(.exit.text+0x72c): In function `ahd_linux_exit':
    drivers/scsi/aic7xxx/aic79xx_osm.c:2783: undefined reference to `spi_release_transport'

    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley

    akpm@osdl.org
     

06 Aug, 2005

7 commits

  • Received from Mark Salyzyn from Adaptec:

    This patch adds support for the new raw io command. This new command
    offers much larger io commands, is more friendly to the internal firmware
    structure requiring less translation efforts by the firmware and offers
    support for targets greater than 2TB (patch to support >2TB will
    be sent in the future).

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec:

    If the Adapter is quiet and does not produce an AIF event packets to be
    picked up by the management applications for longer than the timeout
    interval of two minutes, the cleanup code that deals with aging out
    registrants could erroneously drop the registration. The timeout is
    there to clean up should the management application die and fail to poll
    for updated AIF event packets.

    Moving the timer update from the ioctl code that delivers an AIF to the
    polling registrant to the bottom of the ioctl means the timeout is reset
    with any management application polling activity regardless if an AIF is
    delivered or not removing the erroneous timeout cleanups.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec:

    This patch removes the duplicate code in the write_callback command
    completion handler, and renames read_callback to io_callback. Optimized
    the lba calculation into the debug print routine macro to optimize the
    i/o code path.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Add in pci shutdown method so that the adapter shuts down correctly and
    flushes its cache. Shutdown should also disable the adapter's interrupt
    when shutdown (in particularly if the driver is rmmod'd) to prevent
    spurious hardware activities.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec.

    Fixes a bug in check_revision. It should return the driver version not
    the firmware version.
    Update driver version number.
    Update driver version string.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • Received from Mark Salyzyn from Adaptec:

    If more than two commands are outstanding to the controller, there is no
    need to notify the adapter via a PCI bus transaction of additional
    commands added into the queue; it will get to them when it works through
    the produce/consumer indexes.

    This reduced the PCI traffic in the driver to submit a command to the
    queue to near zero allowing a significant number of commands to be
    turned around with no need to block for the PCI bridge to flush the
    notify request to the adapter.

    Interrupt mitigation has always been present in the driver; it was
    turned off because of a bug that prevented one from realizing the
    usefulness of the feature. This bug is fixed in this patch.

    Signed-off-by: Mark Haverkamp
    Signed-off-by: James Bottomley

    Mark Haverkamp
     
  • I ran into this one sending bus resets across the hardware.

    Signed-off-by: James Bottomley

    James Bottomley
     

05 Aug, 2005

2 commits