From bee69f9f61274bb94f37cd7fe22411ea7429d84b Mon Sep 17 00:00:00 2001 From: David Vrabel Date: Wed, 14 Mar 2012 11:48:52 +0000 Subject: blkfront: Fix backtrace in del_gendisk Commit 89de1669ace055b56f1de1c9f5aca26dd7f17f25 upstream. The call to del_gendisk follows an non-refcounted gd->queue pointer. We release the last ref in blk_cleanup_queue. Fixed by reordering releases accordingly. Signed-off-by: Daniel Stodden Signed-off-by: Jeremy Fitzhardinge Signed-off-by: David Vrabel Signed-off-by: Willy Tarreau --- drivers/block/xen-blkfront.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index a2e8977abaad..605d92e3cc6b 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -942,11 +942,11 @@ static void blkfront_closing(struct xenbus_device *dev) /* Flush gnttab callback work. Must be done with no locks held. */ flush_scheduled_work(); + del_gendisk(info->gd); + blk_cleanup_queue(info->rq); info->rq = NULL; - del_gendisk(info->gd); - out: xenbus_frontend_closed(dev); } -- cgit v1.2.3