# HG changeset patch # User Daniel Stodden # Date 1272506749 25200 # Node ID 7a3a94d3c7ce264f885ef54ae7a4040aafbf99a1 # Parent deecb3ec62a1818d368d94c36e4f32493da38e2d blkfront: Fix backtrace in del_gendisk. 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 diff -r deecb3ec62a1 -r 7a3a94d3c7ce drivers/block/xen-blkfront.c --- a/drivers/block/xen-blkfront.c Wed Apr 28 19:05:49 2010 -0700 +++ b/drivers/block/xen-blkfront.c Wed Apr 28 19:05:49 2010 -0700 @@ -1001,14 +1001,14 @@ /* Flush gnttab callback work. Must be done with no locks held. */ flush_scheduled_work(); - blk_cleanup_queue(info->rq); - info->rq = NULL; - minor = info->gd->first_minor; nr_minors = info->gd->minors; del_gendisk(info->gd); xlbd_release_minors(minor, nr_minors); + blk_cleanup_queue(info->rq); + info->rq = NULL; + out: if (info->xbdev) xenbus_frontend_closed(info->xbdev);