[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <54C15E20.8090201@linaro.org>
Date: Thu, 22 Jan 2015 20:31:28 +0000
From: Julien Grall <julien.grall@...aro.org>
To: "Luis R. Rodriguez" <mcgrof@...e.com>
CC: "Luis R. Rodriguez" <mcgrof@...not-panic.com>,
david.vrabel@...rix.com, konrad.wilk@...cle.com,
boris.ostrovsky@...cle.com, xen-devel@...ts.xenproject.org,
kvm@...r.kernel.org, x86@...nel.org, linux-kernel@...r.kernel.org,
Steven Rostedt <rostedt@...dmis.org>,
Andy Lutomirski <luto@...capital.net>,
Ingo Molnar <mingo@...hat.com>,
Jan Beulich <JBeulich@...e.com>,
"H. Peter Anvin" <hpa@...or.com>,
Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
Thomas Gleixner <tglx@...utronix.de>,
Borislav Petkov <bp@...e.de>
Subject: Re: [Xen-devel] [RFC v3 2/2] x86/xen: allow privcmd hypercalls to
be preempted
On 22/01/15 18:56, Luis R. Rodriguez wrote:
> On Thu, Jan 22, 2015 at 01:10:49PM +0000, Julien Grall wrote:
>> Hi Luis,
>>
>> On 22/01/15 02:17, Luis R. Rodriguez wrote:
>>> diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
>>> index b4bca2d..23c526b 100644
>>> --- a/drivers/xen/events/events_base.c
>>> +++ b/drivers/xen/events/events_base.c
>>> @@ -32,6 +32,8 @@
>>> #include <linux/slab.h>
>>> #include <linux/irqnr.h>
>>> #include <linux/pci.h>
>>> +#include <linux/sched.h>
>>> +#include <linux/kprobes.h>
>>>
>>> #ifdef CONFIG_X86
>>> #include <asm/desc.h>
>>> @@ -1243,6 +1245,17 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
>>> set_irq_regs(old_regs);
>>> }
>>>
>>> +notrace void xen_end_upcall(struct pt_regs *regs)
>>> +{
>>> + if (!xen_is_preemptible_hypercall(regs) ||
>>
>> I don't see any definition of xen_is_preemptible_hypercall for ARM32/ARM64.
>>
>> As this function is called from the generic code, you have at least to
>> stub this function for those architectures.
>
> Will add as:
>
> diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
> index 712b50e..4fc8395 100644
> --- a/arch/arm/include/asm/xen/hypercall.h
> +++ b/arch/arm/include/asm/xen/hypercall.h
> @@ -74,4 +74,9 @@ MULTI_mmu_update(struct multicall_entry *mcl, struct mmu_update *req,
> BUG();
> }
>
> +static inline bool xen_is_preemptible_hypercall(struct pt_regs *regs)
> +{
> + return false;
> +}
> +
> #endif /* _ASM_ARM_XEN_HYPERCALL_H */
>
> This will cover both arm and arm64 as arm64 includes the arm header.
I'm fine with this solution.
Regards,
--
Julien Grall
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists