public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Stuart Swales <stuart.swales@croftnuisk.co.uk>
To: linux-scsi@vger.kernel.org
Subject: [PATCH 2.6.24-rc8-git6] initio module hangs on loading fix set
Date: Wed, 23 Jan 2008 20:00:48 +0000	[thread overview]
Message-ID: <47979CF0.7060104@croftnuisk.co.uk> (raw)

I've verified (on my Initio 9100 with a DAT drive) that the 
2.6.24-rc8-git6 initio module still hangs on loading.

These fixes (other than the printk) are needed to get the module to load 
ok (and work correctly) with my adapter & tape drive.

a) printk cosmetic fix

b) cblk->sglen needs setting for later DMA I/O routines to use

c) host->bios_addr needs setting for debug output correctness

d) semaph & semaph_lock initialisation had got lost since 2.6.22

e) since 2.6.22 the bios data address was truncated to 16 bits (needs 20 
when shifted left)

Stuart Swales

--- linux-2.6.24-rc8-git6/drivers/scsi/initio.c	2008-01-16 
04:22:48.000000000 +0000
+++ linux-2.6.24-rc8-git6-sks/drivers/scsi/initio.c	2008-01-23 
18:52:04.000000000 +0000
@@ -823,7 +823,7 @@ static void initio_append_busy_scb(struc
  {

  #if DEBUG_QUEUE
-	printk("append busy SCB %o; ", scbp);
+	printk("append busy SCB %p; ", scbp); /* SKS: not %o */
  #endif
  	if (scbp->tagmsg)
  		host->act_tags[scbp->target]++;
@@ -2609,6 +2609,7 @@ static void initio_build_scb(struct init
  		cblk->bufptr = cpu_to_le32((u32)dma_addr);
  		cmnd->SCp.dma_handle = dma_addr;

+		cblk->sglen = nseg; /* SKS: needs setting for DMA routine */

  		cblk->flags |= SCF_SG;	/* Turn on SG list flag       */
  		total_len = 0;
@@ -2869,6 +2870,7 @@ static int initio_probe_one(struct pci_d
  	host = (struct initio_host *)shost->hostdata;
  	memset(host, 0, sizeof(struct initio_host));
  	host->addr = pci_resource_start(pdev, 0);
+	host->bios_addr = bios_seg; /* SKS: required for debug output */

  	if (!request_region(host->addr, 256, "i91u")) {
  		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_d

  	host->pci_dev = pdev;

+	host->semaph = 1; /* SKS */
+	spin_lock_init(&host->semaph_lock);
  	host->num_scbs = num_scb;
  	host->scb = scb;
  	host->next_pending = scb;
@@ -2911,7 +2915,7 @@ static int initio_probe_one(struct pci_d
  	host->last_avail = prev;
  	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))); /* SKS: u16 
would lose bits when shifted left */

  	host->jsstatus0 = 0;



             reply	other threads:[~2008-01-23 20:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-23 20:00 Stuart Swales [this message]
2008-01-23 23:45 ` [PATCH 2.6.24-rc8-git6] initio module hangs on loading fix set James Bottomley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47979CF0.7060104@croftnuisk.co.uk \
    --to=stuart.swales@croftnuisk.co.uk \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox