mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
@ 2013-01-23 13:15 Sedat Dilek
  2013-01-23 13:17 ` devendra.aaru
  0 siblings, 1 reply; 15+ messages in thread
From: Sedat Dilek @ 2013-01-23 13:15 UTC (permalink / raw)
  To: Frederic Weisbecker, Paul E. McKenney, Steven Rostedt, linux-kernel
  Cc: Sedat Dilek

With CONFIG_KVM=m my build with 3.8-rc4-nohz3 breaks like this:

ERROR: "guest_enter" [arch/x86/kvm/kvm.ko] undefined!
ERROR: "guest_exit" [arch/x86/kvm/kvm.ko] undefined!

Fix this by adding the missing EXPORT_SYMBOL for guest_enter() and
guest_exit() in kernel/context_tracking.c as suggested by Frederic.

This issue was introduced with commit 8eebafe9be58 ("kvm: Prepare to
add generic guest entry/exit callbacks").

Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
---
 kernel/context_tracking.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index bbb2c2c..950f30a 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -111,14 +111,16 @@ void guest_enter(void)
 	else
 		__guest_enter();
 }
+EXPORT_SYMBOL(guest_enter);
 
 void guest_exit(void)
-{
+{i
 	if (vtime_accounting_enabled())
 		vtime_guest_exit(current);
 	else
 		__guest_exit();
 }
+EXPORT_SYMBOL(guest_exit);
 #endif
 
 
-- 
1.8.1.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 13:15 [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m Sedat Dilek
@ 2013-01-23 13:17 ` devendra.aaru
  2013-01-23 13:33   ` Sedat Dilek
  0 siblings, 1 reply; 15+ messages in thread
From: devendra.aaru @ 2013-01-23 13:17 UTC (permalink / raw)
  To: Sedat Dilek
  Cc: Frederic Weisbecker, Paul E. McKenney, Steven Rostedt, linux-kernel

On Wed, Jan 23, 2013 at 8:15 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
> With CONFIG_KVM=m my build with 3.8-rc4-nohz3 breaks like this:
>
> ERROR: "guest_enter" [arch/x86/kvm/kvm.ko] undefined!
> ERROR: "guest_exit" [arch/x86/kvm/kvm.ko] undefined!
>
> Fix this by adding the missing EXPORT_SYMBOL for guest_enter() and
> guest_exit() in kernel/context_tracking.c as suggested by Frederic.
>
> This issue was introduced with commit 8eebafe9be58 ("kvm: Prepare to
> add generic guest entry/exit callbacks").
>
> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
> ---
>  kernel/context_tracking.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
> index bbb2c2c..950f30a 100644
> --- a/kernel/context_tracking.c
> +++ b/kernel/context_tracking.c
> @@ -111,14 +111,16 @@ void guest_enter(void)
>         else
>                 __guest_enter();
>  }
> +EXPORT_SYMBOL(guest_enter);
>
>  void guest_exit(void)
> -{
> +{i

compilation fails with that?


>         if (vtime_accounting_enabled())
>                 vtime_guest_exit(current);
>         else
>                 __guest_exit();
>  }
> +EXPORT_SYMBOL(guest_exit);
>  #endif
>
>
> --
> 1.8.1.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 13:17 ` devendra.aaru
@ 2013-01-23 13:33   ` Sedat Dilek
  2013-01-23 13:46     ` Frederic Weisbecker
  0 siblings, 1 reply; 15+ messages in thread
From: Sedat Dilek @ 2013-01-23 13:33 UTC (permalink / raw)
  To: devendra.aaru
  Cc: Frederic Weisbecker, Paul E. McKenney, Steven Rostedt, linux-kernel

On Wed, Jan 23, 2013 at 2:17 PM, devendra.aaru <devendra.aaru@gmail.com> wrote:
> On Wed, Jan 23, 2013 at 8:15 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
>> With CONFIG_KVM=m my build with 3.8-rc4-nohz3 breaks like this:
>>
>> ERROR: "guest_enter" [arch/x86/kvm/kvm.ko] undefined!
>> ERROR: "guest_exit" [arch/x86/kvm/kvm.ko] undefined!
>>
>> Fix this by adding the missing EXPORT_SYMBOL for guest_enter() and
>> guest_exit() in kernel/context_tracking.c as suggested by Frederic.
>>
>> This issue was introduced with commit 8eebafe9be58 ("kvm: Prepare to
>> add generic guest entry/exit callbacks").
>>
>> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
>> ---
>>  kernel/context_tracking.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
>> index bbb2c2c..950f30a 100644
>> --- a/kernel/context_tracking.c
>> +++ b/kernel/context_tracking.c
>> @@ -111,14 +111,16 @@ void guest_enter(void)
>>         else
>>                 __guest_enter();
>>  }
>> +EXPORT_SYMBOL(guest_enter);
>>
>>  void guest_exit(void)
>> -{
>> +{i
>
> compilation fails with that?
>

Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!

- Sedat -

>
>>         if (vtime_accounting_enabled())
>>                 vtime_guest_exit(current);
>>         else
>>                 __guest_exit();
>>  }
>> +EXPORT_SYMBOL(guest_exit);
>>  #endif
>>
>>
>> --
>> 1.8.1.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 13:33   ` Sedat Dilek
@ 2013-01-23 13:46     ` Frederic Weisbecker
  2013-01-23 13:53       ` Steven Rostedt
  0 siblings, 1 reply; 15+ messages in thread
From: Frederic Weisbecker @ 2013-01-23 13:46 UTC (permalink / raw)
  To: sedat.dilek; +Cc: devendra.aaru, Paul E. McKenney, Steven Rostedt, linux-kernel

2013/1/23 Sedat Dilek <sedat.dilek@gmail.com>:
> On Wed, Jan 23, 2013 at 2:17 PM, devendra.aaru <devendra.aaru@gmail.com> wrote:
>> On Wed, Jan 23, 2013 at 8:15 AM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
>>> With CONFIG_KVM=m my build with 3.8-rc4-nohz3 breaks like this:
>>>
>>> ERROR: "guest_enter" [arch/x86/kvm/kvm.ko] undefined!
>>> ERROR: "guest_exit" [arch/x86/kvm/kvm.ko] undefined!
>>>
>>> Fix this by adding the missing EXPORT_SYMBOL for guest_enter() and
>>> guest_exit() in kernel/context_tracking.c as suggested by Frederic.
>>>
>>> This issue was introduced with commit 8eebafe9be58 ("kvm: Prepare to
>>> add generic guest entry/exit callbacks").
>>>
>>> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
>>> ---
>>>  kernel/context_tracking.c | 4 +++-
>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
>>> index bbb2c2c..950f30a 100644
>>> --- a/kernel/context_tracking.c
>>> +++ b/kernel/context_tracking.c
>>> @@ -111,14 +111,16 @@ void guest_enter(void)
>>>         else
>>>                 __guest_enter();
>>>  }
>>> +EXPORT_SYMBOL(guest_enter);
>>>
>>>  void guest_exit(void)
>>> -{
>>> +{i
>>
>> compilation fails with that?
>>
>
> Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!

I believe he pointed out the "{i" to you. Typing mistake?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 13:46     ` Frederic Weisbecker
@ 2013-01-23 13:53       ` Steven Rostedt
  2013-01-23 14:02         ` Frederic Weisbecker
  0 siblings, 1 reply; 15+ messages in thread
From: Steven Rostedt @ 2013-01-23 13:53 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: sedat.dilek, devendra.aaru, Paul E. McKenney, linux-kernel

On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:

> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
> 
> I believe he pointed out the "{i" to you. Typing mistake?

In which case the CONFIG_KVM=y is a work around if that {i is within a
#ifndef CONFIG_KVM ;-)

-- Steve



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 13:53       ` Steven Rostedt
@ 2013-01-23 14:02         ` Frederic Weisbecker
  2013-01-23 14:16           ` Sedat Dilek
                             ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Frederic Weisbecker @ 2013-01-23 14:02 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: sedat.dilek, devendra.aaru, Paul E. McKenney, linux-kernel

2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
> On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:
>
>> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
>>
>> I believe he pointed out the "{i" to you. Typing mistake?
>
> In which case the CONFIG_KVM=y is a work around if that {i is within a
> #ifndef CONFIG_KVM ;-)

No it's in #ifdef CONFIG_KVM so the right fix is:

diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index bbb2c2c..a13b8a3 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -111,14 +111,19 @@ void guest_enter(void)
        else
                __guest_enter();
 }
+EXPORT_SYMBOL_GPL(guest_enter);

 void guest_exit(void)
 {
+#ifndef CONFIG_KVM
+i
+#endif
        if (vtime_accounting_enabled())
                vtime_guest_exit(current);
        else
                __guest_exit();
 }
+EXPORT_SYMBOL_GPL(guest_exit);
 #endif

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 14:02         ` Frederic Weisbecker
@ 2013-01-23 14:16           ` Sedat Dilek
  2013-01-23 14:52           ` Sedat Dilek
  2013-01-23 15:04           ` Steven Rostedt
  2 siblings, 0 replies; 15+ messages in thread
From: Sedat Dilek @ 2013-01-23 14:16 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

On Wed, Jan 23, 2013 at 3:02 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
> 2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
>> On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:
>>
>>> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
>>>
>>> I believe he pointed out the "{i" to you. Typing mistake?
>>
>> In which case the CONFIG_KVM=y is a work around if that {i is within a
>> #ifndef CONFIG_KVM ;-)
>
> No it's in #ifdef CONFIG_KVM so the right fix is:
>
> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
> index bbb2c2c..a13b8a3 100644
> --- a/kernel/context_tracking.c
> +++ b/kernel/context_tracking.c
> @@ -111,14 +111,19 @@ void guest_enter(void)
>         else
>                 __guest_enter();
>  }
> +EXPORT_SYMBOL_GPL(guest_enter);
>
>  void guest_exit(void)
>  {
> +#ifndef CONFIG_KVM
> +i
> +#endif
>         if (vtime_accounting_enabled())
>                 vtime_guest_exit(current);
>         else
>                 __guest_exit();
>  }
> +EXPORT_SYMBOL_GPL(guest_exit);
>  #endif

With and without the magic "i" hack the warning still remains!
Dropped the coffee on my t-shirt, damn Frederic.

- Sedat -

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 14:02         ` Frederic Weisbecker
  2013-01-23 14:16           ` Sedat Dilek
@ 2013-01-23 14:52           ` Sedat Dilek
  2013-01-23 15:03             ` Frederic Weisbecker
  2013-01-23 15:04           ` Steven Rostedt
  2 siblings, 1 reply; 15+ messages in thread
From: Sedat Dilek @ 2013-01-23 14:52 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

On Wed, Jan 23, 2013 at 3:02 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
> 2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
>> On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:
>>
>>> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
>>>
>>> I believe he pointed out the "{i" to you. Typing mistake?
>>
>> In which case the CONFIG_KVM=y is a work around if that {i is within a
>> #ifndef CONFIG_KVM ;-)
>
> No it's in #ifdef CONFIG_KVM so the right fix is:
>
> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
> index bbb2c2c..a13b8a3 100644
> --- a/kernel/context_tracking.c
> +++ b/kernel/context_tracking.c
> @@ -111,14 +111,19 @@ void guest_enter(void)
>         else
>                 __guest_enter();
>  }
> +EXPORT_SYMBOL_GPL(guest_enter);
>
>  void guest_exit(void)
>  {
> +#ifndef CONFIG_KVM
> +i
> +#endif
>         if (vtime_accounting_enabled())
>                 vtime_guest_exit(current);
>         else
>                 __guest_exit();
>  }
> +EXPORT_SYMBOL_GPL(guest_exit);
>  #endif

So, what's the real fix for this issue?

- Sedat -

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 14:52           ` Sedat Dilek
@ 2013-01-23 15:03             ` Frederic Weisbecker
  2013-01-23 15:20               ` Sedat Dilek
  0 siblings, 1 reply; 15+ messages in thread
From: Frederic Weisbecker @ 2013-01-23 15:03 UTC (permalink / raw)
  To: sedat.dilek; +Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

2013/1/23 Sedat Dilek <sedat.dilek@gmail.com>:
> On Wed, Jan 23, 2013 at 3:02 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
>> 2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
>>> On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:
>>>
>>>> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
>>>>
>>>> I believe he pointed out the "{i" to you. Typing mistake?
>>>
>>> In which case the CONFIG_KVM=y is a work around if that {i is within a
>>> #ifndef CONFIG_KVM ;-)
>>
>> No it's in #ifdef CONFIG_KVM so the right fix is:
>>
>> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
>> index bbb2c2c..a13b8a3 100644
>> --- a/kernel/context_tracking.c
>> +++ b/kernel/context_tracking.c
>> @@ -111,14 +111,19 @@ void guest_enter(void)
>>         else
>>                 __guest_enter();
>>  }
>> +EXPORT_SYMBOL_GPL(guest_enter);
>>
>>  void guest_exit(void)
>>  {
>> +#ifndef CONFIG_KVM
>> +i
>> +#endif
>>         if (vtime_accounting_enabled())
>>                 vtime_guest_exit(current);
>>         else
>>                 __guest_exit();
>>  }
>> +EXPORT_SYMBOL_GPL(guest_exit);
>>  #endif
>
> So, what's the real fix for this issue?

So CONFIG_SOMETHING doesn't work when it's a module. Hence we need to
remove the ifdef CONFIG_KVM around guest_enter(), guest_exit(),
vtime_guest_enter() and vtime_guest_exit(). Also it seems we need
<linux/export.h> in context_tracking.c

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 14:02         ` Frederic Weisbecker
  2013-01-23 14:16           ` Sedat Dilek
  2013-01-23 14:52           ` Sedat Dilek
@ 2013-01-23 15:04           ` Steven Rostedt
  2013-01-23 15:17             ` Frederic Weisbecker
  2 siblings, 1 reply; 15+ messages in thread
From: Steven Rostedt @ 2013-01-23 15:04 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: sedat.dilek, devendra.aaru, Paul E. McKenney, linux-kernel

On Wed, 2013-01-23 at 15:02 +0100, Frederic Weisbecker wrote:

> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
> index bbb2c2c..a13b8a3 100644
> --- a/kernel/context_tracking.c
> +++ b/kernel/context_tracking.c
> @@ -111,14 +111,19 @@ void guest_enter(void)
>         else
>                 __guest_enter();
>  }
> +EXPORT_SYMBOL_GPL(guest_enter);
> 
>  void guest_exit(void)
>  {
> +#ifndef CONFIG_KVM
> +i
> +#endif

I don't like #ifdefs in .c files. They belong in headers. Could you
convert this to be:

include/linux/context_tracking.h:

#ifdef CONFIG_KVM
 #define add_vi_i_typo()
#else
 #define add_vi_i_typo()	i
#endif

and then in context_tracking.c:

void guest_exit(void)
{
	add_vi_typo();

[...]

-- Steve

>         if (vtime_accounting_enabled())
>                 vtime_guest_exit(current);
>         else
>                 __guest_exit();
>  }
> +EXPORT_SYMBOL_GPL(guest_exit);
>  #endif



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 15:04           ` Steven Rostedt
@ 2013-01-23 15:17             ` Frederic Weisbecker
  0 siblings, 0 replies; 15+ messages in thread
From: Frederic Weisbecker @ 2013-01-23 15:17 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: sedat.dilek, devendra.aaru, Paul E. McKenney, linux-kernel

2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
> On Wed, 2013-01-23 at 15:02 +0100, Frederic Weisbecker wrote:
>
>> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
>> index bbb2c2c..a13b8a3 100644
>> --- a/kernel/context_tracking.c
>> +++ b/kernel/context_tracking.c
>> @@ -111,14 +111,19 @@ void guest_enter(void)
>>         else
>>                 __guest_enter();
>>  }
>> +EXPORT_SYMBOL_GPL(guest_enter);
>>
>>  void guest_exit(void)
>>  {
>> +#ifndef CONFIG_KVM
>> +i
>> +#endif
>
> I don't like #ifdefs in .c files. They belong in headers. Could you
> convert this to be:
>
> include/linux/context_tracking.h:
>
> #ifdef CONFIG_KVM
>  #define add_vi_i_typo()
> #else
>  #define add_vi_i_typo()        i
> #endif
>
> and then in context_tracking.c:
>
> void guest_exit(void)
> {
>         add_vi_typo();
>
> [...]

Much cleaner indeed! And this way it's more generally available for
further users.

Will do the change, thanks!

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 15:03             ` Frederic Weisbecker
@ 2013-01-23 15:20               ` Sedat Dilek
  2013-01-23 15:25                 ` Sedat Dilek
  2013-01-23 15:52                 ` Frederic Weisbecker
  0 siblings, 2 replies; 15+ messages in thread
From: Sedat Dilek @ 2013-01-23 15:20 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1583 bytes --]

On Wed, Jan 23, 2013 at 4:03 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
> 2013/1/23 Sedat Dilek <sedat.dilek@gmail.com>:
>> On Wed, Jan 23, 2013 at 3:02 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
>>> 2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
>>>> On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:
>>>>
>>>>> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
>>>>>
>>>>> I believe he pointed out the "{i" to you. Typing mistake?
>>>>
>>>> In which case the CONFIG_KVM=y is a work around if that {i is within a
>>>> #ifndef CONFIG_KVM ;-)
>>>
>>> No it's in #ifdef CONFIG_KVM so the right fix is:
>>>
>>> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
>>> index bbb2c2c..a13b8a3 100644
>>> --- a/kernel/context_tracking.c
>>> +++ b/kernel/context_tracking.c
>>> @@ -111,14 +111,19 @@ void guest_enter(void)
>>>         else
>>>                 __guest_enter();
>>>  }
>>> +EXPORT_SYMBOL_GPL(guest_enter);
>>>
>>>  void guest_exit(void)
>>>  {
>>> +#ifndef CONFIG_KVM
>>> +i
>>> +#endif
>>>         if (vtime_accounting_enabled())
>>>                 vtime_guest_exit(current);
>>>         else
>>>                 __guest_exit();
>>>  }
>>> +EXPORT_SYMBOL_GPL(guest_exit);
>>>  #endif
>>
>> So, what's the real fix for this issue?
>
> So CONFIG_SOMETHING doesn't work when it's a module. Hence we need to
> remove the ifdef CONFIG_KVM around guest_enter(), guest_exit(),
> vtime_guest_enter() and vtime_guest_exit(). Also it seems we need
> <linux/export.h> in context_tracking.c

You mean sth. like this?

- Sedat -

[-- Attachment #2: kvm-Fix-missing-EXPORT_SYMBOL_GPL.diff --]
[-- Type: application/octet-stream, Size: 1717 bytes --]

diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index bbb2c2c..8802a66 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -19,7 +19,7 @@
 #include <linux/rcupdate.h>
 #include <linux/sched.h>
 #include <linux/hardirq.h>
-
+#include <linux/export.h>
 
 DEFINE_PER_CPU(struct context_tracking, context_tracking) = {
 #ifdef CONFIG_CONTEXT_TRACKING_FORCE
@@ -103,7 +103,6 @@ void user_exit(void)
 	local_irq_restore(flags);
 }
 
-#ifdef CONFIG_KVM
 void guest_enter(void)
 {
 	if (vtime_accounting_enabled())
@@ -111,6 +110,7 @@ void guest_enter(void)
 	else
 		__guest_enter();
 }
+EXPORT_SYMBOL_GPL(guest_enter);
 
 void guest_exit(void)
 {
@@ -119,8 +119,7 @@ void guest_exit(void)
 	else
 		__guest_exit();
 }
-#endif
-
+EXPORT_SYMBOL_GPL(guest_exit);
 
 /**
  * context_tracking_task_switch - context switch the syscall callbacks
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 5500a81..dc66cba 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -677,7 +677,6 @@ void vtime_user_enter(struct task_struct *tsk)
 	write_sequnlock(&tsk->vtime_seqlock);
 }
 
-#ifdef CONFIG_KVM
 void vtime_guest_enter(struct task_struct *tsk)
 {
 	write_seqlock(&tsk->vtime_seqlock);
@@ -685,6 +684,7 @@ void vtime_guest_enter(struct task_struct *tsk)
 	current->flags |= PF_VCPU;
 	write_sequnlock(&tsk->vtime_seqlock);
 }
+EXPORT_SYMBOL_GPL(vtime_guest_enter);
 
 void vtime_guest_exit(struct task_struct *tsk)
 {
@@ -693,7 +693,7 @@ void vtime_guest_exit(struct task_struct *tsk)
 	current->flags &= ~PF_VCPU;
 	write_sequnlock(&tsk->vtime_seqlock);
 }
-#endif
+EXPORT_SYMBOL_GPL(vtime_guest_exit);
 
 void vtime_account_idle(struct task_struct *tsk)
 {

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 15:20               ` Sedat Dilek
@ 2013-01-23 15:25                 ` Sedat Dilek
  2013-01-23 15:53                   ` Frederic Weisbecker
  2013-01-23 15:52                 ` Frederic Weisbecker
  1 sibling, 1 reply; 15+ messages in thread
From: Sedat Dilek @ 2013-01-23 15:25 UTC (permalink / raw)
  To: Frederic Weisbecker
  Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

On Wed, Jan 23, 2013 at 4:20 PM, Sedat Dilek <sedat.dilek@gmail.com> wrote:
> On Wed, Jan 23, 2013 at 4:03 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
>> 2013/1/23 Sedat Dilek <sedat.dilek@gmail.com>:
>>> On Wed, Jan 23, 2013 at 3:02 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
>>>> 2013/1/23 Steven Rostedt <rostedt@goodmis.org>:
>>>>> On Wed, 2013-01-23 at 14:46 +0100, Frederic Weisbecker wrote:
>>>>>
>>>>>> > Hmmm, yes, but why, clueless, CONFIG_KVM=y as a workaround!
>>>>>>
>>>>>> I believe he pointed out the "{i" to you. Typing mistake?
>>>>>
>>>>> In which case the CONFIG_KVM=y is a work around if that {i is within a
>>>>> #ifndef CONFIG_KVM ;-)
>>>>
>>>> No it's in #ifdef CONFIG_KVM so the right fix is:
>>>>
>>>> diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
>>>> index bbb2c2c..a13b8a3 100644
>>>> --- a/kernel/context_tracking.c
>>>> +++ b/kernel/context_tracking.c
>>>> @@ -111,14 +111,19 @@ void guest_enter(void)
>>>>         else
>>>>                 __guest_enter();
>>>>  }
>>>> +EXPORT_SYMBOL_GPL(guest_enter);
>>>>
>>>>  void guest_exit(void)
>>>>  {
>>>> +#ifndef CONFIG_KVM
>>>> +i
>>>> +#endif
>>>>         if (vtime_accounting_enabled())
>>>>                 vtime_guest_exit(current);
>>>>         else
>>>>                 __guest_exit();
>>>>  }
>>>> +EXPORT_SYMBOL_GPL(guest_exit);
>>>>  #endif
>>>
>>> So, what's the real fix for this issue?
>>
>> So CONFIG_SOMETHING doesn't work when it's a module. Hence we need to
>> remove the ifdef CONFIG_KVM around guest_enter(), guest_exit(),
>> vtime_guest_enter() and vtime_guest_exit(). Also it seems we need
>> <linux/export.h> in context_tracking.c
>
> You mean sth. like this?
>

Isn't vtime.h missing in kvm_host.h as an include?

- Sedat -

> - Sedat -

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 15:20               ` Sedat Dilek
  2013-01-23 15:25                 ` Sedat Dilek
@ 2013-01-23 15:52                 ` Frederic Weisbecker
  1 sibling, 0 replies; 15+ messages in thread
From: Frederic Weisbecker @ 2013-01-23 15:52 UTC (permalink / raw)
  To: sedat.dilek; +Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

2013/1/23 Sedat Dilek <sedat.dilek@gmail.com>:
>> So CONFIG_SOMETHING doesn't work when it's a module. Hence we need to
>> remove the ifdef CONFIG_KVM around guest_enter(), guest_exit(),
>> vtime_guest_enter() and vtime_guest_exit(). Also it seems we need
>> <linux/export.h> in context_tracking.c
>
> You mean sth. like this?

Almost. vtime_guest_enter/exit don't need to be exported because they
are not referenced by module code: guest_enter/exit are builtin code.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m
  2013-01-23 15:25                 ` Sedat Dilek
@ 2013-01-23 15:53                   ` Frederic Weisbecker
  0 siblings, 0 replies; 15+ messages in thread
From: Frederic Weisbecker @ 2013-01-23 15:53 UTC (permalink / raw)
  To: sedat.dilek; +Cc: Steven Rostedt, devendra.aaru, Paul E. McKenney, linux-kernel

2013/1/23 Sedat Dilek <sedat.dilek@gmail.com>:
> Isn't vtime.h missing in kvm_host.h as an include?

No, vtime_guest_enter/exit() are only referenced by context_tracking.c

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2013-01-23 15:53 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-23 13:15 [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m Sedat Dilek
2013-01-23 13:17 ` devendra.aaru
2013-01-23 13:33   ` Sedat Dilek
2013-01-23 13:46     ` Frederic Weisbecker
2013-01-23 13:53       ` Steven Rostedt
2013-01-23 14:02         ` Frederic Weisbecker
2013-01-23 14:16           ` Sedat Dilek
2013-01-23 14:52           ` Sedat Dilek
2013-01-23 15:03             ` Frederic Weisbecker
2013-01-23 15:20               ` Sedat Dilek
2013-01-23 15:25                 ` Sedat Dilek
2013-01-23 15:53                   ` Frederic Weisbecker
2013-01-23 15:52                 ` Frederic Weisbecker
2013-01-23 15:04           ` Steven Rostedt
2013-01-23 15:17             ` Frederic Weisbecker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®