From: Arnd Bergmann <arnd@xxxxxxxx> 32-bit kernels do not provide a writeq(), failing the build: drivers/gpu/drm/xe/xe_ggtt.c:78:2: error: use of undeclared identifier 'writeq' 78 | writeq(pte, &ggtt->gsm[addr >> XE_PTE_SHIFT]); Using lo_hi_writeq() instead will write the lower 32 bits to the address before writing the upper 32 bits to the following word, which is likely the correct replacement to do on 32-bit targets. Include the linux/io-64-nonatomic-lo-hi.h header to automatically pick the regular writeq() on 64-bit machines but fall back to lo_hi_writeq() on 32-bit ones. Fixes: 237412e45390 ("drm/xe: Enable 32bits build") Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> --- drivers/gpu/drm/xe/xe_ggtt.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c index 5d46958e3144..1ffcc63ca86d 100644 --- a/drivers/gpu/drm/xe/xe_ggtt.c +++ b/drivers/gpu/drm/xe/xe_ggtt.c @@ -6,6 +6,7 @@ #include "xe_ggtt.h" #include <linux/sizes.h> +#include <linux/io-64-nonatomic-lo-hi.h> #include <drm/drm_managed.h> #include <drm/i915_drm.h> -- 2.39.2