diff mbox series

[v2] drm/r128: fix build for UML

Message ID 20211010172955.30088-1-rdunlap@infradead.org
State Not Applicable
Headers show
Series [v2] drm/r128: fix build for UML | expand

Commit Message

Randy Dunlap Oct. 10, 2021, 5:29 p.m. UTC
Fix a build error on CONFIG_UML, which does not support (provide)
wbinvd(). UML can use the generic mb() instead.

../drivers/gpu/drm/r128/ati_pcigart.c: In function ‘drm_ati_pcigart_init’:
../drivers/gpu/drm/r128/ati_pcigart.c:218:2: error: implicit declaration of function ‘wbinvd’ [-Werror=implicit-function-declaration]
  wbinvd();
  ^~~~~~

Fixes: 68f5d3f3b654 ("um: add PCI over virtio emulation driver")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Richard Weinberger <richard@nod.at>
Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Cc: linux-um@lists.infradead.org
---
v2: update Fixes: tag (thanks, Johannes)

 drivers/gpu/drm/r128/ati_pcigart.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sam Ravnborg Oct. 10, 2021, 7:49 p.m. UTC | #1
Hi Randy,

On Sun, Oct 10, 2021 at 10:29:55AM -0700, Randy Dunlap wrote:
> Fix a build error on CONFIG_UML, which does not support (provide)
> wbinvd(). UML can use the generic mb() instead.
> 
> ../drivers/gpu/drm/r128/ati_pcigart.c: In function ‘drm_ati_pcigart_init’:
> ../drivers/gpu/drm/r128/ati_pcigart.c:218:2: error: implicit declaration of function ‘wbinvd’ [-Werror=implicit-function-declaration]
>   wbinvd();
>   ^~~~~~
> 
> Fixes: 68f5d3f3b654 ("um: add PCI over virtio emulation driver")
> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: dri-devel@lists.freedesktop.org
> Cc: Jeff Dike <jdike@addtoit.com>
> Cc: Richard Weinberger <richard@nod.at>
> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
> Cc: linux-um@lists.infradead.org
> ---
> v2: update Fixes: tag (thanks, Johannes)
> 
>  drivers/gpu/drm/r128/ati_pcigart.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> --- linux-next-20211007.orig/drivers/gpu/drm/r128/ati_pcigart.c
> +++ linux-next-20211007/drivers/gpu/drm/r128/ati_pcigart.c
> @@ -215,7 +215,7 @@ int drm_ati_pcigart_init(struct drm_devi
>  	}
>  	ret = 0;
>  
> -#if defined(__i386__) || defined(__x86_64__)
> +#if (defined(__i386__) || defined(__x86_64__)) && !defined(CONFIG_UML)
>  	wbinvd();
>  #else
>  	mb();

If we look at drivers/video/fbdev/i810/i810_main.h
then it looks like we can replace the above with a simple:
#ifdef CONFIG_X86
	wbinvd();
#else
	mb();
#endif

If you think this would work could you try it out.
It would be nicer with the simpler variant.

Note: I have no clue what wbinvd() does - seems like some x86 assembler
specific thingy.

	Sam
Randy Dunlap Oct. 10, 2021, 8:53 p.m. UTC | #2
On 10/10/21 12:49 PM, Sam Ravnborg wrote:
> Hi Randy,
> 
> On Sun, Oct 10, 2021 at 10:29:55AM -0700, Randy Dunlap wrote:
>> Fix a build error on CONFIG_UML, which does not support (provide)
>> wbinvd(). UML can use the generic mb() instead.
>>
>> ../drivers/gpu/drm/r128/ati_pcigart.c: In function ‘drm_ati_pcigart_init’:
>> ../drivers/gpu/drm/r128/ati_pcigart.c:218:2: error: implicit declaration of function ‘wbinvd’ [-Werror=implicit-function-declaration]
>>    wbinvd();
>>    ^~~~~~
>>
>> Fixes: 68f5d3f3b654 ("um: add PCI over virtio emulation driver")
>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
>> Cc: David Airlie <airlied@linux.ie>
>> Cc: Daniel Vetter <daniel@ffwll.ch>
>> Cc: dri-devel@lists.freedesktop.org
>> Cc: Jeff Dike <jdike@addtoit.com>
>> Cc: Richard Weinberger <richard@nod.at>
>> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com>
>> Cc: linux-um@lists.infradead.org
>> ---
>> v2: update Fixes: tag (thanks, Johannes)
>>
>>   drivers/gpu/drm/r128/ati_pcigart.c |    2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> --- linux-next-20211007.orig/drivers/gpu/drm/r128/ati_pcigart.c
>> +++ linux-next-20211007/drivers/gpu/drm/r128/ati_pcigart.c
>> @@ -215,7 +215,7 @@ int drm_ati_pcigart_init(struct drm_devi
>>   	}
>>   	ret = 0;
>>   
>> -#if defined(__i386__) || defined(__x86_64__)
>> +#if (defined(__i386__) || defined(__x86_64__)) && !defined(CONFIG_UML)
>>   	wbinvd();
>>   #else
>>   	mb();
> 
> If we look at drivers/video/fbdev/i810/i810_main.h
> then it looks like we can replace the above with a simple:
> #ifdef CONFIG_X86
> 	wbinvd();
> #else
> 	mb();
> #endif
> 
> If you think this would work could you try it out.
> It would be nicer with the simpler variant.

Hi Sam,
Good idea, thanks.

OK, I tested it, it works fine.

Will resend the patch later...

> Note: I have no clue what wbinvd() does - seems like some x86 assembler
> specific thingy.
diff mbox series

Patch

--- linux-next-20211007.orig/drivers/gpu/drm/r128/ati_pcigart.c
+++ linux-next-20211007/drivers/gpu/drm/r128/ati_pcigart.c
@@ -215,7 +215,7 @@  int drm_ati_pcigart_init(struct drm_devi
 	}
 	ret = 0;
 
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(CONFIG_UML)
 	wbinvd();
 #else
 	mb();