xen-blkback: prevent premature module unload
authorPaul Durrant <pdurrant@amazon.com>
Tue, 10 Dec 2019 14:53:05 +0000 (14:53 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Jan 2020 10:24:11 +0000 (11:24 +0100)
commite0e0a9558e8ae857fcae981cbbf8b5e7cea838c3
tree379c22c267ec46f7cb9c94902d1cc9797738c885
parent1825ee8688790f5b151150bff5a46d69c62e1154
xen-blkback: prevent premature module unload

[ Upstream commit fa2ac657f9783f0891b2935490afe9a7fd29d3fa ]

Objects allocated by xen_blkif_alloc come from the 'blkif_cache' kmem
cache. This cache is destoyed when xen-blkif is unloaded so it is
necessary to wait for the deferred free routine used for such objects to
complete. This necessity was missed in commit 14855954f636 "xen-blkback:
allow module to be cleanly unloaded". This patch fixes the problem by
taking/releasing extra module references in xen_blkif_alloc/free()
respectively.

Signed-off-by: Paul Durrant <pdurrant@amazon.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/block/xen-blkback/xenbus.c