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: fix module hangs on loading
This commit is contained in:
commit
eab99d9b97
1 changed files with 6 additions and 2 deletions
|
@ -823,7 +823,7 @@ static void initio_append_busy_scb(struct initio_host * host, struct scsi_ctrl_b
|
||||||
{
|
{
|
||||||
|
|
||||||
#if DEBUG_QUEUE
|
#if DEBUG_QUEUE
|
||||||
printk("append busy SCB %o; ", scbp);
|
printk("append busy SCB %p; ", scbp);
|
||||||
#endif
|
#endif
|
||||||
if (scbp->tagmsg)
|
if (scbp->tagmsg)
|
||||||
host->act_tags[scbp->target]++;
|
host->act_tags[scbp->target]++;
|
||||||
|
@ -2609,6 +2609,7 @@ static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * c
|
||||||
cblk->bufptr = cpu_to_le32((u32)dma_addr);
|
cblk->bufptr = cpu_to_le32((u32)dma_addr);
|
||||||
cmnd->SCp.dma_handle = dma_addr;
|
cmnd->SCp.dma_handle = dma_addr;
|
||||||
|
|
||||||
|
cblk->sglen = nseg;
|
||||||
|
|
||||||
cblk->flags |= SCF_SG; /* Turn on SG list flag */
|
cblk->flags |= SCF_SG; /* Turn on SG list flag */
|
||||||
total_len = 0;
|
total_len = 0;
|
||||||
|
@ -2869,6 +2870,7 @@ static int initio_probe_one(struct pci_dev *pdev,
|
||||||
host = (struct initio_host *)shost->hostdata;
|
host = (struct initio_host *)shost->hostdata;
|
||||||
memset(host, 0, sizeof(struct initio_host));
|
memset(host, 0, sizeof(struct initio_host));
|
||||||
host->addr = pci_resource_start(pdev, 0);
|
host->addr = pci_resource_start(pdev, 0);
|
||||||
|
host->bios_addr = bios_seg;
|
||||||
|
|
||||||
if (!request_region(host->addr, 256, "i91u")) {
|
if (!request_region(host->addr, 256, "i91u")) {
|
||||||
printk(KERN_WARNING "initio: I/O port range 0x%x is busy.\n", host->addr);
|
printk(KERN_WARNING "initio: I/O port range 0x%x is busy.\n", host->addr);
|
||||||
|
@ -2895,6 +2897,8 @@ static int initio_probe_one(struct pci_dev *pdev,
|
||||||
|
|
||||||
host->pci_dev = pdev;
|
host->pci_dev = pdev;
|
||||||
|
|
||||||
|
host->semaph = 1;
|
||||||
|
spin_lock_init(&host->semaph_lock);
|
||||||
host->num_scbs = num_scb;
|
host->num_scbs = num_scb;
|
||||||
host->scb = scb;
|
host->scb = scb;
|
||||||
host->next_pending = scb;
|
host->next_pending = scb;
|
||||||
|
@ -2911,7 +2915,7 @@ static int initio_probe_one(struct pci_dev *pdev,
|
||||||
host->last_avail = prev;
|
host->last_avail = prev;
|
||||||
spin_lock_init(&host->avail_lock);
|
spin_lock_init(&host->avail_lock);
|
||||||
|
|
||||||
initio_init(host, phys_to_virt(bios_seg << 4));
|
initio_init(host, phys_to_virt(((u32)bios_seg << 4)));
|
||||||
|
|
||||||
host->jsstatus0 = 0;
|
host->jsstatus0 = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue