[PATCH] xe: fix drm_gpusvm_init() arguments

Arnd Bergmann posted 1 patch 2 weeks, 1 day ago
drivers/gpu/drm/xe/xe_svm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] xe: fix drm_gpusvm_init() arguments
Posted by Arnd Bergmann 2 weeks, 1 day ago
From: Arnd Bergmann <arnd@arndb.de>

The Xe driver fails to build when CONFIG_DRM_XE_GPUSVM is disabled
but CONFIG_DRM_GPUSVM is turned on, jdue to the clash of two commits:

In file included from drivers/gpu/drm/xe/xe_vm_madvise.c:8:
drivers/gpu/drm/xe/xe_svm.h: In function 'xe_svm_init':
include/linux/stddef.h:8:14: error: passing argument 5 of 'drm_gpusvm_init' makes integer from pointer without a cast [-Wint-conversion]
drivers/gpu/drm/xe/xe_svm.h:217:38: note: in expansion of macro 'NULL'
  217 |                                NULL, NULL, 0, 0, 0, NULL, NULL, 0);
      |                                      ^~~~
In file included from drivers/gpu/drm/xe/xe_bo_types.h:11,
                 from drivers/gpu/drm/xe/xe_bo.h:11,
                 from drivers/gpu/drm/xe/xe_vm_madvise.c:11:
include/drm/drm_gpusvm.h:254:35: note: expected 'long unsigned int' but argument is of type 'void *'
  254 |                     unsigned long mm_start, unsigned long mm_range,
      |                     ~~~~~~~~~~~~~~^~~~~~~~
In file included from drivers/gpu/drm/xe/xe_vm_madvise.c:14:
drivers/gpu/drm/xe/xe_svm.h:216:16: error: too many arguments to function 'drm_gpusvm_init'; expected 10, have 11
  216 |         return drm_gpusvm_init(&vm->svm.gpusvm, "Xe SVM (simple)", &vm->xe->drm,
      |                ^~~~~~~~~~~~~~~
  217 |                                NULL, NULL, 0, 0, 0, NULL, NULL, 0);
      |                                                                 ~
include/drm/drm_gpusvm.h:251:5: note: declared here

Adapt the caller to the new argument list by removing the extraneous
NULL argument.

Fixes: 9e9787414882 ("drm/xe/userptr: replace xe_hmm with gpusvm")
Fixes: 10aa5c806030 ("drm/gpusvm, drm/xe: Fix userptr to not allow device private pages")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/gpu/drm/xe/xe_svm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_svm.h b/drivers/gpu/drm/xe/xe_svm.h
index 0955d2ac8d74..fa757dd07954 100644
--- a/drivers/gpu/drm/xe/xe_svm.h
+++ b/drivers/gpu/drm/xe/xe_svm.h
@@ -214,7 +214,7 @@ int xe_svm_init(struct xe_vm *vm)
 {
 #if IS_ENABLED(CONFIG_DRM_GPUSVM)
 	return drm_gpusvm_init(&vm->svm.gpusvm, "Xe SVM (simple)", &vm->xe->drm,
-			       NULL, NULL, 0, 0, 0, NULL, NULL, 0);
+			       NULL, 0, 0, 0, NULL, NULL, 0);
 #else
 	return 0;
 #endif
-- 
2.39.5
Re: [PATCH] xe: fix drm_gpusvm_init() arguments
Posted by Thomas Hellström 2 weeks, 1 day ago
On Thu, 2025-12-04 at 10:46 +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The Xe driver fails to build when CONFIG_DRM_XE_GPUSVM is disabled
> but CONFIG_DRM_GPUSVM is turned on, jdue to the clash of two commits:

s/jdue/due/

> 
> In file included from drivers/gpu/drm/xe/xe_vm_madvise.c:8:
> drivers/gpu/drm/xe/xe_svm.h: In function 'xe_svm_init':
> include/linux/stddef.h:8:14: error: passing argument 5 of
> 'drm_gpusvm_init' makes integer from pointer without a cast [-Wint-
> conversion]
> drivers/gpu/drm/xe/xe_svm.h:217:38: note: in expansion of macro
> 'NULL'
>   217 |                                NULL, NULL, 0, 0, 0, NULL,
> NULL, 0);
>       |                                      ^~~~
> In file included from drivers/gpu/drm/xe/xe_bo_types.h:11,
>                  from drivers/gpu/drm/xe/xe_bo.h:11,
>                  from drivers/gpu/drm/xe/xe_vm_madvise.c:11:
> include/drm/drm_gpusvm.h:254:35: note: expected 'long unsigned int'
> but argument is of type 'void *'
>   254 |                     unsigned long mm_start, unsigned long
> mm_range,
>       |                     ~~~~~~~~~~~~~~^~~~~~~~
> In file included from drivers/gpu/drm/xe/xe_vm_madvise.c:14:
> drivers/gpu/drm/xe/xe_svm.h:216:16: error: too many arguments to
> function 'drm_gpusvm_init'; expected 10, have 11
>   216 |         return drm_gpusvm_init(&vm->svm.gpusvm, "Xe SVM
> (simple)", &vm->xe->drm,
>       |                ^~~~~~~~~~~~~~~
>   217 |                                NULL, NULL, 0, 0, 0, NULL,
> NULL, 0);
>      
> |                                                                 ~
> include/drm/drm_gpusvm.h:251:5: note: declared here
> 
> Adapt the caller to the new argument list by removing the extraneous
> NULL argument.
> 
> Fixes: 9e9787414882 ("drm/xe/userptr: replace xe_hmm with gpusvm")
> Fixes: 10aa5c806030 ("drm/gpusvm, drm/xe: Fix userptr to not allow
> device private pages")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Thanks,

Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>

I'll wait for CI before commiting. 
For the above typo, Do you want to resubmit or should I fix up when
committing?

Thanks,
Thomas



> ---
>  drivers/gpu/drm/xe/xe_svm.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_svm.h
> b/drivers/gpu/drm/xe/xe_svm.h
> index 0955d2ac8d74..fa757dd07954 100644
> --- a/drivers/gpu/drm/xe/xe_svm.h
> +++ b/drivers/gpu/drm/xe/xe_svm.h
> @@ -214,7 +214,7 @@ int xe_svm_init(struct xe_vm *vm)
>  {
>  #if IS_ENABLED(CONFIG_DRM_GPUSVM)
>  	return drm_gpusvm_init(&vm->svm.gpusvm, "Xe SVM (simple)",
> &vm->xe->drm,
> -			       NULL, NULL, 0, 0, 0, NULL, NULL, 0);
> +			       NULL, 0, 0, 0, NULL, NULL, 0);
>  #else
>  	return 0;
>  #endif