Re: [PATCH 3.8-rc4-nohz3] kvm: Add missing EXPORT_SYMBOL when CONFIG_KVM=m

From: Sedat Dilek
Date: Wed Jan 23 2013 - 10:20:32 EST


On Wed, Jan 23, 2013 at 4:03 PM, Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
> 2013/1/23 Sedat Dilek <sedat.dilek@xxxxxxxxx>:
>> On Wed, Jan 23, 2013 at 3:02 PM, Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote:
>>> 2013/1/23 Steven Rostedt <rostedt@xxxxxxxxxxx>:
>>>> 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: kvm-Fix-missing-EXPORT_SYMBOL_GPL.diff
Description: Binary data