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();
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
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.
dri-devel@lists.freedesktop.org