[XEN PATCH v4] drivers/video: make declarations of defined functions available

Nicola Vetrini posted 1 patch 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/5830a4d838883a20a6b320dd9af44ef4bb18ddaa.1695632599.git.nicola.vetrini@bugseng.com
xen/arch/x86/include/asm/setup.h  | 6 ------
xen/arch/x86/platform_hypercall.c | 2 +-
xen/arch/x86/pv/dom0_build.c      | 2 +-
xen/drivers/video/vga.c           | 8 --------
xen/include/xen/console.h         | 2 --
xen/include/xen/vga.h             | 6 ++++++
6 files changed, 8 insertions(+), 18 deletions(-)
[XEN PATCH v4] drivers/video: make declarations of defined functions available
Posted by Nicola Vetrini 7 months ago
The declarations for 'vesa_{init,early_init,endboot}' needed by
'xen/drivers/video/vesa.c' and 'fill_console_start_info' in 'vga.c'
are now available by moving the relative code inside 'vga.h'.

While moving the code, the alternative definitions are now guarded by
CONFIG_VGA. The alternative #define-s for 'vesa_early_init' and 'vesa_endboot'
are dropped, since currently they have no callers when CONFIG_VGA is not defined. 

This also resolves violations of MISRA C:2012 Rule 8.4.

Fixes: 6d9199bd0f22 ("x86-64: enable hypervisor output on VESA frame buffer")
Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Moved fill_console_start_info to vga.h
  (21bee1787021 introduced this function)
Changes in v3:
- Changed the preprocessor guard
- Replace the inclusions of <xen/console.h> with <xen/vga.h> where needed.
Changes in v4:
- Reworded commit message
- Removed superfluous stub definitions
---
 xen/arch/x86/include/asm/setup.h  | 6 ------
 xen/arch/x86/platform_hypercall.c | 2 +-
 xen/arch/x86/pv/dom0_build.c      | 2 +-
 xen/drivers/video/vga.c           | 8 --------
 xen/include/xen/console.h         | 2 --
 xen/include/xen/vga.h             | 6 ++++++
 6 files changed, 8 insertions(+), 18 deletions(-)

diff --git a/xen/arch/x86/include/asm/setup.h b/xen/arch/x86/include/asm/setup.h
index b0e6a39e2365..dfdd9e555149 100644
--- a/xen/arch/x86/include/asm/setup.h
+++ b/xen/arch/x86/include/asm/setup.h
@@ -25,12 +25,6 @@ void subarch_init_memory(void);
 
 void init_IRQ(void);
 
-#ifdef CONFIG_VIDEO
-void vesa_init(void);
-#else
-static inline void vesa_init(void) {};
-#endif
-
 int construct_dom0(
     struct domain *d,
     const module_t *image, unsigned long image_headroom,
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
index 9ff2da8fc324..9469de9045c7 100644
--- a/xen/arch/x86/platform_hypercall.c
+++ b/xen/arch/x86/platform_hypercall.c
@@ -14,7 +14,6 @@
 #include <xen/event.h>
 #include <xen/domain_page.h>
 #include <xen/trace.h>
-#include <xen/console.h>
 #include <xen/iocap.h>
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
@@ -24,6 +23,7 @@
 #include <xen/pmstat.h>
 #include <xen/irq.h>
 #include <xen/symbols.h>
+#include <xen/vga.h>
 #include <asm/current.h>
 #include <public/platform.h>
 #include <acpi/cpufreq/processor_perf.h>
diff --git a/xen/arch/x86/pv/dom0_build.c b/xen/arch/x86/pv/dom0_build.c
index 909ee9a899a4..5bbed3a36a21 100644
--- a/xen/arch/x86/pv/dom0_build.c
+++ b/xen/arch/x86/pv/dom0_build.c
@@ -4,7 +4,6 @@
  * Copyright (c) 2002-2005, K A Fraser
  */
 
-#include <xen/console.h>
 #include <xen/domain.h>
 #include <xen/domain_page.h>
 #include <xen/init.h>
@@ -13,6 +12,7 @@
 #include <xen/pfn.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
+#include <xen/vga.h>
 
 #include <asm/bzimage.h>
 #include <asm/dom0_build.h>
diff --git a/xen/drivers/video/vga.c b/xen/drivers/video/vga.c
index 0a03508bee60..18b590cdf072 100644
--- a/xen/drivers/video/vga.c
+++ b/xen/drivers/video/vga.c
@@ -54,14 +54,6 @@ string_param("vga", opt_vga);
 static unsigned int columns, lines;
 #define ATTRIBUTE   7
 
-#ifdef CONFIG_X86
-void vesa_early_init(void);
-void vesa_endboot(bool_t keep);
-#else
-#define vesa_early_init() ((void)0)
-#define vesa_endboot(x)   ((void)0)
-#endif
-
 void __init video_init(void)
 {
     char *p;
diff --git a/xen/include/xen/console.h b/xen/include/xen/console.h
index 53c56191ba9e..ab5c30c0daf2 100644
--- a/xen/include/xen/console.h
+++ b/xen/include/xen/console.h
@@ -20,8 +20,6 @@ void console_init_postirq(void);
 void console_endboot(void);
 int console_has(const char *device);
 
-int fill_console_start_info(struct dom0_vga_console_info *);
-
 unsigned long console_lock_recursive_irqsave(void);
 void console_unlock_recursive_irqrestore(unsigned long flags);
 void console_force_unlock(void);
diff --git a/xen/include/xen/vga.h b/xen/include/xen/vga.h
index f72b63d446b1..9b2c47971d0c 100644
--- a/xen/include/xen/vga.h
+++ b/xen/include/xen/vga.h
@@ -13,6 +13,12 @@
 
 #ifdef CONFIG_VGA
 extern struct xen_vga_console_info vga_console_info;
+int fill_console_start_info(struct dom0_vga_console_info *);
+void vesa_init(void);
+void vesa_early_init(void);
+void vesa_endboot(bool keep);
+#else
+static inline void vesa_init(void) {};
 #endif
 
 #endif /* _XEN_VGA_H */
-- 
2.34.1
Re: [XEN PATCH v4] drivers/video: make declarations of defined functions available
Posted by andrew.cooper3@citrix.com 7 months ago
On 25/09/2023 10:11 am, Nicola Vetrini wrote:
> diff --git a/xen/include/xen/vga.h b/xen/include/xen/vga.h
> index f72b63d446b1..9b2c47971d0c 100644
> --- a/xen/include/xen/vga.h
> +++ b/xen/include/xen/vga.h
> @@ -13,6 +13,12 @@
>  
>  #ifdef CONFIG_VGA
>  extern struct xen_vga_console_info vga_console_info;
> +int fill_console_start_info(struct dom0_vga_console_info *);

ci

> +void vesa_init(void);
> +void vesa_early_init(void);
> +void vesa_endboot(bool keep);
> +#else
> +static inline void vesa_init(void) {};

Extraneous ;

Both can be fixed on commit, but we're in code freeze now, so every
patch needs approving by the release manager (Henry, CC'd)

~Andrew
Re: [XEN PATCH v4] drivers/video: make declarations of defined functions available
Posted by Jan Beulich 7 months ago
On 25.09.2023 12:53, andrew.cooper3@citrix.com wrote:
> On 25/09/2023 10:11 am, Nicola Vetrini wrote:
>> diff --git a/xen/include/xen/vga.h b/xen/include/xen/vga.h
>> index f72b63d446b1..9b2c47971d0c 100644
>> --- a/xen/include/xen/vga.h
>> +++ b/xen/include/xen/vga.h
>> @@ -13,6 +13,12 @@
>>  
>>  #ifdef CONFIG_VGA
>>  extern struct xen_vga_console_info vga_console_info;
>> +int fill_console_start_info(struct dom0_vga_console_info *);
> 
> ci
> 
>> +void vesa_init(void);
>> +void vesa_early_init(void);
>> +void vesa_endboot(bool keep);
>> +#else
>> +static inline void vesa_init(void) {};
> 
> Extraneous ;

And with these adjustments
Acked-by: Jan Beulich <jbeulich@suse.com>

> Both can be fixed on commit, but we're in code freeze now, so every
> patch needs approving by the release manager (Henry, CC'd)
> 
> ~Andrew
Re: [XEN PATCH v4] drivers/video: make declarations of defined functions available
Posted by Henry Wang 7 months ago
Hi Andrew,

> On Sep 25, 2023, at 18:53, andrew.cooper3@citrix.com wrote:
> 
> On 25/09/2023 10:11 am, Nicola Vetrini wrote:
>> diff --git a/xen/include/xen/vga.h b/xen/include/xen/vga.h
>> index f72b63d446b1..9b2c47971d0c 100644
>> --- a/xen/include/xen/vga.h
>> +++ b/xen/include/xen/vga.h
>> @@ -13,6 +13,12 @@
>> 
>> #ifdef CONFIG_VGA
>> extern struct xen_vga_console_info vga_console_info;
>> +int fill_console_start_info(struct dom0_vga_console_info *);
> 
> ci
> 
>> +void vesa_init(void);
>> +void vesa_early_init(void);
>> +void vesa_endboot(bool keep);
>> +#else
>> +static inline void vesa_init(void) {};
> 
> Extraneous ;
> 
> Both can be fixed on commit, but we're in code freeze now, so every
> patch needs approving by the release manager (Henry, CC'd)

That is very nice of you, yes please kindly fix on commit, feel free to
take my tag:

Release-acked-by: Henry Wang <Henry.Wang@arm.com>

Kind regards,
Henry

> 
> ~Andrew