Re: bogus barriers in sym53c8xx_2?

From: Matthew Wilcox <willy_at_debian.org>
Date: 2003-08-20 13:26:11
On Tue, Aug 19, 2003 at 04:49:53PM -0700, David Mosberger wrote:
> In drivers/scsi/sym53c8xx_2/sym_misc.h we find:
> 
> #elif	defined	__ia64__
> #define __READ_BARRIER()	__asm__ volatile("mf.a; mf" : : : "memory")
> #define __WRITE_BARRIER()	__asm__ volatile("mf.a; mf" : : : "memory")
> 
> based on the comments and the other implementations, these barriers
> are bogus and the "mf.a" should be dropped.
> 
> Anyone know who wrote this code originally and why the mf.a was added?
> 
> mf.a is very slow and should be avoided except were truly needed.

I'm sure Gerard must have written it originally.  It's there
in the earliest version of the sym2 driver I can find --
sym-2.1.16a-for-linux-2.4.13.patch.gz.  A similar barrier is there in
the sym1 driver (drivers/scsi/sym53c8xx_defs.h).  It seems to have been
introduced around 2.4.3 (symbios driver version 1.6b -> 1.7.3a-20010304)

So you're looking for a patch which looks something like this:

- #define __READ_BARRIER()	__asm__ volatile("mf.a; mf" : : : "memory")
- #define __WRITE_BARRIER()	__asm__ volatile("mf.a; mf" : : : "memory")
+ #define __READ_BARRIER()	__asm__ volatile("mf" : : : "memory")
+ #define __WRITE_BARRIER()	__asm__ volatile("mf" : : : "memory")

Or really, might be better to just define them to rmb() and wmb()?

-- 
"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
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Aug 19 23:27:47 2003

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:16 EST