aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-19 17:25:56 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-19 17:25:56 -0500
commitc7eeae734f38bcdce97d43152bf9db6b9b18759a (patch)
tree4ae38824919321fda691dc79540637fa48d6a80d /drivers/scsi
parent3a6927906f1b2adf5a31b789322d32eb8559ada0 (diff)
parenta169e63740779f62a9a5ddf0aa61091a393a03c5 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] initio: bugfix for accessors patch [SCSI] st: fix kernel BUG at include/linux/scatterlist.h:59! [SCSI] initio: fix conflict when loading driver [SCSI] sym53c8xx: fix "irq X: nobody cared" regression [SCSI] dpt_i2o: driver is only 32 bit so don't set 64 bit DMA mask [SCSI] sym53c8xx: fix free_irq() regression
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/dpt_i2o.c3
-rw-r--r--drivers/scsi/initio.c2
-rw-r--r--drivers/scsi/st.c1
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.c2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.c2
5 files changed, 6 insertions, 4 deletions
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c
index 70f48a1a6d58..b31d1c95c9fb 100644
--- a/drivers/scsi/dpt_i2o.c
+++ b/drivers/scsi/dpt_i2o.c
@@ -906,8 +906,7 @@ static int adpt_install_hba(struct scsi_host_template* sht, struct pci_dev* pDev
906 } 906 }
907 907
908 pci_set_master(pDev); 908 pci_set_master(pDev);
909 if (pci_set_dma_mask(pDev, DMA_64BIT_MASK) && 909 if (pci_set_dma_mask(pDev, DMA_32BIT_MASK))
910 pci_set_dma_mask(pDev, DMA_32BIT_MASK))
911 return -EINVAL; 910 return -EINVAL;
912 911
913 base_addr0_phys = pci_resource_start(pDev,0); 912 base_addr0_phys = pci_resource_start(pDev,0);
diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c
index 4c4465d39a1d..01bf0189367d 100644
--- a/drivers/scsi/initio.c
+++ b/drivers/scsi/initio.c
@@ -2616,6 +2616,7 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
2616 scsi_for_each_sg(cmnd, sglist, cblk->sglen, i) { 2616 scsi_for_each_sg(cmnd, sglist, cblk->sglen, i) {
2617 sg->data = cpu_to_le32((u32)sg_dma_address(sglist)); 2617 sg->data = cpu_to_le32((u32)sg_dma_address(sglist));
2618 total_len += sg->len = cpu_to_le32((u32)sg_dma_len(sglist)); 2618 total_len += sg->len = cpu_to_le32((u32)sg_dma_len(sglist));
2619 ++sg;
2619 } 2620 }
2620 2621
2621 cblk->buflen = (scsi_bufflen(cmnd) > total_len) ? 2622 cblk->buflen = (scsi_bufflen(cmnd) > total_len) ?
@@ -2867,6 +2868,7 @@ static int initio_probe_one(struct pci_dev *pdev,
2867 } 2868 }
2868 host = (struct initio_host *)shost->hostdata; 2869 host = (struct initio_host *)shost->hostdata;
2869 memset(host, 0, sizeof(struct initio_host)); 2870 memset(host, 0, sizeof(struct initio_host));
2871 host->addr = pci_resource_start(pdev, 0);
2870 2872
2871 if (!request_region(host->addr, 256, "i91u")) { 2873 if (!request_region(host->addr, 256, "i91u")) {
2872 printk(KERN_WARNING "initio: I/O port range 0x%x is busy.\n", host->addr); 2874 printk(KERN_WARNING "initio: I/O port range 0x%x is busy.\n", host->addr);
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c
index 98dfd6ea209c..328c47c6aeb1 100644
--- a/drivers/scsi/st.c
+++ b/drivers/scsi/st.c
@@ -3611,6 +3611,7 @@ static struct st_buffer *
3611 3611
3612 tb->dma = need_dma; 3612 tb->dma = need_dma;
3613 tb->buffer_size = got; 3613 tb->buffer_size = got;
3614 sg_init_table(tb->sg, max_sg);
3614 3615
3615 return tb; 3616 return tb;
3616} 3617}
diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
index 0f74aba5b237..9e0908d1981a 100644
--- a/drivers/scsi/sym53c8xx_2/sym_glue.c
+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
@@ -1243,7 +1243,7 @@ static void sym_free_resources(struct sym_hcb *np, struct pci_dev *pdev)
1243 * Free O/S specific resources. 1243 * Free O/S specific resources.
1244 */ 1244 */
1245 if (pdev->irq) 1245 if (pdev->irq)
1246 free_irq(pdev->irq, np); 1246 free_irq(pdev->irq, np->s.host);
1247 if (np->s.ioaddr) 1247 if (np->s.ioaddr)
1248 pci_iounmap(pdev, np->s.ioaddr); 1248 pci_iounmap(pdev, np->s.ioaddr);
1249 if (np->s.ramaddr) 1249 if (np->s.ramaddr)
diff --git a/drivers/scsi/sym53c8xx_2/sym_hipd.c b/drivers/scsi/sym53c8xx_2/sym_hipd.c
index 463f119f20e9..254bdaeb35ff 100644
--- a/drivers/scsi/sym53c8xx_2/sym_hipd.c
+++ b/drivers/scsi/sym53c8xx_2/sym_hipd.c
@@ -2791,7 +2791,7 @@ irqreturn_t sym_interrupt(struct Scsi_Host *shost)
2791 istat = INB(np, nc_istat); 2791 istat = INB(np, nc_istat);
2792 if (istat & INTF) { 2792 if (istat & INTF) {
2793 OUTB(np, nc_istat, (istat & SIGP) | INTF | np->istat_sem); 2793 OUTB(np, nc_istat, (istat & SIGP) | INTF | np->istat_sem);
2794 istat = INB(np, nc_istat); /* DUMMY READ */ 2794 istat |= INB(np, nc_istat); /* DUMMY READ */
2795 if (DEBUG_FLAGS & DEBUG_TINY) printf ("F "); 2795 if (DEBUG_FLAGS & DEBUG_TINY) printf ("F ");
2796 sym_wakeup_done(np); 2796 sym_wakeup_done(np);
2797 } 2797 }