1. 10 2月, 2017 1 次提交
  2. 13 8月, 2016 4 次提交
    • S
      zfcp: fix D_ID field with actual value on tracing SAN responses · 771bf035
      Steffen Maier 提交于
      With commit 2c55b750
      ("[SCSI] zfcp: Redesign of the debug tracing for SAN records.")
      we lost the N_Port-ID where an ELS response comes from.
      With commit 7c7dc196
      ("[SCSI] zfcp: Simplify handling of ct and els requests")
      we lost the N_Port-ID where a CT response comes from.
      It's especially useful if the request SAN trace record
      with D_ID was already lost due to trace buffer wrap.
      
      GS uses an open WKA port handle and ELS just a D_ID, and
      only for ELS we could get D_ID from QTCB bottom via zfcp_fsf_req.
      To cover both cases, add a new field to zfcp_fsf_ct_els
      and fill it in on request to use in SAN response trace.
      Strictly speaking the D_ID on SAN response is the FC frame's S_ID.
      We don't need a field for the other end which is always us.
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Fixes: 2c55b750 ("[SCSI] zfcp: Redesign of the debug tracing for SAN records.")
      Fixes: 7c7dc196 ("[SCSI] zfcp: Simplify handling of ct and els requests")
      Cc: <stable@vger.kernel.org> #2.6.38+
      Reviewed-by: NBenjamin Block <bblock@linux.vnet.ibm.com>
      Reviewed-by: NHannes Reinecke <hare@suse.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      771bf035
    • S
      zfcp: trace on request for open and close of WKA port · d27a7cb9
      Steffen Maier 提交于
      Since commit a54ca0f6
      ("[SCSI] zfcp: Redesign of the debug tracing for HBA records.")
      HBA records no longer contain WWPN, D_ID, or LUN
      to reduce duplicate information which is already in REC records.
      In contrast to "regular" target ports, we don't use recovery to open
      WKA ports such as directory/nameserver, so we don't get REC records.
      Therefore, introduce pseudo REC running records without any
      actual recovery action but including D_ID of WKA port on open/close.
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Fixes: a54ca0f6 ("[SCSI] zfcp: Redesign of the debug tracing for HBA records.")
      Cc: <stable@vger.kernel.org> #2.6.38+
      Reviewed-by: NBenjamin Block <bblock@linux.vnet.ibm.com>
      Reviewed-by: NHannes Reinecke <hare@suse.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      d27a7cb9
    • S
      zfcp: fix ELS/GS request&response length for hardware data router · 70369f8e
      Steffen Maier 提交于
      In the hardware data router case, introduced with kernel 3.2
      commit 86a9668a ("[SCSI] zfcp: support for hardware data router")
      the ELS/GS request&response length needs to be initialized
      as in the chained SBAL case.
      
      Otherwise, the FCP channel rejects ELS requests with
      FSF_REQUEST_SIZE_TOO_LARGE.
      
      Such ELS requests can be issued by user space through BSG / HBA API,
      or zfcp itself uses ADISC ELS for remote port link test on RSCN.
      The latter can cause a short path outage due to
      unnecessary remote target port recovery because the always
      failing ADISC cannot detect extremely short path interruptions
      beyond the local FCP channel.
      
      Below example is decoded with zfcpdbf from s390-tools:
      
      Timestamp      : ...
      Area           : SAN
      Subarea        : 00
      Level          : 1
      Exception      : -
      CPU id         : ..
      Caller         : zfcp_dbf_san_req+0408
      Record id      : 1
      Tag            : fssels1
      Request id     : 0x<reqid>
      Destination ID : 0x00<target d_id>
      Payload info   : 52000000 00000000 <our wwpn       >           [ADISC]
                       <our wwnn       > 00<s_id> 00000000
                       00000000 00000000 00000000 00000000
      
      Timestamp      : ...
      Area           : HBA
      Subarea        : 00
      Level          : 1
      Exception      : -
      CPU id         : ..
      Caller         : zfcp_dbf_hba_fsf_res+0740
      Record id      : 1
      Tag            : fs_ferr
      Request id     : 0x<reqid>
      Request status : 0x00000010
      FSF cmnd       : 0x0000000b               [FSF_QTCB_SEND_ELS]
      FSF sequence no: 0x...
      FSF issued     : ...
      FSF stat       : 0x00000061		  [FSF_REQUEST_SIZE_TOO_LARGE]
      FSF stat qual  : 00000000 00000000 00000000 00000000
      Prot stat      : 0x00000100
      Prot stat qual : 00000000 00000000 00000000 00000000
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Fixes: 86a9668a ("[SCSI] zfcp: support for hardware data router")
      Cc: <stable@vger.kernel.org> # 3.2+
      Reviewed-by: NBenjamin Block <bblock@linux.vnet.ibm.com>
      Reviewed-by: NHannes Reinecke <hare@suse.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      70369f8e
    • S
      zfcp: fix fc_host port_type with NPIV · bd77befa
      Steffen Maier 提交于
      For an NPIV-enabled FCP device, zfcp can erroneously show
      "NPort (fabric via point-to-point)" instead of "NPIV VPORT"
      for the port_type sysfs attribute of the corresponding
      fc_host.
      s390-tools that can be affected are dbginfo.sh and ziomon.
      
      zfcp_fsf_exchange_config_evaluate() ignores
      fsf_qtcb_bottom_config.connection_features indicating NPIV
      and only sets fc_host_port_type to FC_PORTTYPE_NPORT if
      fsf_qtcb_bottom_config.fc_topology is FSF_TOPO_FABRIC.
      
      Only the independent zfcp_fsf_exchange_port_evaluate()
      evaluates connection_features to overwrite fc_host_port_type
      to FC_PORTTYPE_NPIV in case of NPIV.
      Code was introduced with upstream kernel 2.6.30
      commit 0282985d
      ("[SCSI] zfcp: Report fc_host_port_type as NPIV").
      
      This works during FCP device recovery (such as set online)
      because it performs FSF_QTCB_EXCHANGE_CONFIG_DATA followed by
      FSF_QTCB_EXCHANGE_PORT_DATA in sequence.
      
      However, the zfcp-specific scsi host sysfs attributes
      "requests", "megabytes", or "seconds_active" trigger only
      zfcp_fsf_exchange_config_evaluate() resetting fc_host
      port_type to FC_PORTTYPE_NPORT despite NPIV.
      
      The zfcp-specific scsi host sysfs attribute "utilization"
      triggers only zfcp_fsf_exchange_port_evaluate() correcting
      the fc_host port_type again in case of NPIV.
      
      Evaluate fsf_qtcb_bottom_config.connection_features
      in zfcp_fsf_exchange_config_evaluate() where it belongs to.
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Fixes: 0282985d ("[SCSI] zfcp: Report fc_host_port_type as NPIV")
      Cc: <stable@vger.kernel.org> #2.6.30+
      Reviewed-by: NBenjamin Block <bblock@linux.vnet.ibm.com>
      Reviewed-by: NHannes Reinecke <hare@suse.com>
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      bd77befa
  3. 07 8月, 2015 1 次提交
  4. 27 7月, 2015 1 次提交
  5. 20 11月, 2014 1 次提交
  6. 03 9月, 2013 2 次提交
  7. 01 6月, 2013 3 次提交
    • S
      [SCSI] zfcp: status read buffers on first adapter open with link down · 9edf7d75
      Steffen Maier 提交于
      Commit 64deb6ef
      "[SCSI] zfcp: Use status_read_buf_num provided by FCP channel"
      started using a value returned by the channel but only evaluated the value
      if the fabric link is up.
      Commit 8d88cf3f
      "[SCSI] zfcp: Update status read mempool"
      introduced mempool resizings based on the above value.
      On setting an FCP device online for the very first time since boot, a new
      zeroed adapter object is allocated. If the link is down, the number of
      status read requests remains zero. Since just the config data exchange is
      incomplete, we proceed with adapter open recovery. However, we
      unconditionally call mempool_resize with adapter->stat_read_buf_num == 0 in
      this case.
      
      This causes a kernel message "kernel BUG at mm/mempool.c:131!" in process
      "zfcperp<FCP-device-bus-ID>" with last function mempool_resize in Krnl PSW
      and zfcp_erp_thread in the Call Trace.
      
      Don't evaluate channel values which are invalid on link down. The number of
      status read requests is always valid, evaluated, and set to a positive
      minimum greater than zero. The adapter open recovery can proceed and the
      channel has status read buffers to inform us on a future link up event.
      While we are not aware of any other code path that could result in mempool
      resize attempts of size zero, we still also initialize the number of status
      read buffers to be posted to a static minimum number on adapter object
      allocation.
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Cc: <stable@vger.kernel.org> #2.6.35+
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      9edf7d75
    • M
      [SCSI] zfcp: remove access control tables interface · 663e0890
      Martin Peschke 提交于
      This patch removes an interface that was used to manage access control
      tables within the HBA. The patch consequently removes the handling
      for conditions related to those access control tables, too.
      
      That initiator-based access control feature was only needed until the
      introduction of NPIV and was withdrawn with z10 years ago.
      It's time to cleanup the corresponding device driver code.
      Signed-off-by: NMartin Peschke <mpeschke@linux.vnet.ibm.com>
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      663e0890
    • D
      [SCSI] zfcp: fix adapter (re)open recovery while link to SAN is down · f76ccaac
      Daniel Hansel 提交于
      FCP device remains in status ERP_FAILED when device is switched online
      or adapter recovery is triggered  while link to SAN is down.
      
      When Exchange Configuration Data command returns the FSF status
      FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE it aborts the exchange process.
      The only retries are done during the common error recovery procedure
      (i.e. max. 3 retries with 8sec sleep between) and remains in status
      ERP_FAILED with QDIO down.
      
      This commit reverts the commit 0df13847
      (zfcp: Fix adapter activation on link down).
      When FSF status FSF_EXCHANGE_CONFIG_DATA_INCOMPLETE is received the
      adapter recovery will be finished without any retries. QDIO will be
      up now and status changes such as LINK UP will be received now.
      Signed-off-by: NDaniel Hansel <daniel.hansel@linux.vnet.ibm.com>
      Signed-off-by: NSteffen Maier <maier@linux.vnet.ibm.com>
      Cc: <stable@vger.kernel.org> #2.6.37+
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      f76ccaac
  8. 14 2月, 2013 1 次提交
  9. 24 9月, 2012 4 次提交
  10. 20 7月, 2012 1 次提交
    • H
      s390/comments: unify copyright messages and remove file names · a53c8fab
      Heiko Carstens 提交于
      Remove the file name from the comment at top of many files. In most
      cases the file name was wrong anyway, so it's rather pointless.
      
      Also unify the IBM copyright statement. We did have a lot of sightly
      different statements and wanted to change them one after another
      whenever a file gets touched. However that never happened. Instead
      people start to take the old/"wrong" statements to use as a template
      for new files.
      So unify all of them in one go.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      a53c8fab
  11. 27 8月, 2011 2 次提交
  12. 06 6月, 2011 1 次提交
  13. 31 3月, 2011 1 次提交
  14. 26 2月, 2011 5 次提交
  15. 22 12月, 2010 4 次提交
  16. 09 12月, 2010 3 次提交
    • C
      [SCSI] zfcp: Issue FCP command without holding SCSI host_lock · e55f8753
      Christof Schmitt 提交于
      Interrupting the connection to the FCP channel while I/O requests are
      being issued can lead to this deadlock. scsi_dispatch_cmd already
      holds the host_lock while the recovery trigger tries to acquire the
      host_lock again when iterating through the scsi_devices.
      
       INFO: lockdep is turned off.
       BUG: spinlock lockup on CPU#1, blast/9660, 0000000078f38878
       CPU: 1 Not tainted 2.6.35.7SWEN2 #2
       Process blast (pid: 9660, task: 0000000071f75940, ksp: 0000000074393ac0)
              0000000074393640 00000000743935c0 0000000000000002 0000000000000000
              0000000074393660 00000000743935d8 00000000743935d8 00000000005590c2
              0000000000000000 0000000078f38878 0000000026ede800 0000000078f38878
              000000000000000d 040000000000000c 0000000074393628 0000000000000000
              0000000000000000 0000000000100b2a 00000000743935c0 0000000074393600
       Call Trace:
       ([<0000000000100a32>] show_trace+0xee/0x144)
        [<00000000003be202>] do_raw_spin_lock+0x112/0x178
        [<000000000055d408>] _raw_spin_lock_irqsave+0x90/0xb0
        [<00000000003f1514>] __scsi_iterate_devices+0x38/0xbc
        [<00000000004849b0>] zfcp_erp_clear_adapter_status+0xd0/0x16c
        [<000000000048587a>] zfcp_erp_adapter_reopen+0x3a/0xb4
        [<0000000000489812>] zfcp_fsf_req_send+0x166/0x180
        [<000000000048c8d6>] zfcp_fsf_fcp_cmnd+0x272/0x408
        [<000000000048f864>] zfcp_scsi_queuecommand+0x11c/0x1e0
        [<00000000003f1f2a>] scsi_dispatch_cmd+0x1d6/0x324
        [<00000000003f9910>] scsi_request_fn+0x42c/0x56c
        [<00000000003828ae>] __blk_run_queue+0x86/0x140
        [<000000000037f742>] elv_insert+0x11a/0x208
        [<000000000038104c>] blk_insert_cloned_request+0x84/0xe4
        [<000003c0032b7c64>] dm_dispatch_request+0x6c/0x94 [dm_mod]
        [<000003c0032b7d5c>] map_request+0xd0/0x100 [dm_mod]
        [<000003c0032b9a78>] dm_request_fn+0xec/0x1bc [dm_mod]
        [<0000000000382c0e>] generic_unplug_device+0x5a/0x6c
        [<000003c0032b7f98>] dm_unplug_all+0x74/0x9c [dm_mod]
        [<00000000001d1272>] sync_page+0x76/0x9c
        [<00000000001d12ba>] sync_page_killable+0x22/0x60
        [<000000000055a768>] __wait_on_bit_lock+0xc0/0x124
        [<00000000001d1140>] __lock_page_killable+0x78/0x84
        [<00000000001d351c>] generic_file_aio_read+0x5a4/0x7e8
        [<0000000000228ec0>] do_sync_read+0xc8/0x12c
        [<0000000000229edc>] vfs_read+0xac/0x1ac
        [<000000000022a0d8>] SyS_read+0x58/0xa8
        [<00000000001146de>] sysc_noemu+0x10/0x16
        [<00000200000493c4>] 0x200000493c4
       INFO: lockdep is turned off.
      
      Call zfcp_fsf_fcp_cmnd without the host_lock and disable the
      interrupts when acquiring the req_q_lock. According to the patch
      description in "[PATCH] Eliminate error handler overload of the SCSI
      serial number", the serial_number is not used, so simply drop the
      queuecommand wrapper function and run zfcp_scsi_queuecommand without
      holding the host_lock.
      Reviewed-by: NSwen Schillig <swen@vnet.ibm.com>
      Signed-off-by: NChristof Schmitt <christof.schmitt@de.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      e55f8753
    • S
      [SCSI] zfcp: Correct false abort data assignment. · 6fbf25e8
      Swen Schillig 提交于
      The request data assignment between the fsf abort initiator and its
      corresponding handler is not consistent and leads to an unpredictable
      behaviour, e.g. kernel panic.  This patch fixes this issue and assigns
      the correct value.
      Signed-off-by: NSwen Schillig <swen@vnet.ibm.com>
      Signed-off-by: NChristof Schmitt <christof.schmitt@de.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      6fbf25e8
    • S
      [SCSI] zfcp: Fix common FCP request reception · 5bfb2c31
      Swen Schillig 提交于
      The reception of a common FCP request should only be evaluated if the
      corresponding SCSI request data is available. Therefore put the
      information under the lock protection and verify the existence before
      processing.  This fixes the following kernel panic.
      
      Unable to handle kernel pointer dereference at virtual kernel address 0000000180000000
      Oops: 003b [#1] PREEMPT SMP DEBUG_PAGEALLOC
      CPU: 0 Not tainted 2.6.35.7-45.x.20101007-s390xdefault #1
      Process blast (pid: 9711, task: 00000000a3be8e40, ksp: 00000000b221bac0)
      Krnl PSW : 0704300180000000 0000000000489878 (zfcp_fsf_fcp_handler_common+0x4c/0x3a0)
                 R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:3 PM:0 EA:3
      Krnl GPRS: 00000000b663c1b8 0000000180000000 000000007ab5bdf0 0000000000000000
                 00000000b0ccd800 0000000000000018 07000000a3be8e78 00000000b5d3e600
                 000000007ab5bdf0 0000000000000066 00000000b72137f0 00000000b72137f0
                 0000000000000000 00000000005a8178 00000000bdf37a60 00000000bdf379f0
      Krnl Code: 0000000000489866: e3c030000004       lg      %r12,0(%r3)
                 000000000048986c: e310c0000004       lg      %r1,0(%r12)
                 0000000000489872: e31011e00004       lg      %r1,480(%r1)
                >0000000000489878: 581011ec           l       %r1,492(%r1)
                 000000000048987c: a774001c           brc     7,4898b4
                 0000000000489880: b91400b1           lgfr    %r11,%r1
                 0000000000489884: 5810405c           l       %r1,92(%r4)
                 0000000000489888: 5510d00c           cl      %r1,12(%r13)
      Call Trace:
      ([<000000000010d344>] debug_event_common+0x22c/0x244)
       [<000000000048a0b4>] zfcp_fsf_fcp_cmnd_handler+0x2c/0x3b4
       [<000000000048b5b6>] zfcp_fsf_req_complete+0x1b6/0x9dc
       [<000000000048bede>] zfcp_fsf_reqid_check+0x102/0x138
       [<000000000048e478>] zfcp_qdio_int_resp+0x70/0x110
       [<000000000044a1ec>] qdio_kick_handler+0xb0/0x19c
       [<000000000044c228>] __tiqdio_inbound_processing+0x30c/0xebc
       [<000000000014a5fc>] tasklet_action+0x1b4/0x1e8
       [<000000000014b676>] __do_softirq+0x106/0x1cc
       [<000000000010d91a>] do_softirq+0xe6/0xec
       [<000000000014b0c8>] irq_exit+0xd4/0xd8
       [<00000000004307ec>] do_IRQ+0x7c0/0xf54
       [<0000000000114d28>] io_return+0x0/0x16
       [<000000000055fef0>] sub_preempt_count+0x50/0xe4
      ([<00000000b1f873c0>] 0xb1f873c0)
       [<000000000055e25a>] _raw_spin_unlock+0x46/0x74
       [<0000000000241c40>] __d_lookup+0x288/0x2c8
       [<000000000023502c>] do_lookup+0x7c/0x25c
       [<0000000000237fa8>] link_path_walk+0x5e4/0xe2c
       [<0000000000238a00>] path_walk+0x98/0x148
       [<0000000000238c98>] do_path_lookup+0x74/0xc0
       [<000000000023989c>] user_path_at+0x64/0xa4
       [<000000000022e366>] vfs_fstatat+0x4e/0xb0
       [<000000000022e4d6>] SyS_newstat+0x2e/0x54
       [<00000000001146de>] sysc_noemu+0x10/0x16
       [<0000020000153456>] 0x20000153456
      INFO: lockdep is turned off.
      Last Breaking-Event-Address:
       [<000000000048a0ae>] zfcp_fsf_fcp_cmnd_handler+0x26/0x3b4
      Signed-off-by: NSwen Schillig <swen@vnet.ibm.com>
      Signed-off-by: NChristof Schmitt <christof.schmitt@de.ibm.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      5bfb2c31
  17. 25 10月, 2010 1 次提交
  18. 17 9月, 2010 4 次提交