arch/x86: Include <asm/fb.h> in fbdev source file
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 24 Apr 2023 08:47:51 +0000 (10:47 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Wed, 26 Apr 2023 13:07:57 +0000 (15:07 +0200)
Move the implementation of fb_pgprotect() to fbdev.c and include
<asm/fb.h>. Fixes the following warning:

  ../arch/x86/video/fbdev.c:14:5: warning: no previous prototype for 'fb_is_primary_device' [-Wmissing-prototypes]
     14 | int fb_is_primary_device(struct fb_info *info)
        |     ^~~~~~~~~~~~~~~~~~~~

Just including <asm/fb.h> results in a number of built-in errors
about undefined function. Moving fb_pgprotect() to the source file
avoids the required include statements in the header. The function
is only called occasionally from fb_mmap(), [1] so having it as static
inline had no benefit.

While at it, fix the codying style in fbdev.c.

Link: https://elixir.bootlin.com/linux/v6.3-rc7/source/drivers/video/fbdev/core/fbmem.c#L1404
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230424084751.14641-1-tzimmermann@suse.de
arch/x86/include/asm/fb.h
arch/x86/video/fbdev.c

index a3fb801f12f182eab4d6d48b90d40589bb2c49d5..23873da8fb77c4c12aaf552d4ddb7c1649255f84 100644 (file)
@@ -2,21 +2,11 @@
 #ifndef _ASM_X86_FB_H
 #define _ASM_X86_FB_H
 
-#include <asm/page.h>
-
 struct fb_info;
 struct file;
+struct vm_area_struct;
 
-static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
-                               unsigned long off)
-{
-       unsigned long prot;
-
-       prot = pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK;
-       if (boot_cpu_data.x86 > 3)
-               pgprot_val(vma->vm_page_prot) =
-                       prot | cachemode2protval(_PAGE_CACHE_MODE_UC_MINUS);
-}
+void fb_pgprotect(struct file *file, struct vm_area_struct *vma, unsigned long off);
 #define fb_pgprotect fb_pgprotect
 
 int fb_is_primary_device(struct fb_info *info);
index 5ec4eafbb981192e05b508b248a34e424eed435c..57ee3c158f976d5f942df3e590f65845de8d2351 100644 (file)
@@ -6,11 +6,25 @@
  * for more details.
  *
  */
+
+#include <asm/fb.h>
+
 #include <linux/fb.h>
-#include <linux/pci.h>
 #include <linux/module.h>
+#include <linux/pci.h>
 #include <linux/vgaarb.h>
 
+void fb_pgprotect(struct file *file, struct vm_area_struct *vma, unsigned long off)
+{
+       unsigned long prot;
+
+       prot = pgprot_val(vma->vm_page_prot) & ~_PAGE_CACHE_MASK;
+       if (boot_cpu_data.x86 > 3)
+               pgprot_val(vma->vm_page_prot) =
+                       prot | cachemode2protval(_PAGE_CACHE_MODE_UC_MINUS);
+}
+EXPORT_SYMBOL(fb_pgprotect);
+
 int fb_is_primary_device(struct fb_info *info)
 {
        struct device *device = info->device;
@@ -26,4 +40,5 @@ int fb_is_primary_device(struct fb_info *info)
        return 0;
 }
 EXPORT_SYMBOL(fb_is_primary_device);
+
 MODULE_LICENSE("GPL");