[PATCH] drm/xe/pf: Don't advertise support to enable VFs if not ready
Piotr Piórkowski
piotr.piorkowski at intel.com
Tue May 14 10:50:00 UTC 2024
Michal Wajdeczko <michal.wajdeczko at intel.com> wrote on wto [2024-maj-07 18:57:57 +0200]:
> Even if we have not enabled SR-IOV support using the platform
> specific has_sriov flag, the hardware may still report SR-IOV
> capability and the PCI layer may wrongly advertise driver support
> to enable VFs. Explicitly reset the number of supported VFs to
> zero to avoid confusion.
>
> Applications may read the /sys/bus/pci/devices/.../sriov_totalvfs
> prior to enabling VFs using the sriov_numvfs to check if such an
> operation is possible.
>
> Signed-off-by: Michal Wajdeczko <michal.wajdeczko at intel.com>
> ---
> drivers/gpu/drm/xe/xe_sriov.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/xe/xe_sriov.c b/drivers/gpu/drm/xe/xe_sriov.c
> index 1c3fa84b6adb..a274a5fb1401 100644
> --- a/drivers/gpu/drm/xe/xe_sriov.c
> +++ b/drivers/gpu/drm/xe/xe_sriov.c
> @@ -53,6 +53,7 @@ static bool test_is_vf(struct xe_device *xe)
> */
> void xe_sriov_probe_early(struct xe_device *xe)
> {
> + struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> enum xe_sriov_mode mode = XE_SRIOV_MODE_NONE;
> bool has_sriov = xe->info.has_sriov;
>
> @@ -61,6 +62,16 @@ void xe_sriov_probe_early(struct xe_device *xe)
> mode = XE_SRIOV_MODE_VF;
> else if (xe_sriov_pf_readiness(xe))
> mode = XE_SRIOV_MODE_PF;
> + } else if (pci_sriov_get_totalvfs(pdev)) {
> + /*
> + * Even if we have not enabled SR-IOV support using the
> + * platform specific has_sriov flag, the hardware may still
> + * report SR-IOV capability and the PCI layer may wrongly
> + * advertise driver support to enable VFs. Explicitly reset
> + * the number of supported VFs to zero to avoid confusion.
> + */
> + drm_info(&xe->drm, "Support for SR-IOV is not available\n");
> + pci_sriov_set_totalvfs(pdev, 0);
> }
LGTM:
Reviewed-by: Piotr Piórkowski <piotr.piorkowski at intel.com>
>
> xe_assert(xe, !xe->sriov.__mode);
> --
> 2.43.0
>
--
More information about the Intel-xe
mailing list