[Intel-gfx] [PATCH 1/2] drm/i915/dmabuf: fix broken build

Lucas De Marchi lucas.demarchi at intel.com
Wed Oct 27 17:16:34 UTC 2021


On Wed, Oct 27, 2021 at 05:23:59PM +0100, Matthew Auld wrote:
>On Wed, 27 Oct 2021 at 15:54, Lucas De Marchi <lucas.demarchi at intel.com> wrote:
>>
>> On Wed, Oct 27, 2021 at 08:57:48AM +0100, Matthew Auld wrote:
>> >On Thu, 21 Oct 2021 at 13:54, Matthew Auld <matthew.auld at intel.com> wrote:
>> >>
>> >> wbinvd_on_all_cpus() is only defined on x86 it seems, plus we need to
>> >> include asm/smp.h here.
>> >>
>> >> Reported-by: kernel test robot <lkp at intel.com>
>> >> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
>> >> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
>> >
>> >Jani, would it make sense to cherry-pick this to -fixes? The offending
>> >commit is in drm-next, and there have been a few reports around this.
>> >
>> >Fixes: a035154da45d ("drm/i915/dmabuf: add paranoid flush-on-acquire")
>> >
>> >
>> >> ---
>> >>  drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 7 +++++++
>> >>  1 file changed, 7 insertions(+)
>> >>
>> >> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
>> >> index 1adcd8e02d29..a45d0ec2c5b6 100644
>> >> --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
>> >> +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
>> >> @@ -12,6 +12,13 @@
>> >>  #include "i915_gem_object.h"
>> >>  #include "i915_scatterlist.h"
>> >>
>> >> +#if defined(CONFIG_X86)
>> >> +#include <asm/smp.h>
>> >> +#else
>> >> +#define wbinvd_on_all_cpus() \
>> >> +       pr_warn(DRIVER_NAME ": Missing cache flush in %s\n", __func__)
>>
>>
>> not sure I understand why this is a fix. Sure, it's true, but right now
>> this file can't be built on any other arch.
>>
>> For clflush, wbind, etc, I'd rather change the code to use things from
>> drm_cache rather than ifdef it out locally. This is
>> "Reported-by: kernel test robot <lkp at intel.com>", but what's the error?
>
>I guess it depends on the kernel config, but it reported:
>error: implicit declaration of function 'wbinvd_on_all_cpus'

oh, ok. The commit message was not very clear. Just checked and this also matches what is done
in gem/i915_gem_pm.c  (although gt/intel_ggtt.c just includes it
unconditionally)

>
>AFAIK it's the missing <asm/smp.h>, the CONFIG_X86 thing is just for
>good measure.
>
>I didn't spot anything in drm_cache which just offers a simple wrapper
>for wbinvd?

there isn't yet, but it's something we are adding as we add suppport for
other archs.

thanks
Lucas De Marchi

>
>>
>> Lucas De Marchi
>>
>> >> +#endif
>> >> +
>> >>  I915_SELFTEST_DECLARE(static bool force_different_devices;)
>> >>
>> >>  static struct drm_i915_gem_object *dma_buf_to_obj(struct dma_buf *buf)
>> >> --
>> >> 2.26.3
>> >>


More information about the Intel-gfx mailing list