Message ID | 20211010172955.30088-1-rdunlap@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] drm/r128: fix build for UML | expand |
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.
--- 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();
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(-)