diff mbox

kvm: Make kvm_rebooting visible

Message ID 1375740747-7769-1-git-send-email-andi@firstfloor.org (mailing list archive)
State New, archived
Headers show

Commit Message

Andi Kleen Aug. 5, 2013, 10:12 p.m. UTC
From: Andi Kleen <ak@linux.intel.com>

kvm_rebooting is referenced from assembler code, thus
needs to be visible.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
 virt/kvm/kvm_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Daney Aug. 5, 2013, 10:35 p.m. UTC | #1
On 08/05/2013 03:12 PM, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
>
> kvm_rebooting is referenced from assembler code, thus
> needs to be visible.
>
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> ---
>   virt/kvm/kvm_main.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 1580dd4..eff6abd 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -95,7 +95,7 @@ static void hardware_disable_all(void);
>
>   static void kvm_io_bus_destroy(struct kvm_io_bus *bus);
>
> -bool kvm_rebooting;
> +__visible bool kvm_rebooting;
>   EXPORT_SYMBOL_GPL(kvm_rebooting);

How many of these are there kernel wide?

Could you do something like this instead:

DEFINE_AND_EXPORT_GPL(bool, kvm_rebooting);

The definition of DEFINE_AND_EXPORT_GPL(_type, _name) is left as an 
exercise for the reader.

David Daney


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andi Kleen Aug. 5, 2013, 10:57 p.m. UTC | #2
> >  static void kvm_io_bus_destroy(struct kvm_io_bus *bus);
> >
> >-bool kvm_rebooting;
> >+__visible bool kvm_rebooting;
> >  EXPORT_SYMBOL_GPL(kvm_rebooting);
> 
> How many of these are there kernel wide?

Not very many (at least on x86 allyes) <~10.
Also most users are not exported.

Probably not worth an own macro.

> 
> Could you do something like this instead:
> 
> DEFINE_AND_EXPORT_GPL(bool, kvm_rebooting);
> 
> The definition of DEFINE_AND_EXPORT_GPL(_type, _name) is left as an
> exercise for the reader.

I actually had EXPORT_SYMBOL make things always visible for a long time,
but it prevents optimizing away unused code in very small
non modular configurations. So I switched to separate annotations.

-Andi
Paolo Bonzini Aug. 7, 2013, 1:20 p.m. UTC | #3
On 08/06/2013 12:12 AM, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
>
> kvm_rebooting is referenced from assembler code, thus
> needs to be visible.
>
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
> ---
>   virt/kvm/kvm_main.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 1580dd4..eff6abd 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -95,7 +95,7 @@ static void hardware_disable_all(void);
>
>   static void kvm_io_bus_destroy(struct kvm_io_bus *bus);
>
> -bool kvm_rebooting;
> +__visible bool kvm_rebooting;
>   EXPORT_SYMBOL_GPL(kvm_rebooting);
>
>   static bool largepages_enabled = true;
>

Should this go into 3.11 too?  Or it never worked?

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andi Kleen Aug. 7, 2013, 2:47 p.m. UTC | #4
> 
> Should this go into 3.11 too?  Or it never worked?

It's ok to keep it for .12. It was broken since it was merged,
but normal builds don't trigger the problem.

-andi
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 1580dd4..eff6abd 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -95,7 +95,7 @@  static void hardware_disable_all(void);
 
 static void kvm_io_bus_destroy(struct kvm_io_bus *bus);
 
-bool kvm_rebooting;
+__visible bool kvm_rebooting;
 EXPORT_SYMBOL_GPL(kvm_rebooting);
 
 static bool largepages_enabled = true;