Re: [patch V3 24/32] jump_label: Reorder hotplug lock and jump_label_lock

From: David Miller
Date: Wed May 24 2017 - 08:51:07 EST


From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Date: Wed, 24 May 2017 10:15:35 +0200

> The conversion of the hotplug locking to a percpu rwsem unearthed lock
> ordering issues all over the place.
>
> The jump_label code has two issues:
>
> 1) Nested get_online_cpus() invocations
>
> 2) Ordering problems vs. the cpus rwsem and the jump_label_mutex
>
> To cure these, the following lock order has been established;
>
> cpus_rwsem -> jump_label_lock -> text_mutex
>
> Even if not all architectures need protection against CPU hotplug, taking
> cpus_rwsem before jump_label_lock is now mandatory in code pathes which
> actually modify code and therefor need text_mutex protection.
>
> Move the get_online_cpus() invocations into the core jump label code and
> establish the proper lock order where required.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>

Acked-by: David S. Miller <davem@xxxxxxxxxxxxx>