freebsd-dev/sys/dev/ocs_fc
Ram Kishore Vegesna b9732f789d Remove accessing remote node and domain objects while processing cam actions.
Issue:
  ocs_fc(4) driver panics. It's induced by setting the port_state
sysctl to offline, then online, then offline, then online, and so
forth and so on in rapid succession.

Reason:
  While we set the port_state to online fc discovery will start and OS
is enumerating the target discs by calling ocs_action(),  then set the
port state to "offline" which deletes domain/sport/nodes.

  In ocs_action()->XPT_GET_TRAN_SETTINGS we are accessing the remote
node which can be invalid to get the wwpn, wwnn and port.

Fix:
  Removed accessing of remote node and domain in some ocs_action() cases.
  Populated the required values from ocs_fcport.
  This removes the dependency of node and domain structures while
processing XPT_PATH_INQ and XPT_GET_TRAN_SETTINGS.
   We will invalidate the target entries after the device lost
timeout(30 seconds).

Approved by: ken, mav
MFC after: 3 weeks
2019-01-11 15:59:24 +00:00
..
ocs_cam.c Remove accessing remote node and domain objects while processing cam actions. 2019-01-11 15:59:24 +00:00
ocs_cam.h
ocs_common.h
ocs_ddump.c
ocs_ddump.h
ocs_device.c
ocs_device.h
ocs_domain.c
ocs_domain.h
ocs_drv_fc.h
ocs_els.c
ocs_els.h
ocs_fabric.c
ocs_fabric.h
ocs_fcp.h
ocs_hw_queues.c
ocs_hw_queues.h
ocs_hw.c
ocs_hw.h
ocs_io.c
ocs_io.h
ocs_ioctl.c Use the right buffer size when calling snprintf(). 2018-07-22 18:31:15 +00:00
ocs_ioctl.h
ocs_list.h
ocs_mgmt.c Issue: 2018-06-05 15:05:26 +00:00
ocs_mgmt.h
ocs_node.c
ocs_node.h
ocs_os.c Clear out the entire structure, not just the size of a pointer to it. 2018-05-11 14:50:26 +00:00
ocs_os.h Moved opts-stack.h include before all other includes. 2018-04-17 15:29:32 +00:00
ocs_pci.c Implemented Device Lost Timer, which is used to give target device the time to recover before marking dead. 2018-07-18 07:01:34 +00:00
ocs_scsi.c
ocs_scsi.h
ocs_sm.c
ocs_sm.h
ocs_sport.c Fix build of ocs_fs with base gcc on i386 2018-06-11 07:57:32 +00:00
ocs_sport.h
ocs_stats.h
ocs_unsol.c
ocs_unsol.h
ocs_utils.c
ocs_utils.h
ocs_vpd.h
ocs_xport.c Implemented Device Lost Timer, which is used to give target device the time to recover before marking dead. 2018-07-18 07:01:34 +00:00
ocs_xport.h
ocs.h Remove accessing remote node and domain objects while processing cam actions. 2019-01-11 15:59:24 +00:00
sli4.c
sli4.h
version.h