Re: atomic_kmap for PIO (was Re: Fw: Kernel panic with dc395x in 2.6.12.2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

On Tue, 13 Sep 2005, Guennadi Liakhovetski wrote:

> On Mon, 12 Sep 2005, James Bottomley wrote:
> 
> > On Mon, 2005-09-05 at 23:50 +0200, Guennadi Liakhovetski wrote:
> > > 
> > > 2) try to find some beta-testers by applying something like the below:
> > 
> > OK, why don't we do this.  I'll put it into scsi-misc-2.6; that will
> > queue it for 2.6.14 and also put it in -mm.  It will probably be a month
> > at least before scsi-misc-2.6 goes into 2.6.14, so you have until that
> > time to find problems in it and back it out ...
> 
> You mean option 2? Then, please, take the one below - it will not give 
> false positives on dc395x.

You were faster than I - I checked scsi-misc-2.6, you already applied the 
first version:-( But it will trigger on every dc395x, which is, of course, 
useless. Could you, please, replace it with the one below, or should I 
send an incremental patch? Really sorry.

Thanks
Guennadi
---
Guennadi Liakhovetski

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>

Index: linux-2_6/drivers/scsi/dc395x.c
===================================================================
RCS file: /usr/src/cvs/linux-2_6/drivers/scsi/dc395x.c,v
retrieving revision 1.1.1.8
diff -u -p -r1.1.1.8 dc395x.c
--- linux-2_6/drivers/scsi/dc395x.c	2 Sep 2005 19:16:29 -0000	1.1.1.8
+++ linux-2_6/drivers/scsi/dc395x.c	5 Sep 2005 20:38:23 -0000
@@ -976,6 +976,16 @@
 	}
 }
 
+static inline void pio_trigger(void)
+{
+	static int feedback_requested;
+
+	if (!feedback_requested) {
+		feedback_requested = 1;
+		printk(KERN_WARNING "%s: Please, contact <linux-scsi@xxxxxxxxxxxxxxx> "
+		       "to help improve support for your system.\n", __FILE__);
+	}
+}
 
 /* Prepare SRB for being sent to Device DCB w/ command *cmd */
 static void build_srb(struct scsi_cmnd *cmd, struct DeviceCtlBlk *dcb,
@@ -2320,6 +2330,7 @@
 					      CFG2_WIDEFIFO);
 			while (DC395x_read8(acb, TRM_S1040_SCSI_FIFOCNT) != 0x40) {
 				u8 byte = DC395x_read8(acb, TRM_S1040_SCSI_FIFO);
+				pio_trigger();
 				*(srb->virt_addr)++ = byte;
 				if (debug_enabled(DBG_PIO))
 					printk(" %02x", byte);
@@ -2331,6 +2342,7 @@
                 /* Read the last byte ... */
 				if (srb->total_xfer_length > 0) {
 					u8 byte = DC395x_read8(acb, TRM_S1040_SCSI_FIFO);
+					pio_trigger();
 					*(srb->virt_addr)++ = byte;
 					srb->total_xfer_length--;
 					if (debug_enabled(DBG_PIO))
@@ -2507,6 +2519,7 @@
 				if (debug_enabled(DBG_PIO))
 					printk(" %02x", (unsigned char) *(srb->virt_addr));
 
+				pio_trigger();
 				DC395x_write8(acb, TRM_S1040_SCSI_FIFO, 
 				     *(srb->virt_addr)++);
 
Index: linux-2_6/drivers/scsi/tmscsim.c
===================================================================
RCS file: /usr/src/cvs/linux-2_6/drivers/scsi/tmscsim.c,v
retrieving revision 1.1.1.9
diff -u -p -r1.1.1.9 tmscsim.c
--- linux-2_6/drivers/scsi/tmscsim.c	2 Sep 2005 19:16:29 -0000	1.1.1.9
+++ linux-2_6/drivers/scsi/tmscsim.c	5 Sep 2005 20:38:31 -0000
@@ -988,7 +988,15 @@
 
 	    if( residual )
 	    {
+		static int feedback_requested;
 		bval = DC390_read8 (ScsiFifo);	    /* get one residual byte */
+
+		if (!feedback_requested) {
+			feedback_requested = 1;
+			printk(KERN_WARNING "%s: Please, contact <linux-scsi@xxxxxxxxxxxxxxx> "
+			       "to help improve support for your system.\n", __FILE__);
+		}
+
 		ptr = (u8 *) bus_to_virt( pSRB->SGBusAddr );
 		*ptr = bval;
 		pSRB->SGBusAddr++; xferCnt++;
-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux