android_kernel_motorola_sm6375/include/scsi
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Robert Love 9d34876f82 libfcoe: Make fcoe_sysfs optional / fix fnic NULL exception
fnic doesn't use any of the create/destroy/enable/disable interfaces
either from the (legacy) module paramaters or the (new) fcoe_sysfs
interfaces. When fcoe_sysfs was introduced fnic wasn't changed since
it wasn't using the interfaces. libfcoe incorrectly assumed that that
all of its users were using fcoe_sysfs and when adding and deleting
FCFs would assume the existance of a fcoe_ctlr_device. fnic was not
allocating this structure because it doesn't care about the standard
user interfaces (fnic starts on link only). If/When libfcoe tried to use
the fcoe_ctlr_device's lock for the first time a NULL pointer exception
would be triggered.

Since fnic doesn't care about sysfs or user interfaces, the solution
is to drop libfcoe's assumption that all drivers are using fcoe_sysfs.

This patch accomplishes this by changing some of the structure
relationships.

We need a way to determine when a LLD is using fcoe_sysfs or not and
we can do that by checking for the existance of the fcoe_ctlr_device.
Prior to this patch, it was assumed that the fcoe_ctlr structure was
allocated with the fcoe_ctlr_device and immediately followed it in
memory. To reach the fcoe_ctlr_device we would simply go back in memory
from the fcoe_ctlr to get the fcoe_ctlr_device.

Since fnic doesn't allocate the fcoe_ctlr_device, we cannot keep that
assumption. This patch adds a pointer from the fcoe_ctlr to the
fcoe_ctlr_device. For bnx2fc and fcoe we will continue to allocate the
two structures together, but then we'll set the ctlr->cdev pointer
to point at the fcoe_ctlr_device. fnic will not change and will continue
to allocate the fcoe_ctlr itself, and ctlr->cdev will remain NULL.

When libfcoe adds fcoe_fcf's to the fcoe_ctlr it will check if ctlr->cdev
is set and only if so will it continue to interact with fcoe_sysfs.

Signed-off-by: Robert Love <robert.w.love@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Tested-by: Hiral Patel <hiralpat@cisco.com>
2013-10-11 13:25:40 -07:00
..
fc libfc: Source code comment spelling fixes 2013-09-04 12:47:49 -07:00
fc_encode.h
fc_frame.h
fcoe_sysfs.h libfcoe, fcoe, bnx2fc: Add new fcoe control interface 2012-12-14 10:38:54 -08:00
iscsi_if.h [SCSI] libiscsi: Added new boot entries in the session sysfs 2013-06-26 18:04:11 -07:00
iscsi_proto.h
libfc.h libfc: Do not invoke the response handler after fc_exch_done() 2013-09-04 13:45:22 -07:00
libfcoe.h libfcoe: Make fcoe_sysfs optional / fix fnic NULL exception 2013-10-11 13:25:40 -07:00
libiscsi.h [SCSI] libiscsi: Added new boot entries in the session sysfs 2013-06-26 18:04:11 -07:00
libiscsi_tcp.h
libsas.h [SCSI] libsas: implement > 16 byte CDB support 2013-06-04 11:15:59 -07:00
libsrp.h
osd_attributes.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
osd_initiator.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
osd_ore.h
osd_protocol.h [SCSI] libosd: remover duplicate __bitwise annotation 2013-05-02 12:15:10 -07:00
osd_sec.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
osd_sense.h
osd_types.h
sas.h [SCSI] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type 2013-05-10 07:47:52 -07:00
sas_ata.h [SCSI] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type 2013-05-10 07:47:52 -07:00
scsi.h [SCSI] Allow error handling timeout to be specified 2013-06-04 11:16:24 -07:00
scsi_bsg_iscsi.h
scsi_cmnd.h [SCSI] Shorten the path length of scsi_cmd_to_driver() 2012-10-09 12:04:42 +01:00
scsi_dbg.h
scsi_device.h [SCSI] Allow error handling timeout to be specified 2013-06-04 11:16:24 -07:00
scsi_devinfo.h [SCSI] Workaround for disks that report bad optimal transfer length 2013-06-24 13:00:10 -07:00
scsi_dh.h [SCSI] scsi_dh: add scsi_dh_attached_handler_name 2012-07-20 08:58:42 +01:00
scsi_driver.h
scsi_eh.h
scsi_host.h scsi: bury ->proc_info() 2013-04-09 14:13:29 -04:00
scsi_ioctl.h
scsi_tcq.h
scsi_tgt.h
scsi_tgt_if.h
scsi_transport.h
scsi_transport_fc.h
scsi_transport_iscsi.h [SCSI] iscsi class, qla4xxx: fix sess/conn refcounting when find fns are used 2013-05-10 07:47:53 -07:00
scsi_transport_sas.h [SCSI] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type 2013-05-10 07:47:52 -07:00
scsi_transport_spi.h
scsi_transport_srp.h IB/srp: Allow SRP disconnect through sysfs 2012-11-30 17:40:33 -08:00
scsicam.h
sg.h
srp.h