Commit 94545f27 authored by Thomas Zimmermann's avatar Thomas Zimmermann

arch/x86: Include <asm/fb.h> in fbdev source file

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 # 1
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230424084751.14641-1-tzimmermann@suse.de
parent cec5ccef
...@@ -2,21 +2,11 @@ ...@@ -2,21 +2,11 @@
#ifndef _ASM_X86_FB_H #ifndef _ASM_X86_FB_H
#define _ASM_X86_FB_H #define _ASM_X86_FB_H
#include <asm/page.h>
struct fb_info; struct fb_info;
struct file; struct file;
struct vm_area_struct;
static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma, void fb_pgprotect(struct file *file, struct vm_area_struct *vma, unsigned long off);
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);
}
#define fb_pgprotect fb_pgprotect #define fb_pgprotect fb_pgprotect
int fb_is_primary_device(struct fb_info *info); int fb_is_primary_device(struct fb_info *info);
......
...@@ -6,11 +6,25 @@ ...@@ -6,11 +6,25 @@
* for more details. * for more details.
* *
*/ */
#include <asm/fb.h>
#include <linux/fb.h> #include <linux/fb.h>
#include <linux/pci.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/pci.h>
#include <linux/vgaarb.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) int fb_is_primary_device(struct fb_info *info)
{ {
struct device *device = info->device; struct device *device = info->device;
...@@ -26,4 +40,5 @@ int fb_is_primary_device(struct fb_info *info) ...@@ -26,4 +40,5 @@ int fb_is_primary_device(struct fb_info *info)
return 0; return 0;
} }
EXPORT_SYMBOL(fb_is_primary_device); EXPORT_SYMBOL(fb_is_primary_device);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment