From: Jan Engelhardt <jengelh@xxxxxxx> Date: Tue, 19 Dec 2017 19:09:07 +0100 > queue_cache_init is first called for the Control Word Queue > (n2_crypto_probe). At that time, queue_cache[0] is NULL and a new > kmem_cache will be allocated. If the subsequent n2_register_algs call > fails, the kmem_cache will be released in queue_cache_destroy, but > queue_cache_init[0] is not set back to NULL. > > So when the Module Arithmetic Unit gets probed next (n2_mau_probe), > queue_cache_init will not allocate a kmem_cache again, but leave it > as its bogus value, causing a BUG() to trigger when queue_cache[0] is > eventually passed to kmem_cache_zalloc: ... > Signed-off-by: Jan Engelhardt <jengelh@xxxxxxx> Acked-by: David S. Miller <davem@xxxxxxxxxxxxx>