On 08/05/2013 03:12 PM, Andi Kleen wrote:
> From: Andi Kleen <[email protected]>
>
> kvm_rebooting is referenced from assembler code, thus
> needs to be visible.
>
> Signed-off-by: Andi Kleen <[email protected]>
> ---
> 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
> > 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
--
[email protected] -- Speaking for myself only.