• Robert Love's avatar
    [SCSI] fcoe: Allocate fcoe_ctlr with fcoe_interface, not as a member · 619fe4be
    Robert Love authored
    Currently the fcoe_ctlr associated with an interface is allocated
    as a member of struct fcoe_interface. This causes problems when
    attempting to use the new fcoe_sysfs APIs which allow us to allocate
    the fcoe_interface as private data to the fcoe_ctlr_device instance.
    The problem is that libfcoe wants to be able use pointer math to find a
    fcoe_ctlr's fcoe_ctlr_device as well as finding a fcoe_ctlr_device's
    assocated fcoe_ctlr. To do this we need to allocate the
    fcoe_ctlr_device, with private data for the LLD. The private data
    contains the fcoe_ctlr and its private data is the fcoe_interface.
    This patch only allocates the fcoe_interface with the fcoe_ctlr, the
    fcoe_ctlr_device will be added in a later patch, which will complete
    the below diagram-
    
    +------------------+
    | fcoe_ctlr_device |
    +------------------+
    | fcoe_ctlr        |
    +------------------+
    | fcoe_interface   |
    +------------------+
    
    This prep work will allow us to go from a fcoe_ctlr_device instance
    to its fcoe_ctlr as well as from a fcoe_ctlr to its fcoe_ctlr_device
    once the fcoe_sysfs API is in use (later patches in this series).
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    619fe4be
fcoe.c 72.3 KB