On Thu, May 07, 2015 at 11:58:32AM +0200, Ingo Molnar wrote:
>
> * Frederic Weisbecker wrote:
>
> > @@ -75,6 +94,11 @@ void context_tracking_enter(enum ctx_state state)
> > WARN_ON_ONCE(!current->mm);
> >
> > local_irq_save(flags);
> > + if (!context_tracking_recursion_enter()) {
> >
* Frederic Weisbecker wrote:
> @@ -75,6 +94,11 @@ void context_tracking_enter(enum ctx_state state)
> WARN_ON_ONCE(!current->mm);
>
> local_irq_save(flags);
> + if (!context_tracking_recursion_enter()) {
> + local_irq_restore(flags);
> + return;
> +
Context tracking recursion can happen when an exception triggers in the
middle of a call to a context tracking probe.
This special case can be caused by vmalloc faults. If an access to a
memory area allocated by vmalloc happens in the middle of
context_tracking_enter(), we may run into an endless
Context tracking recursion can happen when an exception triggers in the
middle of a call to a context tracking probe.
This special case can be caused by vmalloc faults. If an access to a
memory area allocated by vmalloc happens in the middle of
context_tracking_enter(), we may run into an endless
Context tracking recursion can happen when an exception triggers in the
middle of a call to a context tracking probe.
This special case can be caused by vmalloc faults. If an access to a
memory area allocated by vmalloc happens in the middle of
context_tracking_enter(), we may run into an endless
5 matches
Mail list logo