Re: [PATCH -v5 6/5] context_tracking: fix exception_enter when already in IN_KERNEL

Frederic Weisbecker
2015-02-12T17:00:09Z

On Thu, Feb 12, 2015 at 10:47:10AM -0500, Rik van Riel wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 02/12/2015 10:42 AM, Frederic Weisbecker wrote:
> > On Wed, Feb 11, 2015 at 02:43:19PM -0500, Rik van Riel wrote:
> >> If exception_enter happens when already in IN_KERNEL state, the
> >> code still calls context_tracking_exit, which ends up in
> >> rcu_eqs_exit_common, which explodes with a WARN_ON when it is
> >> called in a situation where dynticks are not enabled.
> >
> > Fortunately context_tracking_exit() already has a current_state ==
> > IN_KERNEL check so this shouldn't be a problem.
>
> No, it had a hard-coded "current_state == IN_USER" check,
> which is very close, but ...
>
> ... I replaced that with a state argument, and forgot to
> ensure that it never gets called with state == IN_KERNEL.
> This patch fixes that.

Ah that's right! Well I'm going to merge this patch to 1/5 then to
avoid breaking bisection.

Thanks.