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>
Thu, 9 Jan 2020 09:17:53 +0000 (10:17 +0100)
commit0ce254bc68edf06f93d3c0271851c619ff729d31
tree515ed6acf46ea8b3987eb2ce3c1b856f0fd2c15f
parent556f40b79de5e23fba28f5e35831d1526df52a26
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