[parisc-linux] Re: zalon/ncr53c720 crashes K460 (parisc port) on bootup.
Matthew Wilcox
willy@debian.org
Sat, 27 Sep 2003 18:23:33 +0100
On Sat, Sep 27, 2003 at 10:45:50AM -0500, James Bottomley wrote:
> This should fix the panic, but it simply detaches correctly.
Necessary, but not sufficient, I think ... look at ncr_attach().
It doesn't zero hostdata->ncb. Adding that is easy enough ... I'm about
to commit a patch to the parisc tree containing this fix.
> ===== drivers/scsi/ncr53c8xx.c 1.37 vs edited =====
> --- 1.37/drivers/scsi/ncr53c8xx.c Thu Sep 25 20:08:49 2003
> +++ edited/drivers/scsi/ncr53c8xx.c Sat Sep 27 09:44:21 2003
> @@ -8585,12 +8585,17 @@
>
> int ncr53c8xx_release(struct Scsi_Host *host)
> {
> + ncb_p np;
> + struct host_data *host_data;
> +
> #ifdef DEBUG_NCR53C8XX
> -printk("ncr53c8xx : release\n");
> + printk("ncr53c8xx : release\n");
> #endif
> - ncr_detach(((struct host_data *) host->hostdata)->ncb);
> + if((host_data = (struct host_data *)host->hostdata) &&
> + host_data->ncb)
> + ncr_detach(host_data->ncb);
>
> - return 1;
> + return 1;
> }
>
>
> ===== drivers/scsi/zalon.c 1.11 vs edited =====
> --- 1.11/drivers/scsi/zalon.c Thu Sep 25 20:08:51 2003
> +++ edited/drivers/scsi/zalon.c Sat Sep 27 10:31:52 2003
> @@ -146,7 +146,7 @@
>
> host = ncr_attach(&zalon7xx_template, unit, &device);
> if (!host)
> - goto fail;
> + goto out;
>
> if (request_irq(irq, ncr53c8xx_intr, SA_SHIRQ, dev->dev.bus_id, host)) {
> printk(KERN_ERR "%s: irq problem with %d, detaching\n ",
> @@ -169,6 +169,7 @@
> free_irq(irq, host);
> fail:
> ncr53c8xx_release(host);
> + out:
> return error;
> }
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk