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:18:58 +0000 (10:18 +0100)
commit240d1a8b7d965bf54be1d00e310d572e25db364d
treec5d241a2b09bd9f44ad4bc3081995c21572345dd
parentd66e67b62ef0a9f860d929a31e16e37cb27bfe3f
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