1. 15 4月, 2006 8 次提交
    • M
      [SCSI] iscsi: convert iscsi tcp to libiscsi · 5bb0b55a
      Mike Christie 提交于
      This just converts iscsi_tcp to the lib
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      5bb0b55a
    • M
      [SCSI] iscsi: add libiscsi · 7996a778
      Mike Christie 提交于
      There is a lot of code duplcited between iscsi_tcp
      and the upcoming iscsi_iser driver. This patch puts
      the duplicated code in a lib. There is more code
      to move around but this takes care of the
      basics. For iscsi_offload if they use the lib we will
      probably move some things around. For example in the
      queuecommand we will not assume that the LLD wants
      to do queue_work, but it is better to handle that
      later when we know for sure what iscsi_offload looks
      like (we could probably do this for iscsi_iser though to).
      
      Ideally I would like to get the iscsi_transports modules
      to a place where all they really have to do is put data
      on the wire, but how to do that will hopefully be more clear
      when we see other modules like iscsi_offload. Or maybe
      iscsi_offload will not use the lib and it will just be
      iscsi_iser and iscsi_tcp and maybe the iscsi_tcp_tgt if that
      is allowed in mainline.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      7996a778
    • M
      [SCSI] iscsi: fix up iscsi eh · 30a6c652
      Mike Christie 提交于
      The current iscsi_tcp eh is not nicely setup for dm-multipath
      and performs some extra task management functions when they
      are not needed.
      
      The attached patch:
      
      - Fixes the TMF issues. If a session is rebuilt
      then we do not send aborts.
      
      - Fixes the problem where if the host reset fired, we would
      return SUCCESS even though we had not really done anything
      yet. This ends up causing problem with scsi_error.c's TUR.
      
      - If someone has turned on the userspace nop daemon code to try
      and detect network problems before the scsi command timeout
      we can now drop and clean up the session before the scsi command
      timesout and fires the eh speeding up the time it takes for a
      command to go from one patch to another. For network problems
      we fail the command with DID_BUS_BUSY so if failfast is set
      scsi_decide_disposition fails the command up to dm for it to
      try on another path.
      
      - And we had to add some basic iscsi session block code. Previously
      if we were trying to repair a session we would retrun a MLQUEUE code
      in the queuecommand. This worked but it was not the most efficient
      or pretty thing to do since it would take a while to relogin
      to the target. For iscsi_tcp/open-iscsi a lot of the iscsi error handler
      is in userspace the block code is pretty bare. We will be
      adding to that for qla4xxx.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      30a6c652
    • M
      [SCSI] iscsi: add sysfs attrs for uspace sync up · fd7255f5
      Mike Christie 提交于
      For iscsi boot when going from initramfs to the real root we
      need to stop the userpsace iscsi daemon. To later restart it
      iscsid needs to be able to rebuild itself and part of that
      process is matching a session running the kernel with the
      iscsid representation. To do this the attached patch
      adds several required iscsi values. If the LLD does not provide
      them becuase, login is done in userspace, then the transport
      class and userspace set ths up for the LLD.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      fd7255f5
    • M
      [SCSI] iscsi: rm kernel iscsi handles usage for session and connection · b5c7a12d
      Mike Christie 提交于
      from hare@suse.de and michaelc@cs.wisc.edu
      
      hw iscsi like qla4xxx does not allocate a host per session and
      for userspace it is difficult to restart iscsid using the
      "iscsi handles" for the session and connection, so this
      patch just has the class or userspace allocate the id for
      the session and connection.
      
      Note: this breaks userspace and requires users to upgrade to the newest
      open-iscsi tools. Sorry about his but open-iscsi is still too new to
      say we have a stable user-kernel api and we were not good nough
      designers to know that other hw iscsi drivers and iscsid itself would
      need such changes. Actually we sorta did but at the time we did not
      have the HW available to us so we could only guess.
      
      Luckily, the only tools hooking into the class are the open-iscsi ones
      or other tools like iscsitart hook into the open-iscsi engine from
      userspace or prgroams like anaconda call our tools so they are not affected.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      b5c7a12d
    • K
      [SCSI] BLIST_ATTACH_PQ3 flags · 13f7e5ac
      Kurt Garloff 提交于
      Some devices report a peripheral qualifier of 3 for LUN 0; with the original
      code, we would still try a REPORT_LUNS scan (if SCSI level is >= 3 or if we
      have the BLIST_REPORTLUNS2 passed in), but NOT any sequential scan.
      Also, the device at LUN 0 (which is not connected according to the PQ) is not
      registered with the OS.
      
      Unfortunately, SANs exist that are SCSI-2 and do NOT support REPORT_LUNS, but
      report a unknown device with PQ 3 on LUN 0. We still need to scan them, and
      most probably we even need BLIST_SPARSELUN (and BLIST_LARGELUN). See the bug
      reference for an infamous example.
      
      This is patch 3/3:
      3. Implement the blacklist flag BLIST_ATTACH_PQ3 that makes the scsi
         scanning code register PQ3 devices and continues scanning; only sg
         will attach thanks to scsi_bus_match().
      Signed-off-by: NKurt Garloff <garloff@suse.de>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      13f7e5ac
    • K
      [SCSI] Better log messages for PQ3 devs · 6c7154c9
      Kurt Garloff 提交于
      Some devices report a peripheral qualifier of 3 for LUN 0; with the original
      code, we would still try a REPORT_LUNS scan (if SCSI level is >= 3 or if we
      have the BLIST_REPORTLUNS2 passed in), but NOT any sequential scan.
      Also, the device at LUN 0 (which is not connected according to the PQ) is not
      registered with the OS.
      
      Unfortunately, SANs exist that are SCSI-2 and do NOT support REPORT_LUNS, but
      report a unknown device with PQ 3 on LUN 0. We still need to scan them, and
      most probably we even need BLIST_SPARSELUN (and BLIST_LARGELUN). See the bug
      reference for an infamous example.
      
      This patch 2/3:
      If a PQ3 device is found, log a message that describes the device
      (INQUIRY DATA and C:B:T:U tuple) and make a suggestion for blacklisting
      it.
      Signed-off-by: NKurt Garloff <garloff@suse.de>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      6c7154c9
    • K
      [SCSI] Try LUN 1 and use bflags · 4186ab19
      Kurt Garloff 提交于
      Some devices report a peripheral qualifier of 3 for LUN 0; with the original
      code, we would still try a REPORT_LUNS scan (if SCSI level is >= 3 or if we
      have the BLIST_REPORTLUNS2 passed in), but NOT any sequential scan.
      Also, the device at LUN 0 (which is not connected according to the PQ) is not
      registered with the OS.
      
      Unfortunately, SANs exist that are SCSI-2 and do NOT support REPORT_LUNS, but
      report a unknown device with PQ 3 on LUN 0. We still need to scan them, and
      most probably we even need BLIST_SPARSELUN (and BLIST_LARGELUN). See the bug
      reference for an infamous example.
      
      This is patch 1/3:
      If we end up in sequential scan, at least try LUN 1 for devices
      that reported a PQ of 3 for LUN 0.
      Also return blacklist flags, even for PQ3 devices.
      Signed-off-by: NKurt Garloff <garloff@suse.de>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      4186ab19
  2. 13 4月, 2006 1 次提交
  3. 11 4月, 2006 3 次提交
  4. 01 4月, 2006 3 次提交
  5. 31 3月, 2006 14 次提交
  6. 30 3月, 2006 8 次提交
    • M
      [PATCH] sata_mv: three bug fixes · 63af2a5c
      Mark Lord 提交于
      (1) A DMA transfer size of 0x10000 was not being written
      as 0x0000 in the PRDs.  Fixed.
      
      (1) The DEV_IRQ interrupt cause bit happens spuriously
      during EDMA operation, and was not being ignored by the driver.
      This led to various "drive busy" errors being reported,
      with associated unpredictable behaviour.  Fixed.
      
      (2) If a SATA or PCI interrupt was received with no outstanding
      command, the interrupt handler still attempted to invoke
      ata_qc_complete(), triggering assert()/BUG_ON() behaviour
      elsewhere in libata.  Fixed.
      
      The driver still has issues with confusion after error-recovery,
      but should now  be reliable in the absence of drive errors.
      I will be looking more into the error-handling bugs next.
      Signed-Off-By: NMark Lord <mlord@pobox.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      63af2a5c
    • A
      [PATCH] libata: ata_dev_init_params() fixes · 00b6f5e9
      Albert Lee 提交于
      ata_dev_init_params() fixes:
      - Get the "heads" and "sectors" parameters from caller instead of implicitly from dev->id[].
      - Return AC_ERR_INVALID instead of 0 if an invalid parameter is found
      Signed-off-by: NAlbert Lee <albertcc@tw.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      00b6f5e9
    • A
      [PATCH] libata: Fix interesting use of "extern" and also some bracketing · 17efc5f7
      Alan Cox 提交于
      Signed-off-by: NAlan Cox <alan@redhat.com>
      
      Last of the set, just clean up some oddments. Assuming the whole set is
      now ok then the remaining differences are the setup of PIO_0 at reset
      and the ->data_xfer method.
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      17efc5f7
    • A
      [PATCH] libata: Simplex and other mode filtering logic · 5444a6f4
      Alan Cox 提交于
      Add a field to the host_set called 'flags' (was host_set_flags changed
      to suit Jeff)
      Add a simplex_claimed field so we can remember who owns the DMA channel
      Add a ->mode_filter() hook to allow drivers to filter modes
      Add docs for mode_filter and set_mode
      Filter according to simplex state
      Filter cable in core
      
      This provides the needed framework to support all the mode rules found
      in the PATA world. The simplex filter deals with 'to spec' simplex DMA
      systems found in older chips. The cable filter avoids duplicating the
      same rules in each chip driver with PATA. Finally the mode filter is
      neccessary because drive/chip combinations have errata that forbid
      certain modes with some drives or types of ATA object.
      
      Drive speed setup remains per channel for now and the filters now use
      the framework Tejun put into place which cleans them up a lot from the
      older libata-pata patches.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      5444a6f4
    • A
      [PATCH] libata - ATA is both ATA and CFA · 692785e7
      Alan Cox 提交于
      I think this is still needed with the new probe code (which btw seems to
      be missing docs in upstream ?).
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      692785e7
    • A
      [PATCH] libata: Add ->set_mode hook for odd drivers · e35a9e01
      Alan Cox 提交于
      Some hardware doesn't want the usual mode setup logic running. This
      allows the hardware driver to replace it for special cases in the least
      invasive way possible.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      e35a9e01
    • A
      [PATCH] libata: BMDMA handling updates · 4e5ec5db
      Alan Cox 提交于
      This is the minimal patch set to enable the current code to be used with
      a controller following SFF (ie any PATA and early SATA controllers)
      safely without crashes if there is no BMDMA area or if BMDMA is not
      assigned by the BIOS for some reason.
      
      Simplex status is recorded but not acted upon in this change, this isn't
      a problem with the current drivers as none of them are for simplex
      hardware. A following diff will deal with that.
      
      The flags in the probe structure remain ->host_set_flags although Jeff
      asked me to rename them, simply because the rename would break the usual
      Linux rules that old code should break when there are changes. not
      compile and run and then blow up/eat your computer/etc. Renaming this
      later is a trivial exercise once a better name is chosen.
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      4e5ec5db
    • T
      [PATCH] libata: kill trailing whitespace · 05c8e0ac
      Tejun Heo 提交于
      Kill trailing whitespace.
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      05c8e0ac
  7. 29 3月, 2006 3 次提交