diff mbox series

drm/xe: Add xe_guc_ads.c to uses_generated_oob

Message ID 20240410-drm-xe-fix-xe_guc_ads-using-xe_wa_oob-v1-1-441f2d8e5d83@kernel.org (mailing list archive)
State New, archived
Headers show
Series drm/xe: Add xe_guc_ads.c to uses_generated_oob | expand

Commit Message

Nathan Chancellor April 10, 2024, 6:16 p.m. UTC
A recent change added a use of xe_wa_oob.h without adding the file that
uses it to uses_generated_oob, which means xe_wa_oob.h does not get
properly generated before attempting to build the object file:

    LINK     resolve_btfids
    CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
  drivers/gpu/drm/xe/xe_guc_ads.c:10:10: fatal error: generated/xe_wa_oob.h: No such file or directory
     10 | #include <generated/xe_wa_oob.h>
        |          ^~~~~~~~~~~~~~~~~~~~~~~

After adding '$(obj)/xe_guc_ads.o' to uses_generated_oob, xe_wa_oob.h is
always generated before building the file, resulting in no errors:

    LINK     resolve_btfids
    HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
    GEN     xe_wa_oob.c xe_wa_oob.h
    CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o

Fixes: c151ff5c9053 ("drm/xe/lnl: Enable GuC Wa_14019882105")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
 drivers/gpu/drm/xe/Makefile | 1 +
 1 file changed, 1 insertion(+)


---
base-commit: 9c1857d587e91dfc10875a8c1083360db047404f
change-id: 20240410-drm-xe-fix-xe_guc_ads-using-xe_wa_oob-9cb394101ad8

Best regards,

Comments

Lucas De Marchi April 10, 2024, 7:29 p.m. UTC | #1
On Wed, Apr 10, 2024 at 11:16:11AM -0700, Nathan Chancellor wrote:
>A recent change added a use of xe_wa_oob.h without adding the file that
>uses it to uses_generated_oob, which means xe_wa_oob.h does not get
>properly generated before attempting to build the object file:
>
>    LINK     resolve_btfids
>    CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
>  drivers/gpu/drm/xe/xe_guc_ads.c:10:10: fatal error: generated/xe_wa_oob.h: No such file or directory
>     10 | #include <generated/xe_wa_oob.h>
>        |          ^~~~~~~~~~~~~~~~~~~~~~~
>
>After adding '$(obj)/xe_guc_ads.o' to uses_generated_oob, xe_wa_oob.h is
>always generated before building the file, resulting in no errors:
>
>    LINK     resolve_btfids
>    HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
>    GEN     xe_wa_oob.c xe_wa_oob.h
>    CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
>
>Fixes: c151ff5c9053 ("drm/xe/lnl: Enable GuC Wa_14019882105")
>Signed-off-by: Nathan Chancellor <nathan@kernel.org>


Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>

and pushed to drm-xe-next.

We probably need to find a way to make sure we generate it before
anything else. Maybe it'd be simpler to just do this:

	diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
	index 60c90dc918b2..f34a12e3f47d 100644
	--- a/drivers/gpu/drm/xe/Makefile
	+++ b/drivers/gpu/drm/xe/Makefile
	@@ -46,18 +46,6 @@ $(obj)/generated/%_wa_oob.c $(obj)/generated/%_wa_oob.h: $(obj)/xe_gen_wa_oob \
			 $(srctree)/$(src)/xe_wa_oob.rules
		$(call cmd,wa_oob)
	 
	-uses_generated_oob := \
	-       $(obj)/xe_gsc.o \
	-       $(obj)/xe_guc.o \
	-       $(obj)/xe_guc_ads.o \
	-       $(obj)/xe_migrate.o \
	-       $(obj)/xe_ring_ops.o \
	-       $(obj)/xe_vm.o \
	-       $(obj)/xe_wa.o \
	-       $(obj)/xe_ttm_stolen_mgr.o
	-
	-$(uses_generated_oob): $(generated_oob)
	-
	 # Please keep these build lists sorted!
	 
	 # core driver code
	@@ -322,3 +310,6 @@ quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@)
	 
	 $(obj)/%.hdrtest: $(src)/%.h FORCE
		$(call if_changed_dep,hdrtest)
	+
	+uses_generated_oob := $(xe-y)
	+$(uses_generated_oob): $(generated_oob)

Apparently works for me:

$ touch drivers/gpu/drm/xe/xe_wa_oob.rules
$ make O=build64 -j$(nproc)
make[1]: Entering directory '/home/lucas/p/linux-dim/drm-xe-next/build64'
   GEN     Makefile
mkdir -p /home/lucas/p/linux-dim/drm-xe-next/build64/tools/objtool && make O=/home/lucas/p/linux-dim/drm-xe-next/build64 subdir=tools/objtool --no-print-directory -C objtool
   INSTALL libsubcmd_headers
   CALL    ../scripts/checksyscalls.sh
   HOSTCC  drivers/gpu/drm/xe/xe_gen_wa_oob
   GEN     xe_wa_oob.c xe_wa_oob.h
   CC [M]  drivers/gpu/drm/xe/xe_gsc.o
   CC [M]  drivers/gpu/drm/xe/xe_guc.o
   CC [M]  drivers/gpu/drm/xe/xe_guc_ads.o
   CC [M]  drivers/gpu/drm/xe/xe_migrate.o
   CC [M]  drivers/gpu/drm/xe/xe_ring_ops.o
   CC [M]  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.o
   CC [M]  drivers/gpu/drm/xe/xe_vm.o
   CC [M]  drivers/gpu/drm/xe/xe_wa.o
   LD [M]  drivers/gpu/drm/xe/xe.o
   MODPOST Module.symvers
Kernel: arch/x86/boot/bzImage is ready  (#1)
   LD [M]  drivers/gpu/drm/xe/xe.ko
make[1]: Leaving directory '/home/lucas/p/linux-dim/drm-xe-next/build64'


thanks
Lucas De Marchi
diff mbox series

Patch

diff --git a/drivers/gpu/drm/xe/Makefile b/drivers/gpu/drm/xe/Makefile
index e106767c9a6e..60c90dc918b2 100644
--- a/drivers/gpu/drm/xe/Makefile
+++ b/drivers/gpu/drm/xe/Makefile
@@ -49,6 +49,7 @@  $(obj)/generated/%_wa_oob.c $(obj)/generated/%_wa_oob.h: $(obj)/xe_gen_wa_oob \
 uses_generated_oob := \
 	$(obj)/xe_gsc.o \
 	$(obj)/xe_guc.o \
+	$(obj)/xe_guc_ads.o \
 	$(obj)/xe_migrate.o \
 	$(obj)/xe_ring_ops.o \
 	$(obj)/xe_vm.o \