• Shradha Shah's avatar
    sfc: create vports for VFs and assign random MAC addresses · 3c5eb876
    Shradha Shah authored
    The parent PF creates vports for all its child VFs and adds MAC
    addresses to these.  When the VF driver loads, it can make an MCDI
    call to get the MAC address that the parent PF assigned it.
    
    The parent PF also assigns a mac address to its own vport because
    implicit creation of a vAdaptor will only work on evb ports with
    MAC addresses assigned.
    
    The vport MAC address needs to be stored in the PF's nic_data
    struct as it can later be changed on the vadaptor (and its net_dev
    struct). When removing a vport the original MAC address must be
    deleted.
    
    A new flag is needed in the VF data structure to identify whether
    a vport has been assigned to the VF.  This is to determine whether
    it needs to be un-assigned before freeing the vport.  Also,
    attempting to un-assign a vport which is not assigned will result
    in an EALREADY error.
    Signed-off-by: default avatarShradha Shah <sshah@solarflare.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3c5eb876
ef10_sriov.c 9.12 KB