]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/xe/configfs: Always return consistent max_vfs value
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Wed, 21 Jan 2026 21:42:14 +0000 (22:42 +0100)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 3 Feb 2026 11:02:05 +0000 (12:02 +0100)
The max_vfs parameter used by the Xe driver has its default value
definition, but it could be altered by the module parameter or by
the device specific configfs attribute.

To avoid mistakes or code duplication, always rely on the configfs
helper (or stub), which will provide necessary fallback if needed.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/20260121214218.2817-4-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_configfs.c
drivers/gpu/drm/xe/xe_configfs.h
drivers/gpu/drm/xe/xe_sriov_pf.c

index 82edd046600557d79e846db21d1a03cd4c737dcf..5a54ca67d3dcc946352e803ab7441153a62d05de 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "instructions/xe_mi_commands.h"
 #include "xe_configfs.h"
+#include "xe_defaults.h"
 #include "xe_gt_types.h"
 #include "xe_hw_engine_types.h"
 #include "xe_module.h"
@@ -280,7 +281,7 @@ static const struct xe_config_device device_defaults = {
        .survivability_mode = false,
        .enable_psmi = false,
        .sriov = {
-               .max_vfs = UINT_MAX,
+               .max_vfs = XE_DEFAULT_MAX_VFS,
        },
 };
 
index 510888354a7c1f774b99a93056662f8c81ea71a4..e0a555b871b3da6445155f26c59194689a68be29 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/types.h>
 
 #include "xe_hw_engine_types.h"
+#include "xe_module.h"
 
 struct pci_dev;
 
@@ -41,7 +42,12 @@ static inline u32 xe_configfs_get_ctx_restore_mid_bb(struct pci_dev *pdev, enum
                                                     const u32 **cs) { return 0; }
 static inline u32 xe_configfs_get_ctx_restore_post_bb(struct pci_dev *pdev, enum xe_engine_class,
                                                      const u32 **cs) { return 0; }
-static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev) { return UINT_MAX; }
+#ifdef CONFIG_PCI_IOV
+static inline unsigned int xe_configfs_get_max_vfs(struct pci_dev *pdev)
+{
+       return xe_modparam.max_vfs;
+}
+#endif
 #endif
 
 #endif
index 6ce3c58e003c79c0727da0c8ae774275d6a3637f..33bd754d138fa64609cce1ea05d2e09fde5f9963 100644 (file)
@@ -22,9 +22,7 @@
 
 static unsigned int wanted_max_vfs(struct xe_device *xe)
 {
-       if (IS_ENABLED(CONFIG_CONFIGFS_FS))
-               return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
-       return xe_modparam.max_vfs;
+       return xe_configfs_get_max_vfs(to_pci_dev(xe->drm.dev));
 }
 
 static int pf_reduce_totalvfs(struct xe_device *xe, int limit)