Skip to content
  • Robert Love's avatar
    [SCSI] bnx2fc: Allocate fcoe_ctlr with bnx2fc_interface, not as a member · fd8f8902
    Robert Love authored
    
    
        Currently the fcoe_ctlr associated with an interface is allocated
        as a member of struct bnx2fc_interface. This causes problems when
        when later patches attempt to use the new fcoe_sysfs APIs which
        allow us to allocate the bnx2fc_interface as private data to a
        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 will contain the fcoe_ctlr
        and its private data will be the bnx2fc_interface.
    
        +-------------------+
        | fcoe_ctlr_device  |
        +-------------------+
        | fcoe_ctlr         |
        +-------------------+
        | bnx2fc_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>
    fd8f8902