All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] make ncr53c8xx work with bio.
@ 2001-12-04 13:35 Dave Jones
  2001-12-04 19:23 ` Gérard Roudier
  0 siblings, 1 reply; 2+ messages in thread
From: Dave Jones @ 2001-12-04 13:35 UTC (permalink / raw
  To: groudier; +Cc: Linux Kernel

Hi folks,
 Patch below makes ncr53c8xx driver compile again in 2.5.1pre5.
 Seems to have survived yesterdays torture tests.

regards,
Dave.

diff -urN --exclude-from=/home/davej/.exclude linux/drivers/scsi/ncr53c8xx.c linux-dj/drivers/scsi/ncr53c8xx.c
--- linux/drivers/scsi/ncr53c8xx.c	Sun Sep 30 20:26:07 2001
+++ linux-dj/drivers/scsi/ncr53c8xx.c	Mon Dec  3 16:44:11 2001
@@ -8625,9 +8625,9 @@
      if (DEBUG_FLAGS & DEBUG_TINY) printk ("]\n");
 
      if (done_list) {
-          NCR_LOCK_SCSI_DONE(np, flags);
+          NCR_LOCK_SCSI_DONE(done_list->host, flags);
           ncr_flush_done_cmds(done_list);
-          NCR_UNLOCK_SCSI_DONE(np, flags);
+          NCR_UNLOCK_SCSI_DONE(done_list->host, flags);
      }
 }
 
@@ -8648,9 +8648,9 @@
      NCR_UNLOCK_NCB(np, flags);
 
      if (done_list) {
-          NCR_LOCK_SCSI_DONE(np, flags);
+          NCR_LOCK_SCSI_DONE(done_list->host, flags);
           ncr_flush_done_cmds(done_list);
-          NCR_UNLOCK_SCSI_DONE(np, flags);
+          NCR_UNLOCK_SCSI_DONE(done_list->host, flags);
      }
 }
 
diff -urN --exclude-from=/home/davej/.exclude linux/drivers/scsi/sym53c8xx_comm.h linux-dj/drivers/scsi/sym53c8xx_comm.h
--- linux/drivers/scsi/sym53c8xx_comm.h	Fri Oct 12 23:35:54 2001
+++ linux-dj/drivers/scsi/sym53c8xx_comm.h	Mon Dec  3 16:43:38 2001
@@ -438,10 +438,10 @@
 #define	NCR_LOCK_NCB(np, flags)    spin_lock_irqsave(&np->smp_lock, flags)
 #define	NCR_UNLOCK_NCB(np, flags)  spin_unlock_irqrestore(&np->smp_lock, flags)
 
-#define	NCR_LOCK_SCSI_DONE(np, flags) \
-		spin_lock_irqsave(&io_request_lock, flags)
-#define	NCR_UNLOCK_SCSI_DONE(np, flags) \
-		spin_unlock_irqrestore(&io_request_lock, flags)
+#define	NCR_LOCK_SCSI_DONE(host, flags) \
+		spin_lock_irqsave(&(host)->host_lock, flags)
+#define	NCR_UNLOCK_SCSI_DONE(host, flags) \
+		spin_unlock_irqrestore(&((host)->host_lock), flags)
 
 #else
 
@@ -452,8 +452,8 @@
 #define	NCR_LOCK_NCB(np, flags)    do { save_flags(flags); cli(); } while (0)
 #define	NCR_UNLOCK_NCB(np, flags)  do { restore_flags(flags); } while (0)
 
-#define	NCR_LOCK_SCSI_DONE(np, flags)    do {;} while (0)
-#define	NCR_UNLOCK_SCSI_DONE(np, flags)  do {;} while (0)
+#define	NCR_LOCK_SCSI_DONE(host, flags)    do {;} while (0)
+#define	NCR_UNLOCK_SCSI_DONE(host, flags)  do {;} while (0)
 
 #endif
 

-- 
| Dave Jones.                    http://www.codemonkey.org.uk
| SuSE Labs .

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] make ncr53c8xx work with bio.
  2001-12-04 13:35 [PATCH] make ncr53c8xx work with bio Dave Jones
@ 2001-12-04 19:23 ` Gérard Roudier
  0 siblings, 0 replies; 2+ messages in thread
From: Gérard Roudier @ 2001-12-04 19:23 UTC (permalink / raw
  To: Dave Jones; +Cc: Linux Kernel


Hi Dave,

Indeed the patch does make the ncr53c8xx driver compile and work again.
If Linus accepts to apply your patch, this will be just fine.

However, the question about still having ncr53c8xx and may-be sym53c8xx
version 1 in linux-2.5, given that sym-2 can, at least in theory, replaces
both, is not yet answered.

Anyway, at minimal, these drivers should get made conformant to eh
expectations and also modified as follows:

- Remove the double spin_locking.

- Remove the batching of completions prior to give them back to upper
  layer. This is useless given that no recursive call can happen and
  such batching is done by scsi layer thanks to forced new eh.

Such changes are easy to make, at least by me, and I will propose them if
it gets proven that these drivers versions are still useful for linux-2.5.
This depends obviously on the actual reliability of sym-2 compared to the
bundle ncr53c8xx/sym53c8xx. Only practice can give the right answer.

In the meantime, maintaining these drivers at minimal compilable and
working is certainly a good thing.

  Gérard.

On Tue, 4 Dec 2001, Dave Jones wrote:

> Hi folks,
>  Patch below makes ncr53c8xx driver compile again in 2.5.1pre5.
>  Seems to have survived yesterdays torture tests.
>
> regards,
> Dave.
>
> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/scsi/ncr53c8xx.c linux-dj/drivers/scsi/ncr53c8xx.c
> --- linux/drivers/scsi/ncr53c8xx.c	Sun Sep 30 20:26:07 2001
> +++ linux-dj/drivers/scsi/ncr53c8xx.c	Mon Dec  3 16:44:11 2001
> @@ -8625,9 +8625,9 @@
>       if (DEBUG_FLAGS & DEBUG_TINY) printk ("]\n");
>
>       if (done_list) {
> -          NCR_LOCK_SCSI_DONE(np, flags);
> +          NCR_LOCK_SCSI_DONE(done_list->host, flags);
>            ncr_flush_done_cmds(done_list);
> -          NCR_UNLOCK_SCSI_DONE(np, flags);
> +          NCR_UNLOCK_SCSI_DONE(done_list->host, flags);
>       }
>  }
>
> @@ -8648,9 +8648,9 @@
>       NCR_UNLOCK_NCB(np, flags);
>
>       if (done_list) {
> -          NCR_LOCK_SCSI_DONE(np, flags);
> +          NCR_LOCK_SCSI_DONE(done_list->host, flags);
>            ncr_flush_done_cmds(done_list);
> -          NCR_UNLOCK_SCSI_DONE(np, flags);
> +          NCR_UNLOCK_SCSI_DONE(done_list->host, flags);
>       }
>  }
>
> diff -urN --exclude-from=/home/davej/.exclude linux/drivers/scsi/sym53c8xx_comm.h linux-dj/drivers/scsi/sym53c8xx_comm.h
> --- linux/drivers/scsi/sym53c8xx_comm.h	Fri Oct 12 23:35:54 2001
> +++ linux-dj/drivers/scsi/sym53c8xx_comm.h	Mon Dec  3 16:43:38 2001
> @@ -438,10 +438,10 @@
>  #define	NCR_LOCK_NCB(np, flags)    spin_lock_irqsave(&np->smp_lock, flags)
>  #define	NCR_UNLOCK_NCB(np, flags)  spin_unlock_irqrestore(&np->smp_lock, flags)
>
> -#define	NCR_LOCK_SCSI_DONE(np, flags) \
> -		spin_lock_irqsave(&io_request_lock, flags)
> -#define	NCR_UNLOCK_SCSI_DONE(np, flags) \
> -		spin_unlock_irqrestore(&io_request_lock, flags)
> +#define	NCR_LOCK_SCSI_DONE(host, flags) \
> +		spin_lock_irqsave(&(host)->host_lock, flags)
> +#define	NCR_UNLOCK_SCSI_DONE(host, flags) \
> +		spin_unlock_irqrestore(&((host)->host_lock), flags)
>
>  #else
>
> @@ -452,8 +452,8 @@
>  #define	NCR_LOCK_NCB(np, flags)    do { save_flags(flags); cli(); } while (0)
>  #define	NCR_UNLOCK_NCB(np, flags)  do { restore_flags(flags); } while (0)
>
> -#define	NCR_LOCK_SCSI_DONE(np, flags)    do {;} while (0)
> -#define	NCR_UNLOCK_SCSI_DONE(np, flags)  do {;} while (0)
> +#define	NCR_LOCK_SCSI_DONE(host, flags)    do {;} while (0)
> +#define	NCR_UNLOCK_SCSI_DONE(host, flags)  do {;} while (0)
>
>  #endif
>
>
> --
> | Dave Jones.                    http://www.codemonkey.org.uk
> | SuSE Labs .
>
>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-12-04 22:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-12-04 13:35 [PATCH] make ncr53c8xx work with bio Dave Jones
2001-12-04 19:23 ` Gérard Roudier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.