* [PATCH 0/2] xen: Silence compiler warnings
@ 2014-07-11 19:54 Daniel Kiper
2014-07-11 19:54 ` [PATCH 1/2] " Daniel Kiper
2014-07-11 19:54 ` [PATCH 2/2] arch/x86/xen: " Daniel Kiper
0 siblings, 2 replies; 7+ messages in thread
From: Daniel Kiper @ 2014-07-11 19:54 UTC (permalink / raw)
To: linux-kernel, x86, xen-devel
Cc: andrew.cooper3, boris.ostrovsky, david.vrabel, hpa, ian.campbell,
jbeulich, jeremy, konrad.wilk, matt.fleming, mingo,
stefano.stabellini, tglx
Hi,
Here are two patches that follow earlier Xen dom0 EFI series and
fix some compiler warnings found during detailed build tests.
Both patches should be applied to:
git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git next
Daniel
PS I will be on vacation from 14th Jul till 25th Jul.
arch/x86/xen/enlighten.c | 35 ++++++++++++++++++++++-------------
include/xen/xen-ops.h | 2 +-
2 files changed, 23 insertions(+), 14 deletions(-)
Daniel Kiper (2):
xen: Silence compiler warnings
arch/x86/xen: Silence compiler warnings
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH 1/2] xen: Silence compiler warnings 2014-07-11 19:54 [PATCH 0/2] xen: Silence compiler warnings Daniel Kiper @ 2014-07-11 19:54 ` Daniel Kiper 2014-07-11 19:54 ` [PATCH 2/2] arch/x86/xen: " Daniel Kiper 1 sibling, 0 replies; 7+ messages in thread From: Daniel Kiper @ 2014-07-11 19:54 UTC (permalink / raw) To: linux-kernel, x86, xen-devel Cc: andrew.cooper3, boris.ostrovsky, david.vrabel, hpa, ian.campbell, jbeulich, jeremy, konrad.wilk, matt.fleming, mingo, stefano.stabellini, tglx Add inline keyword to silence the following compiler warnings if xen_efi_probe() is not used: CC arch/x86/xen/setup.o In file included from arch/x86/xen/xen-ops.h:7:0, from arch/x86/xen/setup.c:31: include/xen/xen-ops.h:43:35: warning: ‘xen_efi_probe’ defined but not used [-Wunused-function] Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> --- include/xen/xen-ops.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h index 771bbba..7491ee5 100644 --- a/include/xen/xen-ops.h +++ b/include/xen/xen-ops.h @@ -40,7 +40,7 @@ bool xen_running_on_version_or_later(unsigned int major, unsigned int minor); #ifdef CONFIG_XEN_EFI extern efi_system_table_t *xen_efi_probe(void); #else -static efi_system_table_t __init *xen_efi_probe(void) +static inline efi_system_table_t __init *xen_efi_probe(void) { return NULL; } -- 1.7.10.4 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] arch/x86/xen: Silence compiler warnings 2014-07-11 19:54 [PATCH 0/2] xen: Silence compiler warnings Daniel Kiper 2014-07-11 19:54 ` [PATCH 1/2] " Daniel Kiper @ 2014-07-11 19:54 ` Daniel Kiper 2014-07-11 20:03 ` Boris Ostrovsky 1 sibling, 1 reply; 7+ messages in thread From: Daniel Kiper @ 2014-07-11 19:54 UTC (permalink / raw) To: linux-kernel, x86, xen-devel Cc: andrew.cooper3, boris.ostrovsky, david.vrabel, hpa, ian.campbell, jbeulich, jeremy, konrad.wilk, matt.fleming, mingo, stefano.stabellini, tglx Compiler complains in the following way when x86 32-bit kernel with Xen support is build: CC arch/x86/xen/enlighten.o arch/x86/xen/enlighten.c: In function ‘xen_start_kernel’: arch/x86/xen/enlighten.c:1726:3: warning: right shift count >= width of type [enabled by default] Such line contains following EFI initialization code: boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); There is no issue if x86 64-bit kernel is build. However, 32-bit case generate warning (even if that code will not be executed because Xen does not work on 32-bit EFI platforms) due to __pa() returning unsigned long type which has 32-bits width. So move whole EFI initialization stuff to separate function and build its body conditionally to avoid above mentioned warning on x86 32-bit architecture. Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> --- arch/x86/xen/enlighten.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index bc89647..6abec74 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c @@ -1516,12 +1516,32 @@ static void __init xen_pvh_early_guest_init(void) #endif } +static void __init xen_efi_init(void) +{ +#ifdef CONFIG_XEN_EFI + efi_system_table_t *efi_systab_xen; + + efi_systab_xen = xen_efi_probe(); + + if (efi_systab_xen == NULL) + return; + + strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", + sizeof(boot_params.efi_info.efi_loader_signature)); + boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); + boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); + + set_bit(EFI_BOOT, &efi.flags); + set_bit(EFI_PARAVIRT, &efi.flags); + set_bit(EFI_64BIT, &efi.flags); +#endif +} + /* First C function to be called on Xen boot */ asmlinkage __visible void __init xen_start_kernel(void) { struct physdev_set_iopl set_iopl; int rc; - efi_system_table_t *efi_systab_xen; if (!xen_start_info) return; @@ -1717,18 +1737,7 @@ asmlinkage __visible void __init xen_start_kernel(void) xen_setup_runstate_info(0); - efi_systab_xen = xen_efi_probe(); - - if (efi_systab_xen) { - strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", - sizeof(boot_params.efi_info.efi_loader_signature)); - boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); - boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); - - set_bit(EFI_BOOT, &efi.flags); - set_bit(EFI_PARAVIRT, &efi.flags); - set_bit(EFI_64BIT, &efi.flags); - } + xen_efi_init(); /* Start the world */ #ifdef CONFIG_X86_32 -- 1.7.10.4 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] arch/x86/xen: Silence compiler warnings 2014-07-11 19:54 ` [PATCH 2/2] arch/x86/xen: " Daniel Kiper @ 2014-07-11 20:03 ` Boris Ostrovsky 2014-07-11 20:10 ` Daniel Kiper 0 siblings, 1 reply; 7+ messages in thread From: Boris Ostrovsky @ 2014-07-11 20:03 UTC (permalink / raw) To: Daniel Kiper, linux-kernel, x86, xen-devel Cc: andrew.cooper3, david.vrabel, hpa, ian.campbell, jbeulich, jeremy, konrad.wilk, matt.fleming, mingo, stefano.stabellini, tglx On 07/11/2014 03:54 PM, Daniel Kiper wrote: > Compiler complains in the following way when x86 32-bit kernel > with Xen support is build: > > CC arch/x86/xen/enlighten.o > arch/x86/xen/enlighten.c: In function ‘xen_start_kernel’: > arch/x86/xen/enlighten.c:1726:3: warning: right shift count >= width of type [enabled by default] > > Such line contains following EFI initialization code: > > boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > > There is no issue if x86 64-bit kernel is build. However, 32-bit case > generate warning (even if that code will not be executed because Xen > does not work on 32-bit EFI platforms) due to __pa() returning unsigned long > type which has 32-bits width. So move whole EFI initialization stuff > to separate function and build its body conditionally to avoid above > mentioned warning on x86 32-bit architecture. > > Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> > --- > arch/x86/xen/enlighten.c | 35 ++++++++++++++++++++++------------- > 1 file changed, 22 insertions(+), 13 deletions(-) > > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > index bc89647..6abec74 100644 > --- a/arch/x86/xen/enlighten.c > +++ b/arch/x86/xen/enlighten.c > @@ -1516,12 +1516,32 @@ static void __init xen_pvh_early_guest_init(void) > #endif > } > > +static void __init xen_efi_init(void) > +{ > +#ifdef CONFIG_XEN_EFI > + efi_system_table_t *efi_systab_xen; > + > + efi_systab_xen = xen_efi_probe(); > + > + if (efi_systab_xen == NULL) > + return; > + > + strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", > + sizeof(boot_params.efi_info.efi_loader_signature)); > + boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); > + boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > + > + set_bit(EFI_BOOT, &efi.flags); > + set_bit(EFI_PARAVIRT, &efi.flags); > + set_bit(EFI_64BIT, &efi.flags); > +#endif > +} > + > /* First C function to be called on Xen boot */ > asmlinkage __visible void __init xen_start_kernel(void) > { > struct physdev_set_iopl set_iopl; > int rc; > - efi_system_table_t *efi_systab_xen; > > if (!xen_start_info) > return; > @@ -1717,18 +1737,7 @@ asmlinkage __visible void __init xen_start_kernel(void) > > xen_setup_runstate_info(0); > > - efi_systab_xen = xen_efi_probe(); > - > - if (efi_systab_xen) { > - strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", > - sizeof(boot_params.efi_info.efi_loader_signature)); > - boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); > - boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > - > - set_bit(EFI_BOOT, &efi.flags); > - set_bit(EFI_PARAVIRT, &efi.flags); > - set_bit(EFI_64BIT, &efi.flags); > - } > + xen_efi_init(); I'd put ifdef CONFIG_XEN_EFI around the call instead of having it inside the routine. -boris > > /* Start the world */ > #ifdef CONFIG_X86_32 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] arch/x86/xen: Silence compiler warnings 2014-07-11 20:03 ` Boris Ostrovsky @ 2014-07-11 20:10 ` Daniel Kiper 2014-07-11 20:32 ` Boris Ostrovsky 0 siblings, 1 reply; 7+ messages in thread From: Daniel Kiper @ 2014-07-11 20:10 UTC (permalink / raw) To: Boris Ostrovsky Cc: linux-kernel, x86, xen-devel, andrew.cooper3, david.vrabel, hpa, ian.campbell, jbeulich, jeremy, konrad.wilk, matt.fleming, mingo, stefano.stabellini, tglx On Fri, Jul 11, 2014 at 04:03:46PM -0400, Boris Ostrovsky wrote: > On 07/11/2014 03:54 PM, Daniel Kiper wrote: > >Compiler complains in the following way when x86 32-bit kernel > >with Xen support is build: > > > > CC arch/x86/xen/enlighten.o > >arch/x86/xen/enlighten.c: In function ‘xen_start_kernel’: > >arch/x86/xen/enlighten.c:1726:3: warning: right shift count >= width of type [enabled by default] > > > >Such line contains following EFI initialization code: > > > >boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > > > >There is no issue if x86 64-bit kernel is build. However, 32-bit case > >generate warning (even if that code will not be executed because Xen > >does not work on 32-bit EFI platforms) due to __pa() returning unsigned long > >type which has 32-bits width. So move whole EFI initialization stuff > >to separate function and build its body conditionally to avoid above > >mentioned warning on x86 32-bit architecture. > > > >Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> > >--- > > arch/x86/xen/enlighten.c | 35 ++++++++++++++++++++++------------- > > 1 file changed, 22 insertions(+), 13 deletions(-) > > > >diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > >index bc89647..6abec74 100644 > >--- a/arch/x86/xen/enlighten.c > >+++ b/arch/x86/xen/enlighten.c > >@@ -1516,12 +1516,32 @@ static void __init xen_pvh_early_guest_init(void) > > #endif > > } > >+static void __init xen_efi_init(void) > >+{ > >+#ifdef CONFIG_XEN_EFI > >+ efi_system_table_t *efi_systab_xen; > >+ > >+ efi_systab_xen = xen_efi_probe(); > >+ > >+ if (efi_systab_xen == NULL) > >+ return; > >+ > >+ strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", > >+ sizeof(boot_params.efi_info.efi_loader_signature)); > >+ boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); > >+ boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > >+ > >+ set_bit(EFI_BOOT, &efi.flags); > >+ set_bit(EFI_PARAVIRT, &efi.flags); > >+ set_bit(EFI_64BIT, &efi.flags); > >+#endif > >+} > >+ > > /* First C function to be called on Xen boot */ > > asmlinkage __visible void __init xen_start_kernel(void) > > { > > struct physdev_set_iopl set_iopl; > > int rc; > >- efi_system_table_t *efi_systab_xen; > > if (!xen_start_info) > > return; > >@@ -1717,18 +1737,7 @@ asmlinkage __visible void __init xen_start_kernel(void) > > xen_setup_runstate_info(0); > >- efi_systab_xen = xen_efi_probe(); > >- > >- if (efi_systab_xen) { > >- strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", > >- sizeof(boot_params.efi_info.efi_loader_signature)); > >- boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); > >- boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > >- > >- set_bit(EFI_BOOT, &efi.flags); > >- set_bit(EFI_PARAVIRT, &efi.flags); > >- set_bit(EFI_64BIT, &efi.flags); > >- } > >+ xen_efi_init(); > > I'd put ifdef CONFIG_XEN_EFI around the call instead of having it > inside the routine. Well, I thought about that a bit and I prefer function like Konrad. Could you agree with him which solution do you (as maintainers) prefer? Daniel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] arch/x86/xen: Silence compiler warnings 2014-07-11 20:10 ` Daniel Kiper @ 2014-07-11 20:32 ` Boris Ostrovsky 2014-07-11 23:45 ` Daniel Kiper 0 siblings, 1 reply; 7+ messages in thread From: Boris Ostrovsky @ 2014-07-11 20:32 UTC (permalink / raw) To: Daniel Kiper Cc: linux-kernel, x86, xen-devel, andrew.cooper3, david.vrabel, hpa, ian.campbell, jbeulich, jeremy, konrad.wilk, matt.fleming, mingo, stefano.stabellini, tglx On 07/11/2014 04:10 PM, Daniel Kiper wrote: > On Fri, Jul 11, 2014 at 04:03:46PM -0400, Boris Ostrovsky wrote: >> On 07/11/2014 03:54 PM, Daniel Kiper wrote: >>> Compiler complains in the following way when x86 32-bit kernel >>> with Xen support is build: >>> >>> CC arch/x86/xen/enlighten.o >>> arch/x86/xen/enlighten.c: In function ‘xen_start_kernel’: >>> arch/x86/xen/enlighten.c:1726:3: warning: right shift count >= width of type [enabled by default] >>> >>> Such line contains following EFI initialization code: >>> >>> boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); >>> >>> There is no issue if x86 64-bit kernel is build. However, 32-bit case >>> generate warning (even if that code will not be executed because Xen >>> does not work on 32-bit EFI platforms) due to __pa() returning unsigned long >>> type which has 32-bits width. So move whole EFI initialization stuff >>> to separate function and build its body conditionally to avoid above >>> mentioned warning on x86 32-bit architecture. >>> >>> Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> >>> --- >>> arch/x86/xen/enlighten.c | 35 ++++++++++++++++++++++------------- >>> 1 file changed, 22 insertions(+), 13 deletions(-) >>> >>> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c >>> index bc89647..6abec74 100644 >>> --- a/arch/x86/xen/enlighten.c >>> +++ b/arch/x86/xen/enlighten.c >>> @@ -1516,12 +1516,32 @@ static void __init xen_pvh_early_guest_init(void) >>> #endif >>> } >>> +static void __init xen_efi_init(void) >>> +{ >>> +#ifdef CONFIG_XEN_EFI >>> + efi_system_table_t *efi_systab_xen; >>> + >>> + efi_systab_xen = xen_efi_probe(); >>> + >>> + if (efi_systab_xen == NULL) >>> + return; >>> + >>> + strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", >>> + sizeof(boot_params.efi_info.efi_loader_signature)); >>> + boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); >>> + boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); >>> + >>> + set_bit(EFI_BOOT, &efi.flags); >>> + set_bit(EFI_PARAVIRT, &efi.flags); >>> + set_bit(EFI_64BIT, &efi.flags); >>> +#endif >>> +} >>> + >>> /* First C function to be called on Xen boot */ >>> asmlinkage __visible void __init xen_start_kernel(void) >>> { >>> struct physdev_set_iopl set_iopl; >>> int rc; >>> - efi_system_table_t *efi_systab_xen; >>> if (!xen_start_info) >>> return; >>> @@ -1717,18 +1737,7 @@ asmlinkage __visible void __init xen_start_kernel(void) >>> xen_setup_runstate_info(0); >>> - efi_systab_xen = xen_efi_probe(); >>> - >>> - if (efi_systab_xen) { >>> - strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", >>> - sizeof(boot_params.efi_info.efi_loader_signature)); >>> - boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); >>> - boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); >>> - >>> - set_bit(EFI_BOOT, &efi.flags); >>> - set_bit(EFI_PARAVIRT, &efi.flags); >>> - set_bit(EFI_64BIT, &efi.flags); >>> - } >>> + xen_efi_init(); >> I'd put ifdef CONFIG_XEN_EFI around the call instead of having it >> inside the routine. > Well, I thought about that a bit and I prefer function like Konrad. > Could you agree with him which solution do you (as maintainers) prefer? > I am not arguing against having a separate routine. All I am saying is that calling xen_efi_init() when CONFIG_XEN_EFI is not defined doesn't look logical. It will also add an unnecessary call (although compiler may optimize it out). -boris ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] arch/x86/xen: Silence compiler warnings 2014-07-11 20:32 ` Boris Ostrovsky @ 2014-07-11 23:45 ` Daniel Kiper 0 siblings, 0 replies; 7+ messages in thread From: Daniel Kiper @ 2014-07-11 23:45 UTC (permalink / raw) To: Boris Ostrovsky Cc: linux-kernel, x86, xen-devel, andrew.cooper3, david.vrabel, hpa, ian.campbell, jbeulich, jeremy, konrad.wilk, matt.fleming, mingo, stefano.stabellini, tglx On Fri, Jul 11, 2014 at 04:32:27PM -0400, Boris Ostrovsky wrote: > On 07/11/2014 04:10 PM, Daniel Kiper wrote: > >On Fri, Jul 11, 2014 at 04:03:46PM -0400, Boris Ostrovsky wrote: > >>On 07/11/2014 03:54 PM, Daniel Kiper wrote: > >>>Compiler complains in the following way when x86 32-bit kernel > >>>with Xen support is build: > >>> > >>> CC arch/x86/xen/enlighten.o > >>>arch/x86/xen/enlighten.c: In function ‘xen_start_kernel’: > >>>arch/x86/xen/enlighten.c:1726:3: warning: right shift count >= width of type [enabled by default] > >>> > >>>Such line contains following EFI initialization code: > >>> > >>>boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > >>> > >>>There is no issue if x86 64-bit kernel is build. However, 32-bit case > >>>generate warning (even if that code will not be executed because Xen > >>>does not work on 32-bit EFI platforms) due to __pa() returning unsigned long > >>>type which has 32-bits width. So move whole EFI initialization stuff > >>>to separate function and build its body conditionally to avoid above > >>>mentioned warning on x86 32-bit architecture. > >>> > >>>Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com> > >>>--- > >>> arch/x86/xen/enlighten.c | 35 ++++++++++++++++++++++------------- > >>> 1 file changed, 22 insertions(+), 13 deletions(-) > >>> > >>>diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > >>>index bc89647..6abec74 100644 > >>>--- a/arch/x86/xen/enlighten.c > >>>+++ b/arch/x86/xen/enlighten.c > >>>@@ -1516,12 +1516,32 @@ static void __init xen_pvh_early_guest_init(void) > >>> #endif > >>> } > >>>+static void __init xen_efi_init(void) > >>>+{ > >>>+#ifdef CONFIG_XEN_EFI > >>>+ efi_system_table_t *efi_systab_xen; > >>>+ > >>>+ efi_systab_xen = xen_efi_probe(); > >>>+ > >>>+ if (efi_systab_xen == NULL) > >>>+ return; > >>>+ > >>>+ strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", > >>>+ sizeof(boot_params.efi_info.efi_loader_signature)); > >>>+ boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); > >>>+ boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > >>>+ > >>>+ set_bit(EFI_BOOT, &efi.flags); > >>>+ set_bit(EFI_PARAVIRT, &efi.flags); > >>>+ set_bit(EFI_64BIT, &efi.flags); > >>>+#endif > >>>+} > >>>+ > >>> /* First C function to be called on Xen boot */ > >>> asmlinkage __visible void __init xen_start_kernel(void) > >>> { > >>> struct physdev_set_iopl set_iopl; > >>> int rc; > >>>- efi_system_table_t *efi_systab_xen; > >>> if (!xen_start_info) > >>> return; > >>>@@ -1717,18 +1737,7 @@ asmlinkage __visible void __init xen_start_kernel(void) > >>> xen_setup_runstate_info(0); > >>>- efi_systab_xen = xen_efi_probe(); > >>>- > >>>- if (efi_systab_xen) { > >>>- strncpy((char *)&boot_params.efi_info.efi_loader_signature, "Xen", > >>>- sizeof(boot_params.efi_info.efi_loader_signature)); > >>>- boot_params.efi_info.efi_systab = (__u32)__pa(efi_systab_xen); > >>>- boot_params.efi_info.efi_systab_hi = (__u32)(__pa(efi_systab_xen) >> 32); > >>>- > >>>- set_bit(EFI_BOOT, &efi.flags); > >>>- set_bit(EFI_PARAVIRT, &efi.flags); > >>>- set_bit(EFI_64BIT, &efi.flags); > >>>- } > >>>+ xen_efi_init(); > >>I'd put ifdef CONFIG_XEN_EFI around the call instead of having it > >>inside the routine. > >Well, I thought about that a bit and I prefer function like Konrad. > >Could you agree with him which solution do you (as maintainers) prefer? > > > > I am not arguing against having a separate routine. All I am saying > is that calling xen_efi_init() when CONFIG_XEN_EFI is not defined > doesn't look logical. It will also add an unnecessary call (although Ahh... I misunderstood you. However, your proposal, as below: #ifdef CONFIG_XEN_EFI xen_efi_init(); #endif does not solve the problem because this vulnerable shift will be still visible for compiler during x86 32-bit kernel build. > compiler may optimize it out). Please loot at arch/x86/xen/enlighten.c:xen_check_mwait() and arch/x86/xen/enlighten.c:xen_boot_params_init_edd() (probably there are more stuff like that around). As I can see this is fairly common solution and probably compiler cope with it quite well. Have a nice weekend, Daniel ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-07-11 23:46 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2014-07-11 19:54 [PATCH 0/2] xen: Silence compiler warnings Daniel Kiper 2014-07-11 19:54 ` [PATCH 1/2] " Daniel Kiper 2014-07-11 19:54 ` [PATCH 2/2] arch/x86/xen: " Daniel Kiper 2014-07-11 20:03 ` Boris Ostrovsky 2014-07-11 20:10 ` Daniel Kiper 2014-07-11 20:32 ` Boris Ostrovsky 2014-07-11 23:45 ` Daniel Kiper
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome