1. 12 3月, 2014 1 次提交
  2. 10 3月, 2014 5 次提交
  3. 25 2月, 2014 1 次提交
    • D
      qla2xxx: Fix kernel panic on selective retransmission request · 6f58c780
      Dr. Greg Wettstein 提交于
      A selective retransmission request (SRR) is a fibre-channel
      protocol control request which provides support for requesting
      retransmission of a data sequence in response to an issue such as
      frame loss or corruption.  These events are experienced
      infrequently in fibre-channel based networks which makes
      it difficult to test and assess codepaths which handle these
      events.
      
      We were fortunate enough, for some definition of fortunate, to
      have a metro-area single-mode SAN link which, at 10 GBPS
      sustained load levels, would consistently generate SRR's in
      a SCST based target implementation using our SCST/in-kernel
      Qlogic target interface driver.  In response to an SRR the
      in-kernel Qlogic target driver immediately panics resulting
      in a catastrophic storage failure for serviced initiators.
      
      The culprit was a debug statement in the qla_target.c file which
      does not verify that a pointer to the SCSI CDB is not null.
      The unchecked pointer dereference results in the kernel panic
      and resultant system failure.
      
      The other two references to the SCSI CDB by the SRR handling code
      use a ternary operator to verify a non-null pointer is being
      acted on.  This patch simply adds a similar test to the implicated
      debug statement.
      
      This patch is a candidate for any stable kernel being maintained
      since it addresses a potentially catastrophic event with
      minimal downside.
      Signed-off-by: NDr. Greg Wettstein <greg@enjellic.com>
      Cc: <stable@vger.kernel.org> #3.5+
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      6f58c780
  4. 21 2月, 2014 5 次提交
    • N
      tcm_qla2xxx: Fix NAA formatted name for NPIV WWPNs · 84197a36
      Nicholas Bellinger 提交于
      This patch fixes the NAA formatted name used by EVPD=0x83
      device identifer to reflect the proper NPIV enabled WWPN.
      
      Cc: Sawan Chandak <sawan.chandak@qlogic.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      84197a36
    • N
      tcm_qla2xxx: Perform configfs depend/undepend for base_tpg · 7474f52a
      Nicholas Bellinger 提交于
      This patch performs configfs_depend_item() during TPG enable for
      base_tpg (eg: non-NPIV) ports, and configfs_undepend_item() during
      TPG disable for base_tpg.
      
      This is done to ensure that any attempt to configfs rmdir a base_tpg
      with active NPIV ports will fail with -EBUSY, until all associated
      NPIV ports have been explicitly shutdown and base_tpg disabled.
      
      Note that the actual configfs_[un]depend_item() is done from seperate
      process context, as these are not intended to be called directly
      from configfs callbacks.
      
      Cc: Sawan Chandak <sawan.chandak@qlogic.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      7474f52a
    • N
      tcm_qla2xxx: Add NPIV specific enable/disable attribute logic · 394d62ba
      Nicholas Bellinger 提交于
      This patch adds seperate logic for NPIV specific enable/disable
      attribute logic, as NPIV vs. non-NPIV enable/disable ends up being
      different enough to warrent seperate logic for setting configfs
      tpg_group dependencies in the non-NPIV case.
      
      Cc: Sawan Chandak <sawan.chandak@qlogic.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      394d62ba
    • N
      qla2xxx: Check + fail when npiv_vports_inuse exists in shutdown · 3c231bda
      Nicholas Bellinger 提交于
      This patch adds an check to qlt_stop_phase1() to avoid shutdown
      when the base_vha contains a non-zero fc_host->npiv_vports_inuse
      count.
      
      This includes holding qla_tgt_mutex in qlt_stop_phase1() between
      the fc_host->npiv_vports_inuse check + setting of tgt->tgt_stop to
      avoid a possible race between qlt_lport_register() -> tcm_qla2xxx
      -> tcm_qla2xxx_lport_register_npiv_cb() calling fc_vport_create().
      
      Cc: Sawan Chandak <sawan.chandak@qlogic.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      3c231bda
    • N
      qla2xxx: Fix qlt_lport_register base_vha callback race · ddb95145
      Nicholas Bellinger 提交于
      This patch closes a race between qlt_lport_register() and
      tcm_qla2xxx callback logic by holding qla_tgt_mutex before
      making the callback.
      
      In order for this to work, the qlt_add_target() and
      qlt_remove_target() code has been changed to avoid the
      accessing qla_tgt_mutex + list_[add,del] for NPIV enabled
      ports.
      
      This bug introduced in v3.14-rc1 code with commit 49a47f2c.
      
      Cc: Sawan Chandak <sawan.chandak@qlogic.com>
      Cc: Quinn Tran <quinn.tran@qlogic.com>
      Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      ddb95145
  5. 18 2月, 2014 1 次提交
  6. 13 2月, 2014 1 次提交
  7. 22 1月, 2014 3 次提交
    • B
      scsi_transport_srp: Fix kernel-doc warnings · 0c7f8218
      Bart Van Assche 提交于
      The following command has been used to verify that the kernel-doc
      tool no longer complains about undocumented fields:
      
          scripts/kernel-doc -html drivers/scsi/scsi_transport_srp.c \
            include/scsi/scsi_transport_srp.h >srp-transport-doc.html
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Acked-by: NSebastian Riemer <sebastian.riemer@profitbricks.com>
      Acked-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      0c7f8218
    • B
      scsi_transport_srp: Fix a race condition · 93079162
      Bart Van Assche 提交于
      The rport timers must be stopped before the SRP initiator destroys the
      resources associated with the SCSI host. This is necessary because
      otherwise the callback functions invoked from the SRP transport layer
      could trigger a use-after-free. Stopping the rport timers before
      invoking scsi_remove_host() can trigger long delays in the SCSI error
      handler if a transport layer failure occurs while scsi_remove_host()
      is in progress. Hence move the code for stopping the rport timers from
      srp_rport_release() into a new function and invoke that function after
      scsi_remove_host() has finished. This patch fixes the following
      sporadic kernel crash:
      
           kernel BUG at include/asm-generic/dma-mapping-common.h:64!
           invalid opcode: 0000 [#1] SMP
           RIP: 0010:[<ffffffffa03b20b1>]  [<ffffffffa03b20b1>] srp_unmap_data+0x121/0x130 [ib_srp]
           Call Trace:
           [<ffffffffa03b20fc>] srp_free_req+0x3c/0x80 [ib_srp]
           [<ffffffffa03b2188>] srp_finish_req+0x48/0x70 [ib_srp]
           [<ffffffffa03b21fb>] srp_terminate_io+0x4b/0x60 [ib_srp]
           [<ffffffffa03a6fb5>] __rport_fail_io_fast+0x75/0x80 [scsi_transport_srp]
           [<ffffffffa03a7438>] rport_fast_io_fail_timedout+0x88/0xc0 [scsi_transport_srp]
           [<ffffffff8108b370>] worker_thread+0x170/0x2a0
           [<ffffffff81090876>] kthread+0x96/0xa0
           [<ffffffff8100c0ca>] child_rip+0xa/0x20
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      93079162
    • B
      scsi_transport_srp: Block rport upon TL error even with fast_io_fail_tmo = off · 18cc4e02
      Bart Van Assche 提交于
      The current behavior of the SRP transport layer when a transport layer
      error is encountered is to block SCSI command processing only if
      fast_io_fail_tmo != off.  The current behavior of the FC transport
      layer when a transport layer error is encountered is to block SCSI
      command processing no matter which value fast_io_fail_tmo has been set
      to.  Make the behavior of the SRP transport layer consistent with that
      of the FC transport layer to avoid confusion.
      Signed-off-by: NBart Van Assche <bvanassche@acm.org>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      18cc4e02
  8. 19 1月, 2014 3 次提交
  9. 16 1月, 2014 1 次提交
  10. 15 1月, 2014 1 次提交
  11. 14 1月, 2014 1 次提交
  12. 11 1月, 2014 1 次提交
  13. 07 1月, 2014 1 次提交
  14. 22 12月, 2013 1 次提交
    • Y
      PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev · fc279850
      Yinghai Lu 提交于
      These interfaces:
      
        pcibios_resource_to_bus(struct pci_dev *dev, *bus_region, *resource)
        pcibios_bus_to_resource(struct pci_dev *dev, *resource, *bus_region)
      
      took a pci_dev, but they really depend only on the pci_bus.  And we want to
      use them in resource allocation paths where we have the bus but not a
      device, so this patch converts them to take the pci_bus instead of the
      pci_dev:
      
        pcibios_resource_to_bus(struct pci_bus *bus, *bus_region, *resource)
        pcibios_bus_to_resource(struct pci_bus *bus, *resource, *bus_region)
      
      In fact, with standard PCI-PCI bridges, they only depend on the host
      bridge, because that's the only place address translation occurs, but
      we aren't going that far yet.
      
      [bhelgaas: changelog]
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      fc279850
  15. 20 12月, 2013 14 次提交