diff options
author | Jens Axboe <axboe@kernel.dk> | 2013-11-28 03:12:58 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2013-11-28 03:12:58 +0100 |
commit | e345d767f6530ec9cb0aabab7ea248072a9c6975 (patch) | |
tree | 8c9ff6086915c7303ef4c3e060f68d2734b419b1 /drivers/block | |
parent | block: submit_bio_wait() conversions (diff) | |
parent | block: xen-blkfront: Fix possible NULL ptr dereference (diff) | |
download | linux-e345d767f6530ec9cb0aabab7ea248072a9c6975.tar.xz linux-e345d767f6530ec9cb0aabab7ea248072a9c6975.zip |
Merge branch 'stable/for-jens-3.13-take-two' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip into for-linus
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/xen-blkfront.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 432db1b59b00..c4a4c9006288 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -489,7 +489,7 @@ static int blkif_queue_request(struct request *req) if ((ring_req->operation == BLKIF_OP_INDIRECT) && (i % SEGS_PER_INDIRECT_FRAME == 0)) { - unsigned long pfn; + unsigned long uninitialized_var(pfn); if (segments) kunmap_atomic(segments); @@ -2011,6 +2011,10 @@ static void blkif_release(struct gendisk *disk, fmode_t mode) bdev = bdget_disk(disk, 0); + if (!bdev) { + WARN(1, "Block device %s yanked out from us!\n", disk->disk_name); + goto out_mutex; + } if (bdev->bd_openers) goto out; @@ -2041,6 +2045,7 @@ static void blkif_release(struct gendisk *disk, fmode_t mode) out: bdput(bdev); +out_mutex: mutex_unlock(&blkfront_mutex); } |