[parisc-linux] Re: rmmod lasi700 hangs the machine

James Bottomley James.Bottomley@HansenPartnership.com
Thu, 27 Dec 2001 14:23:03 -0600


This is a multipart MIME message.

--==_Exmh_-7787221390
Content-Type: text/plain; charset=us-ascii

As Grant says, its hard to debug this type of thing.  However, I do have a 
theory:  The free_irq() call in parisc doesn't do an irq shutdown (which 
disables the irq).  This looks like an omission, since I thought the 
behaviours of the arch irq.c's were all converging.  It is possible that an 
unhandled interrupt would cause the type of problem you describe

A simple test of the theory is to try the attached patch and see if that fixes 
the problem.  If that doesn't work, I'll try to reproduce (although this will 
take a while since I'll have to construct an NFS boot environment).

James




--==_Exmh_-7787221390
Content-Type: text/plain ; name="tmp.diff"; charset=us-ascii
Content-Description: tmp.diff
Content-Disposition: attachment; filename="tmp.diff"

Index: drivers/scsi/lasi700.c
===================================================================
RCS file: /var/cvs/linux/drivers/scsi/lasi700.c,v
retrieving revision 1.5
diff -u -r1.5 lasi700.c
--- drivers/scsi/lasi700.c	2001/12/26 22:41:16	1.5
+++ drivers/scsi/lasi700.c	2001/12/27 20:20:59
@@ -195,6 +195,7 @@
 
 	NCR_700_release(host);
 	kfree(hostdata);
+	disable_irq(host->irq);
 	free_irq(host->irq, host);
 	release_mem_region(host->base, 64);
 	return 1;

--==_Exmh_-7787221390--