1. 09 6月, 2009 7 次提交
    • B
      [SCSI] ibmvfc: Add flush on halt support · 497f9c50
      Brian King 提交于
      The virtual I/O server controlling the NPIV adapter associated with
      a virtual fibre channel adapter can send a HALT event to the client.
      When this occurs, the client can no longer send commands until a RESUME
      is received. By adding support for flush on halt, we will get all of
      our outstanding commands flushed back before the Virtual I/O server
      enters the halt state, eliminating potential command timeouts for
      outstanding commands which might occur if we did not support this feature.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      497f9c50
    • B
      [SCSI] ibmvfc: Add support for NPIV Logout · 79111d08
      Brian King 提交于
      This patch adds support for a new command supported by the Virtual I/O
      Server, NPIV Logout. The command will abort all outstanding commands
      and log out of the fabric. Currently, the only way to do this is
      by breaking the CRQ, which can take a fairly long time when lots of
      commands are outstanding. The NPIV Logout commands provides a mechanism
      to accomplish virtually the same function, but is much faster.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      79111d08
    • B
      [SCSI] ibmvfc: Fix deadlock in EH · 43c8da90
      Brian King 提交于
      Fixes the following deadlock scenario shown below. We currently allow
      queuecommand to send commands when the ibmvfc workqueue is scanning for
      new rports, so we should also allow EH to function at this time as well.
      
      scsi_eh_3     D 0000000000000000 12304  1279      2
      Call Trace:
      [c0000002f7257730] [c0000002f72577e0] 0xc0000002f72577e0 (unreliable)
      [c0000002f7257900] [c0000000000118f4] .__switch_to+0x158/0x1a0
      [c0000002f72579a0] [c0000000004f8b40] .schedule+0x8d4/0x9dc
      [c0000002f7257b60] [c0000000004f8f08] .schedule_timeout+0xa8/0xe8
      [c0000002f7257c50] [d0000000001d23e0] .ibmvfc_wait_while_resetting+0xe4/0x140 [ibmvfc]
      [c0000002f7257d20] [d0000000001d3984] .ibmvfc_eh_abort_handler+0x60/0xe4 [ibmvfc]
      [c0000002f7257dc0] [d000000000366714] .scsi_error_handler+0x38c/0x674 [scsi_mod]
      [c0000002f7257f00] [c0000000000a7470] .kthread+0x78/0xc4
      [c0000002f7257f90] [c000000000029b8c] .kernel_thread+0x4c/0x68
      ibmvfc_3      D 0000000000000000 12432  1280      2
      Call Trace:
      [c0000002f7253540] [c0000002f72535f0] 0xc0000002f72535f0 (unreliable)
      [c0000002f7253710] [c0000000000118f4] .__switch_to+0x158/0x1a0
      [c0000002f72537b0] [c0000000004f8b40] .schedule+0x8d4/0x9dc
      [c0000002f7253970] [c0000000004f8e98] .schedule_timeout+0x38/0xe8
      [c0000002f7253a60] [c0000000004f80cc] .wait_for_common+0x138/0x220
      [c0000002f7253b40] [c0000000000a2784] .flush_cpu_workqueue+0xac/0xcc
      [c0000002f7253c10] [c0000000000a2960] .flush_workqueue+0x58/0xa0
      [c0000002f7253ca0] [d0000000000827fc] .fc_flush_work+0x4c/0x64 [scsi_transport_fc]
      [c0000002f7253d20] [d000000000082db4] .fc_remote_port_add+0x48/0x6c4 [scsi_transport_fc]
      [c0000002f7253dd0] [d0000000001d7d04] .ibmvfc_work+0x820/0xa7c [ibmvfc]
      [c0000002f7253f00] [c0000000000a7470] .kthread+0x78/0xc4
      [c0000002f7253f90] [c000000000029b8c] .kernel_thread+0x4c/0x68
      fc_wq_3       D 0000000000000000 10720  1283      2
      Call Trace:
      [c0000002f559ac30] [c0000002f559ace0] 0xc0000002f559ace0 (unreliable)
      [c0000002f559ae00] [c0000000000118f4] .__switch_to+0x158/0x1a0
      [c0000002f559aea0] [c0000000004f8b40] .schedule+0x8d4/0x9dc
      [c0000002f559b060] [c0000000004f8e98] .schedule_timeout+0x38/0xe8
      [c0000002f559b150] [c0000000004f80cc] .wait_for_common+0x138/0x220
      [c0000002f559b230] [c0000000002721c4] .blk_execute_rq+0xb4/0x100
      [c0000002f559b360] [d00000000036a1f8] .scsi_execute+0x118/0x194 [scsi_mod]
      [c0000002f559b420] [d00000000036a32c] .scsi_execute_req+0xb8/0x124 [scsi_mod]
      [c0000002f559b500] [d0000000000c1330] .sd_sync_cache+0x8c/0x108 [sd_mod]
      [c0000002f559b5e0] [d0000000000c15b4] .sd_shutdown+0x9c/0x158 [sd_mod]
      [c0000002f559b660] [d0000000000c16d0] .sd_remove+0x60/0xb4 [sd_mod]
      [c0000002f559b700] [c000000000392ecc] .__device_release_driver+0xd0/0x118
      [c0000002f559b7a0] [c000000000393080] .device_release_driver+0x30/0x54
      [c0000002f559b830] [c000000000392108] .bus_remove_device+0x128/0x16c
      [c0000002f559b8d0] [c00000000038f94c] .device_del+0x158/0x234
      [c0000002f559b960] [d00000000036f078] .__scsi_remove_device+0x5c/0xd4 [scsi_mod]
      [c0000002f559b9f0] [d00000000036f124] .scsi_remove_device+0x34/0x58 [scsi_mod]
      [c0000002f559ba80] [d00000000036f204] .__scsi_remove_target+0xb4/0x120 [scsi_mod]
      [c0000002f559bb10] [d00000000036f338] .__remove_child+0x2c/0x44 [scsi_mod]
      [c0000002f559bb90] [c00000000038f11c] .device_for_each_child+0x54/0xb4
      [c0000002f559bc50] [d00000000036f2e0] .scsi_remove_target+0x70/0x9c [scsi_mod]
      [c0000002f559bce0] [d000000000083454] .fc_starget_delete+0x24/0x3c [scsi_transport_fc]
      [c0000002f559bd70] [c0000000000a2368] .run_workqueue+0x118/0x208
      [c0000002f559be30] [c0000000000a2580] .worker_thread+0x128/0x154
      [c0000002f559bf00] [c0000000000a7470] .kthread+0x78/0xc4
      [c0000002f559bf90] [c000000000029b8c] .kernel_thread+0x4c/0x68
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      43c8da90
    • B
      [SCSI] ibmvfc: Reduce error logging noise · 7d0e4622
      Brian King 提交于
      The ibmvfc driver currently logs errors during discovery for several
      transient fabric errors, which generally get retried. If retries
      do not work, we see multiple errors in the log. If retries do work,
      we see errors in the log which may be confusing since the retry worked.
      This patch enhances the discovery time error logging to only log errors
      for command failures during discovery if all allowed retries have been
      used up. The existing behavior of logging all failures can be restored
      by setting the hosts log_level to a value of 3 or greater.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      7d0e4622
    • B
      [SCSI] ibmvfc: Use DEVICE_ATTR macro · 85e2399e
      Brian King 提交于
      Use DEVICE_ATTR macro for defining device sysfs attributes.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      85e2399e
    • B
      [SCSI] ibmvfc: Fixup GFP flags for target allocations · 7270b9bd
      Brian King 提交于
      Since target allocations can occur while resetting the virtual adapter,
      we shouldn't be using GFP_KERNEL for them as it could hang. Switch to
      use GFP_NOIO.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      7270b9bd
    • B
      [SCSI] ibmvfc: Fix invalid error response handling · 4a2837d4
      Brian King 提交于
      Fix an obvious bug in processing error responses for SCSI commands
      which can result in successful responses being incorrectly returned
      with DID_ERROR.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      4a2837d4
  2. 03 4月, 2009 4 次提交
  3. 13 3月, 2009 1 次提交
  4. 11 2月, 2009 2 次提交
  5. 25 1月, 2009 1 次提交
  6. 16 1月, 2009 1 次提交
  7. 03 1月, 2009 2 次提交
  8. 30 12月, 2008 9 次提交
  9. 13 10月, 2008 1 次提交
  10. 16 8月, 2008 5 次提交
  11. 27 7月, 2008 6 次提交
    • B
      [SCSI] ibmvfc: Add ADISC support · 989b8545
      Brian King 提交于
      Add an ADISC to the target discovery job in order to sanity check whether or
      not we need to re-login to the target.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      989b8545
    • B
      [SCSI] ibmvfc: Miscellaneous fixes · 52d7e861
      Brian King 提交于
      Properly setup the size of the async event queue. This fixes a bug where async events
      were not getting processed by the driver.
      
      Setup target_id field in the driver's target struct so that target sysfs attributes
      work for multiple targets.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      52d7e861
    • B
      [SCSI] ibmvfc: Fix hang on module removal · 2d0da2a4
      Brian King 提交于
      If certain ELS events are received during module removal, after the kthread
      is stopped, the rmmod can hang. This fixes the ibmvfc driver so that ELS
      events during rmmod are ignored by stopping all device activity prior to
      killing the kthread and also changes reinitialization to not attempt a reinit
      if the adapter has been taken offline.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      2d0da2a4
    • B
      [SCSI] ibmvfc: Target refcounting fixes · b3c10489
      Brian King 提交于
      Fix up some refcounting on the ibmvfc drivers internal target struct
      when accessed through some sysfs attributes.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      b3c10489
    • B
      [SCSI] ibmvfc: Reduce unnecessary log noise · 0ae808e0
      Brian King 提交于
      Reduces some unnecessary log noise by removing a printk during
      host port state query and increasing the log level required to
      log received async events.
      Signed-off-by: NBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      0ae808e0
    • F
      dma-mapping: add the device argument to dma_mapping_error() · 8d8bb39b
      FUJITA Tomonori 提交于
      Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
      architecture does:
      
      This enables us to cleanly fix the Calgary IOMMU issue that some devices
      are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).
      
      I think that per-device dma_mapping_ops support would be also helpful for
      KVM people to support PCI passthrough but Andi thinks that this makes it
      difficult to support the PCI passthrough (see the above thread).  So I
      CC'ed this to KVM camp.  Comments are appreciated.
      
      A pointer to dma_mapping_ops to struct dev_archdata is added.  If the
      pointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it's
      NULL, the system-wide dma_ops pointer is used as before.
      
      If it's useful for KVM people, I plan to implement a mechanism to register
      a hook called when a new pci (or dma capable) device is created (it works
      with hot plugging).  It enables IOMMUs to set up an appropriate
      dma_mapping_ops per device.
      
      The major obstacle is that dma_mapping_error doesn't take a pointer to the
      device unlike other DMA operations.  So x86 can't have dma_mapping_ops per
      device.  Note all the POWER IOMMUs use the same dma_mapping_error function
      so this is not a problem for POWER but x86 IOMMUs use different
      dma_mapping_error functions.
      
      The first patch adds the device argument to dma_mapping_error.  The patch
      is trivial but large since it touches lots of drivers and dma-mapping.h in
      all the architecture.
      
      This patch:
      
      dma_mapping_error() doesn't take a pointer to the device unlike other DMA
      operations.  So we can't have dma_mapping_ops per device.
      
      Note that POWER already has dma_mapping_ops per device but all the POWER
      IOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device
      argument.
      
      [akpm@linux-foundation.org: fix sge]
      [akpm@linux-foundation.org: fix svc_rdma]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix bnx2x]
      [akpm@linux-foundation.org: fix s2io]
      [akpm@linux-foundation.org: fix pasemi_mac]
      [akpm@linux-foundation.org: fix sdhci]
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix sparc]
      [akpm@linux-foundation.org: fix ibmvscsi]
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Muli Ben-Yehuda <muli@il.ibm.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Avi Kivity <avi@qumranet.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8d8bb39b
  12. 25 7月, 2008 1 次提交