diff options
author | Jens Axboe <jaxboe@fusionio.com> | 2010-10-19 03:13:04 -0400 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-10-19 03:13:04 -0400 |
commit | fa251f89903d73989e2f63e13d0eaed1e07ce0da (patch) | |
tree | 3f7fe779941e3b6d67754dd7c44a32f48ea47c74 /drivers/block | |
parent | dd3932eddf428571762596e17b65f5dc92ca361b (diff) | |
parent | cd07202cc8262e1669edff0d97715f3dd9260917 (diff) |
Merge branch 'v2.6.36-rc8' into for-2.6.37/barrier
Conflicts:
block/blk-core.c
drivers/block/loop.c
mm/swapfile.c
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/cciss.c | 13 | ||||
-rw-r--r-- | drivers/block/mg_disk.c | 3 | ||||
-rw-r--r-- | drivers/block/pktcdvd.c | 2 | ||||
-rw-r--r-- | drivers/block/virtio_blk.c | 6 | ||||
-rw-r--r-- | drivers/block/xen-blkfront.c | 2 |
5 files changed, 20 insertions, 6 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 31064df1370a..5e4fadcdece9 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -297,6 +297,8 @@ static void enqueue_cmd_and_start_io(ctlr_info_t *h, | |||
297 | spin_lock_irqsave(&h->lock, flags); | 297 | spin_lock_irqsave(&h->lock, flags); |
298 | addQ(&h->reqQ, c); | 298 | addQ(&h->reqQ, c); |
299 | h->Qdepth++; | 299 | h->Qdepth++; |
300 | if (h->Qdepth > h->maxQsinceinit) | ||
301 | h->maxQsinceinit = h->Qdepth; | ||
300 | start_io(h); | 302 | start_io(h); |
301 | spin_unlock_irqrestore(&h->lock, flags); | 303 | spin_unlock_irqrestore(&h->lock, flags); |
302 | } | 304 | } |
@@ -4519,6 +4521,12 @@ static __devinit int cciss_kdump_hard_reset_controller(struct pci_dev *pdev) | |||
4519 | misc_fw_support = readl(&cfgtable->misc_fw_support); | 4521 | misc_fw_support = readl(&cfgtable->misc_fw_support); |
4520 | use_doorbell = misc_fw_support & MISC_FW_DOORBELL_RESET; | 4522 | use_doorbell = misc_fw_support & MISC_FW_DOORBELL_RESET; |
4521 | 4523 | ||
4524 | /* The doorbell reset seems to cause lockups on some Smart | ||
4525 | * Arrays (e.g. P410, P410i, maybe others). Until this is | ||
4526 | * fixed or at least isolated, avoid the doorbell reset. | ||
4527 | */ | ||
4528 | use_doorbell = 0; | ||
4529 | |||
4522 | rc = cciss_controller_hard_reset(pdev, vaddr, use_doorbell); | 4530 | rc = cciss_controller_hard_reset(pdev, vaddr, use_doorbell); |
4523 | if (rc) | 4531 | if (rc) |
4524 | goto unmap_cfgtable; | 4532 | goto unmap_cfgtable; |
@@ -4712,6 +4720,9 @@ static int __devinit cciss_init_one(struct pci_dev *pdev, | |||
4712 | h->scatter_list = kmalloc(h->max_commands * | 4720 | h->scatter_list = kmalloc(h->max_commands * |
4713 | sizeof(struct scatterlist *), | 4721 | sizeof(struct scatterlist *), |
4714 | GFP_KERNEL); | 4722 | GFP_KERNEL); |
4723 | if (!h->scatter_list) | ||
4724 | goto clean4; | ||
4725 | |||
4715 | for (k = 0; k < h->nr_cmds; k++) { | 4726 | for (k = 0; k < h->nr_cmds; k++) { |
4716 | h->scatter_list[k] = kmalloc(sizeof(struct scatterlist) * | 4727 | h->scatter_list[k] = kmalloc(sizeof(struct scatterlist) * |
4717 | h->maxsgentries, | 4728 | h->maxsgentries, |
@@ -4781,7 +4792,7 @@ static int __devinit cciss_init_one(struct pci_dev *pdev, | |||
4781 | clean4: | 4792 | clean4: |
4782 | kfree(h->cmd_pool_bits); | 4793 | kfree(h->cmd_pool_bits); |
4783 | /* Free up sg elements */ | 4794 | /* Free up sg elements */ |
4784 | for (k = 0; k < h->nr_cmds; k++) | 4795 | for (k-- ; k >= 0; k--) |
4785 | kfree(h->scatter_list[k]); | 4796 | kfree(h->scatter_list[k]); |
4786 | kfree(h->scatter_list); | 4797 | kfree(h->scatter_list); |
4787 | cciss_free_sg_chain_blocks(h->cmd_sg_list, h->nr_cmds); | 4798 | cciss_free_sg_chain_blocks(h->cmd_sg_list, h->nr_cmds); |
diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c index b82c5ce5e9df..76fa3deaee84 100644 --- a/drivers/block/mg_disk.c +++ b/drivers/block/mg_disk.c | |||
@@ -974,8 +974,7 @@ static int mg_probe(struct platform_device *plat_dev) | |||
974 | host->breq->queuedata = host; | 974 | host->breq->queuedata = host; |
975 | 975 | ||
976 | /* mflash is random device, thanx for the noop */ | 976 | /* mflash is random device, thanx for the noop */ |
977 | elevator_exit(host->breq->elevator); | 977 | err = elevator_change(host->breq, "noop"); |
978 | err = elevator_init(host->breq, "noop"); | ||
979 | if (err) { | 978 | if (err) { |
980 | printk(KERN_ERR "%s:%d (elevator_init) fail\n", | 979 | printk(KERN_ERR "%s:%d (elevator_init) fail\n", |
981 | __func__, __LINE__); | 980 | __func__, __LINE__); |
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 0166ea136045..1b5cfcccd654 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c | |||
@@ -2368,7 +2368,7 @@ static void pkt_release_dev(struct pktcdvd_device *pd, int flush) | |||
2368 | pkt_shrink_pktlist(pd); | 2368 | pkt_shrink_pktlist(pd); |
2369 | } | 2369 | } |
2370 | 2370 | ||
2371 | static struct pktcdvd_device *pkt_find_dev_from_minor(int dev_minor) | 2371 | static struct pktcdvd_device *pkt_find_dev_from_minor(unsigned int dev_minor) |
2372 | { | 2372 | { |
2373 | if (dev_minor >= MAX_WRITERS) | 2373 | if (dev_minor >= MAX_WRITERS) |
2374 | return NULL; | 2374 | return NULL; |
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 126062802cb7..831e75caea3d 100644 --- a/drivers/block/virtio_blk.c +++ b/drivers/block/virtio_blk.c | |||
@@ -199,6 +199,7 @@ static int virtblk_get_id(struct gendisk *disk, char *id_str) | |||
199 | struct virtio_blk *vblk = disk->private_data; | 199 | struct virtio_blk *vblk = disk->private_data; |
200 | struct request *req; | 200 | struct request *req; |
201 | struct bio *bio; | 201 | struct bio *bio; |
202 | int err; | ||
202 | 203 | ||
203 | bio = bio_map_kern(vblk->disk->queue, id_str, VIRTIO_BLK_ID_BYTES, | 204 | bio = bio_map_kern(vblk->disk->queue, id_str, VIRTIO_BLK_ID_BYTES, |
204 | GFP_KERNEL); | 205 | GFP_KERNEL); |
@@ -212,7 +213,10 @@ static int virtblk_get_id(struct gendisk *disk, char *id_str) | |||
212 | } | 213 | } |
213 | 214 | ||
214 | req->cmd_type = REQ_TYPE_SPECIAL; | 215 | req->cmd_type = REQ_TYPE_SPECIAL; |
215 | return blk_execute_rq(vblk->disk->queue, vblk->disk, req, false); | 216 | err = blk_execute_rq(vblk->disk->queue, vblk->disk, req, false); |
217 | blk_put_request(req); | ||
218 | |||
219 | return err; | ||
216 | } | 220 | } |
217 | 221 | ||
218 | static int virtblk_locked_ioctl(struct block_device *bdev, fmode_t mode, | 222 | static int virtblk_locked_ioctl(struct block_device *bdev, fmode_t mode, |
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index 0b1eea643262..f2ffc46644df 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c | |||
@@ -820,7 +820,7 @@ static int blkfront_probe(struct xenbus_device *dev, | |||
820 | char *type; | 820 | char *type; |
821 | int len; | 821 | int len; |
822 | /* no unplug has been done: do not hook devices != xen vbds */ | 822 | /* no unplug has been done: do not hook devices != xen vbds */ |
823 | if (xen_platform_pci_unplug & XEN_UNPLUG_IGNORE) { | 823 | if (xen_platform_pci_unplug & XEN_UNPLUG_UNNECESSARY) { |
824 | int major; | 824 | int major; |
825 | 825 | ||
826 | if (!VDEV_IS_EXTENDED(vdevice)) | 826 | if (!VDEV_IS_EXTENDED(vdevice)) |