mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 21:52:04 +00:00
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
This commit is contained in:
commit
c7eeae734f
@ -906,8 +906,7 @@ static int adpt_install_hba(struct scsi_host_template* sht, struct pci_dev* pDev
|
||||
}
|
||||
|
||||
pci_set_master(pDev);
|
||||
if (pci_set_dma_mask(pDev, DMA_64BIT_MASK) &&
|
||||
pci_set_dma_mask(pDev, DMA_32BIT_MASK))
|
||||
if (pci_set_dma_mask(pDev, DMA_32BIT_MASK))
|
||||
return -EINVAL;
|
||||
|
||||
base_addr0_phys = pci_resource_start(pDev,0);
|
||||
|
@ -2616,6 +2616,7 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
|
||||
scsi_for_each_sg(cmnd, sglist, cblk->sglen, i) {
|
||||
sg->data = cpu_to_le32((u32)sg_dma_address(sglist));
|
||||
total_len += sg->len = cpu_to_le32((u32)sg_dma_len(sglist));
|
||||
++sg;
|
||||
}
|
||||
|
||||
cblk->buflen = (scsi_bufflen(cmnd) > total_len) ?
|
||||
@ -2867,6 +2868,7 @@ static int initio_probe_one(struct pci_dev *pdev,
|
||||
}
|
||||
host = (struct initio_host *)shost->hostdata;
|
||||
memset(host, 0, sizeof(struct initio_host));
|
||||
host->addr = pci_resource_start(pdev, 0);
|
||||
|
||||
if (!request_region(host->addr, 256, "i91u")) {
|
||||
printk(KERN_WARNING "initio: I/O port range 0x%x is busy.\n", host->addr);
|
||||
|
@ -3611,6 +3611,7 @@ static struct st_buffer *
|
||||
|
||||
tb->dma = need_dma;
|
||||
tb->buffer_size = got;
|
||||
sg_init_table(tb->sg, max_sg);
|
||||
|
||||
return tb;
|
||||
}
|
||||
|
@ -1243,7 +1243,7 @@ static void sym_free_resources(struct sym_hcb *np, struct pci_dev *pdev)
|
||||
* Free O/S specific resources.
|
||||
*/
|
||||
if (pdev->irq)
|
||||
free_irq(pdev->irq, np);
|
||||
free_irq(pdev->irq, np->s.host);
|
||||
if (np->s.ioaddr)
|
||||
pci_iounmap(pdev, np->s.ioaddr);
|
||||
if (np->s.ramaddr)
|
||||
|
@ -2791,7 +2791,7 @@ irqreturn_t sym_interrupt(struct Scsi_Host *shost)
|
||||
istat = INB(np, nc_istat);
|
||||
if (istat & INTF) {
|
||||
OUTB(np, nc_istat, (istat & SIGP) | INTF | np->istat_sem);
|
||||
istat = INB(np, nc_istat); /* DUMMY READ */
|
||||
istat |= INB(np, nc_istat); /* DUMMY READ */
|
||||
if (DEBUG_FLAGS & DEBUG_TINY) printf ("F ");
|
||||
sym_wakeup_done(np);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user