Re: [PATCH] notifier: Fix soft lockup for notifier_call_chain().

From: Cong Wang
Date: Mon Jun 27 2016 - 15:51:19 EST


On Fri, Jun 24, 2016 at 7:46 PM, Ding Tianhong <dingtianhong@xxxxxxxxxx> wrote:
> diff --git a/kernel/notifier.c b/kernel/notifier.c
> index fd2c9ac..9c30411 100644
> --- a/kernel/notifier.c
> +++ b/kernel/notifier.c
> @@ -92,6 +92,8 @@ static int notifier_call_chain(struct notifier_block **nl,
> #endif
> ret = nb->notifier_call(nb, val, v);
>
> + cond_resched();
> +
> if (nr_calls)
> (*nr_calls)++;

NAK.

You can't do a resched in atomic context in __atomic_notifier_call_chain().