Message ID | 20240921180612.57657-2-fgasperin@lkcamp.dev |
---|---|
State | New |
Headers | show |
Series | staging: sm750: Fix missing config in Kconfig | expand |
On Sat, Sep 21, 2024 at 03:06:09PM -0300, Fabricio Gasperin wrote: > Fixes the following compilation error: > > ERROR: modpost: "fb_io_read" [drivers/staging/sm750fb/sm750fb.ko] undefined! > ERROR: modpost: "fb_io_write" [drivers/staging/sm750fb/sm750fb.ko] undefined! > ERROR: modpost: "fb_io_mmap" [drivers/staging/sm750fb/sm750fb.ko] undefined! > > Signed-off-by: Fabricio Gasperin <fgasperin@lkcamp.dev> > --- > drivers/staging/sm750fb/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/staging/sm750fb/Kconfig b/drivers/staging/sm750fb/Kconfig > index 08bcccdd0f1c..eca1aa43d725 100644 > --- a/drivers/staging/sm750fb/Kconfig > +++ b/drivers/staging/sm750fb/Kconfig > @@ -3,6 +3,7 @@ config FB_SM750 > tristate "Silicon Motion SM750 framebuffer support" > depends on FB && PCI && HAS_IOPORT > select FB_MODE_HELPERS > + select FB_IOMEM_FOPS > select FB_CFB_FILLRECT > select FB_CFB_COPYAREA > select FB_CFB_IMAGEBLIT > -- > 2.46.1 > > What is causing this error? What commit created the problem, and why has no one reported it yet? confused, greg k-h
Hi Greg, On 10/9/24 06:56, Greg Kroah-Hartman wrote: > On Sat, Sep 21, 2024 at 03:06:09PM -0300, Fabricio Gasperin wrote: >> Fixes the following compilation error: >> >> ERROR: modpost: "fb_io_read" [drivers/staging/sm750fb/sm750fb.ko] undefined! >> ERROR: modpost: "fb_io_write" [drivers/staging/sm750fb/sm750fb.ko] undefined! >> ERROR: modpost: "fb_io_mmap" [drivers/staging/sm750fb/sm750fb.ko] undefined! >> >> Signed-off-by: Fabricio Gasperin <fgasperin@lkcamp.dev> >> --- >> drivers/staging/sm750fb/Kconfig | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/staging/sm750fb/Kconfig b/drivers/staging/sm750fb/Kconfig >> index 08bcccdd0f1c..eca1aa43d725 100644 >> --- a/drivers/staging/sm750fb/Kconfig >> +++ b/drivers/staging/sm750fb/Kconfig >> @@ -3,6 +3,7 @@ config FB_SM750 >> tristate "Silicon Motion SM750 framebuffer support" >> depends on FB && PCI && HAS_IOPORT >> select FB_MODE_HELPERS >> + select FB_IOMEM_FOPS >> select FB_CFB_FILLRECT >> select FB_CFB_COPYAREA >> select FB_CFB_IMAGEBLIT >> -- >> 2.46.1 >> >> > > What is causing this error? What commit created the problem, and why > has no one reported it yet? This happens because drivers/staging/sm750fb/sm750.c, defines an fb_ops structure: static const struct fb_ops lynxfb_ops = { .owner = THIS_MODULE, FB_DEFAULT_IOMEM_OPS, ... }; FB_DEFAULT_IOMEM_OPS expands to the fb_io_* helpers declared in include/linux/fb.h and defined in drivers/video/fbdev/core/fb_io_fops.c; however, the latter is gated by FB_IOMEM_FOPS, so when compiling a kernel with CONFIG_STAGING=y + CONFIG_FB=m + CONFIG_FB_SM750=m, you get the following error: ERROR: modpost: "fb_io_read" [drivers/staging/sm750fb/sm750fb.ko] undefined! ERROR: modpost: "fb_io_write" [drivers/staging/sm750fb/sm750fb.ko] undefined! ERROR: modpost: "fb_io_mmap" [drivers/staging/sm750fb/sm750fb.ko] undefined! make[2]: *** [scripts/Makefile.modpost:145: Module.symvers] Error 1 So in order to solve it we select FB_IOMEM_FOPS, much like the other FB_* drivers do in drivers/video/fbdev/Kconfig. Not entirely sure why this wasn't caught before, but the commit that broke the build for sm750fb is 6b180f66c0dd ("fbdev: Provide I/O-memory helpers as module"), which made the fb_io_* helpers be built as a separate module instead of being bundled in fb.o (which is what sm750fb was relying on). I think Fabricio can add a "Fixes:" tag in v2. Thanks, Vinicius > > confused, > > greg k-h
On Wed, Oct 09, 2024 at 10:44:38AM -0300, Vinicius Peixoto wrote: > Hi Greg, > > On 10/9/24 06:56, Greg Kroah-Hartman wrote: > > On Sat, Sep 21, 2024 at 03:06:09PM -0300, Fabricio Gasperin wrote: > > > Fixes the following compilation error: > > > > > > ERROR: modpost: "fb_io_read" [drivers/staging/sm750fb/sm750fb.ko] undefined! > > > ERROR: modpost: "fb_io_write" [drivers/staging/sm750fb/sm750fb.ko] undefined! > > > ERROR: modpost: "fb_io_mmap" [drivers/staging/sm750fb/sm750fb.ko] undefined! > > > > > > Signed-off-by: Fabricio Gasperin <fgasperin@lkcamp.dev> > > > --- > > > drivers/staging/sm750fb/Kconfig | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/drivers/staging/sm750fb/Kconfig b/drivers/staging/sm750fb/Kconfig > > > index 08bcccdd0f1c..eca1aa43d725 100644 > > > --- a/drivers/staging/sm750fb/Kconfig > > > +++ b/drivers/staging/sm750fb/Kconfig > > > @@ -3,6 +3,7 @@ config FB_SM750 > > > tristate "Silicon Motion SM750 framebuffer support" > > > depends on FB && PCI && HAS_IOPORT > > > select FB_MODE_HELPERS > > > + select FB_IOMEM_FOPS > > > select FB_CFB_FILLRECT > > > select FB_CFB_COPYAREA > > > select FB_CFB_IMAGEBLIT > > > -- > > > 2.46.1 > > > > > > > > > > What is causing this error? What commit created the problem, and why > > has no one reported it yet? > > This happens because drivers/staging/sm750fb/sm750.c, defines an fb_ops > structure: > > static const struct fb_ops lynxfb_ops = { > .owner = THIS_MODULE, > FB_DEFAULT_IOMEM_OPS, > ... > }; > > FB_DEFAULT_IOMEM_OPS expands to the fb_io_* helpers declared in > include/linux/fb.h and defined in drivers/video/fbdev/core/fb_io_fops.c; > however, the latter is gated by FB_IOMEM_FOPS, so when compiling a kernel > with CONFIG_STAGING=y + CONFIG_FB=m + CONFIG_FB_SM750=m, you get the > following error: > > ERROR: modpost: "fb_io_read" [drivers/staging/sm750fb/sm750fb.ko] undefined! > ERROR: modpost: "fb_io_write" [drivers/staging/sm750fb/sm750fb.ko] > undefined! > ERROR: modpost: "fb_io_mmap" [drivers/staging/sm750fb/sm750fb.ko] undefined! > make[2]: *** [scripts/Makefile.modpost:145: Module.symvers] Error 1 > > So in order to solve it we select FB_IOMEM_FOPS, much like the other FB_* > drivers do in drivers/video/fbdev/Kconfig. > > Not entirely sure why this wasn't caught before, but the commit that broke > the build for sm750fb is 6b180f66c0dd ("fbdev: Provide I/O-memory helpers as > module"), which made the fb_io_* helpers be built as a separate module > instead of being bundled in fb.o (which is what sm750fb was relying on). I > think Fabricio can add a "Fixes:" tag in v2. Ok, thanks for the explaination. All of this should go into the changelog text, and yes, a Fixes: tag is also required. thanks, greg k-h
diff --git a/drivers/staging/sm750fb/Kconfig b/drivers/staging/sm750fb/Kconfig index 08bcccdd0f1c..eca1aa43d725 100644 --- a/drivers/staging/sm750fb/Kconfig +++ b/drivers/staging/sm750fb/Kconfig @@ -3,6 +3,7 @@ config FB_SM750 tristate "Silicon Motion SM750 framebuffer support" depends on FB && PCI && HAS_IOPORT select FB_MODE_HELPERS + select FB_IOMEM_FOPS select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT
Fixes the following compilation error: ERROR: modpost: "fb_io_read" [drivers/staging/sm750fb/sm750fb.ko] undefined! ERROR: modpost: "fb_io_write" [drivers/staging/sm750fb/sm750fb.ko] undefined! ERROR: modpost: "fb_io_mmap" [drivers/staging/sm750fb/sm750fb.ko] undefined! Signed-off-by: Fabricio Gasperin <fgasperin@lkcamp.dev> --- drivers/staging/sm750fb/Kconfig | 1 + 1 file changed, 1 insertion(+)