1. 08 1月, 2016 8 次提交
  2. 10 11月, 2015 1 次提交
  3. 14 10月, 2015 1 次提交
  4. 11 9月, 2015 1 次提交
    • N
      target/qla2xxx: Honor max_data_sg_nents I/O transfer limit · 8f9b5654
      Nicholas Bellinger 提交于
      This patch adds an optional fabric driver provided SGL limit
      that target-core will honor as it's own internal I/O maximum
      transfer length limit, as exposed by EVPD=0xb0 block limits
      parameters.
      
      This is required for handling cases when host I/O transfer
      length exceeds the requested EVPD block limits maximum
      transfer length. The initial user of this logic is qla2xxx,
      so that we can avoid having to reject I/Os from some legacy
      FC hosts where EVPD=0xb0 parameters are not honored.
      
      When se_cmd payload length exceeds the provided limit in
      target_check_max_data_sg_nents() code, se_cmd->data_length +
      se_cmd->prot_length are reset with se_cmd->residual_count
      plus underflow bit for outgoing TFO response callbacks.
      It also checks for existing CDB level underflow + overflow
      and recalculates final residual_count as necessary.
      
      Note this patch currently assumes 1:1 mapping of PAGE_SIZE
      per struct scatterlist entry.
      Reported-by: NCraig Watson <craig.watson@vanguard-rugged.com>
      Cc: Craig Watson <craig.watson@vanguard-rugged.com>
      Tested-by: NHimanshu Madhani <himanshu.madhani@qlogic.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Arun Easi <arun.easi@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      8f9b5654
  5. 27 8月, 2015 25 次提交
  6. 13 8月, 2015 1 次提交
    • T
      qla2xxx: prevent board_disable from running during EEH · a30c2a3b
      Thadeu Lima de Souza Cascardo 提交于
      Commit f3ddac19 ("[SCSI] qla2xxx:
      Disable adapter when we encounter a PCI disconnect.") has introduced a
      code that disables the board, releasing some resources, when reading
      0xffffffff.
      
      In case this happens when there is an EEH, this read will trigger EEH
      detection and set PCI channel offline. EEH will be able to recover the
      card from this state by doing a reset, so it's a better option than
      simply disabling the card.
      
      Since eeh_check_failure will mark the channel as offline before
      returning the read value, in case there really was an EEH, we can simply
      check for pci_channel_offline, preventing the board_disable code from
      running if it's true.
      
      Without this patch, EEH code will try to access those same resources
      that board_disable will try to free. This race can cause EEH recovery to
      fail.
      
      [  504.370577] EEH: Notify device driver to resume
      [  504.370580] qla2xxx [0001:07:00.0]-9002:2: The device failed to resume I/O from slot/link_reset.
      Signed-off-by: NThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
      Acked-by: NHimanshu Madhani <himanshu.madhani@qlogic.com>
      Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
      a30c2a3b
  7. 03 8月, 2015 1 次提交
  8. 25 7月, 2015 2 次提交