• Oliver O'Halloran's avatar
    powerpc/powernv/sriov: Drop iov->pe_num_map[] · d29a2488
    Oliver O'Halloran authored
    Currently the iov->pe_num_map[] does one of two things depending on
    whether single PE mode is being used or not. When it is, this contains an
    array which maps a vf_index to the corresponding PE number. When single PE
    mode is not being used this contains a scalar which is the base PE for the
    set of enabled VFs (for for VFn is base + n).
    
    The array was necessary because when calling pnv_ioda_alloc_pe() there is
    no guarantee that the allocated PEs would be contigious. We can now
    allocate contigious blocks of PEs so this is no longer an issue. This
    allows us to drop the if (single_mode) {} .. else {} block scattered
    through the SR-IOV code which is a nice clean up.
    
    This also fixes a bug in pnv_pci_sriov_disable() which is the non-atomic
    bitmap_clear() to manipulate the PE allocation map. Other users of the map
    assume it will be accessed with atomic ops.
    Signed-off-by: default avatarOliver O'Halloran <oohall@gmail.com>
    Reviewed-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200722065715.1432738-11-oohall@gmail.com
    d29a2488
pci.h 11 KB