padata: make padata_do_parallel find alternate callback CPU
authorDaniel Jordan <daniel.m.jordan@oracle.com>
Fri, 6 Sep 2019 01:40:24 +0000 (21:40 -0400)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 13 Sep 2019 11:15:40 +0000 (21:15 +1000)
commite6ce0e0807e90d38a2cefa524ac253d7a85c3f2f
tree6ab1e49a566d3d8eb3ca968f03882b4f076f8c48
parent509b3204890ab31c3e652c26424a0706bb809933
padata: make padata_do_parallel find alternate callback CPU

padata_do_parallel currently returns -EINVAL if the callback CPU isn't
in the callback cpumask.

pcrypt tries to prevent this situation by keeping its own callback
cpumask in sync with padata's and checks that the callback CPU it passes
to padata is valid.  Make padata handle this instead.

padata_do_parallel now takes a pointer to the callback CPU and updates
it for the caller if an alternate CPU is used.  Overall behavior in
terms of which callback CPUs are chosen stays the same.

Prepares for removal of the padata cpumask notifier in pcrypt, which
will fix a lockdep complaint about nested acquisition of the CPU hotplug
lock later in the series.

Signed-off-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: linux-crypto@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/pcrypt.c
include/linux/padata.h
kernel/padata.c