diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2010-10-12 11:27:20 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2010-10-12 11:27:28 -0400 |
| commit | 37eca0d64a2dbeece25969ec0698e1ff72bdcf39 (patch) | |
| tree | 54ba70f0428f586f4fe28d8b429b9f9e0799a17a /drivers/block | |
| parent | 277b199800ac90811ac86d215063df1984f51619 (diff) | |
| parent | 3c06806e690885ce978ef180c8f8b6f8c17fb4b4 (diff) | |
Merge branch 'linus' into core/locking
Reason: Pull in the semaphore related changes
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/block')
| -rw-r--r-- | drivers/block/cciss.c | 13 | ||||
| -rw-r--r-- | drivers/block/loop.c | 2 | ||||
| -rw-r--r-- | drivers/block/mg_disk.c | 3 | ||||
| -rw-r--r-- | drivers/block/pktcdvd.c | 2 | ||||
| -rw-r--r-- | drivers/block/xen-blkfront.c | 2 | ||||
| -rw-r--r-- | drivers/block/xsysace.c | 1 |
6 files changed, 17 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/loop.c b/drivers/block/loop.c index f3c636d23718..91797bbbe702 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c | |||
| @@ -477,7 +477,7 @@ static int do_bio_filebacked(struct loop_device *lo, struct bio *bio) | |||
| 477 | pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; | 477 | pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; |
| 478 | 478 | ||
| 479 | if (bio_rw(bio) == WRITE) { | 479 | if (bio_rw(bio) == WRITE) { |
| 480 | bool barrier = (bio->bi_rw & REQ_HARDBARRIER); | 480 | bool barrier = !!(bio->bi_rw & REQ_HARDBARRIER); |
| 481 | struct file *file = lo->lo_backing_file; | 481 | struct file *file = lo->lo_backing_file; |
| 482 | 482 | ||
| 483 | if (barrier) { | 483 | if (barrier) { |
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 b1cbeb59bb76..37a2bb595076 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c | |||
| @@ -2369,7 +2369,7 @@ static void pkt_release_dev(struct pktcdvd_device *pd, int flush) | |||
| 2369 | pkt_shrink_pktlist(pd); | 2369 | pkt_shrink_pktlist(pd); |
| 2370 | } | 2370 | } |
| 2371 | 2371 | ||
| 2372 | static struct pktcdvd_device *pkt_find_dev_from_minor(int dev_minor) | 2372 | static struct pktcdvd_device *pkt_find_dev_from_minor(unsigned int dev_minor) |
| 2373 | { | 2373 | { |
| 2374 | if (dev_minor >= MAX_WRITERS) | 2374 | if (dev_minor >= MAX_WRITERS) |
| 2375 | return NULL; | 2375 | return NULL; |
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index ac1b682edecb..ab735a605cf3 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c | |||
| @@ -834,7 +834,7 @@ static int blkfront_probe(struct xenbus_device *dev, | |||
| 834 | char *type; | 834 | char *type; |
| 835 | int len; | 835 | int len; |
| 836 | /* no unplug has been done: do not hook devices != xen vbds */ | 836 | /* no unplug has been done: do not hook devices != xen vbds */ |
| 837 | if (xen_platform_pci_unplug & XEN_UNPLUG_IGNORE) { | 837 | if (xen_platform_pci_unplug & XEN_UNPLUG_UNNECESSARY) { |
| 838 | int major; | 838 | int major; |
| 839 | 839 | ||
| 840 | if (!VDEV_IS_EXTENDED(vdevice)) | 840 | if (!VDEV_IS_EXTENDED(vdevice)) |
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index 2982b3ee9465..057413bb16e2 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c | |||
| @@ -94,6 +94,7 @@ | |||
| 94 | #include <linux/hdreg.h> | 94 | #include <linux/hdreg.h> |
| 95 | #include <linux/platform_device.h> | 95 | #include <linux/platform_device.h> |
| 96 | #if defined(CONFIG_OF) | 96 | #if defined(CONFIG_OF) |
| 97 | #include <linux/of_address.h> | ||
| 97 | #include <linux/of_device.h> | 98 | #include <linux/of_device.h> |
| 98 | #include <linux/of_platform.h> | 99 | #include <linux/of_platform.h> |
| 99 | #endif | 100 | #endif |
