Serge Belyshev 4ecbca8554 Remove unnecessary cast in prefetch()
It is ok to call prefetch() function with NULL argument, as specifically
commented in include/linux/prefetch.h.  But in standard C, it is invalid
to dereference NULL pointer (see C99 standard 6.5.3.2 paragraph 4 and
note #84).

prefetch() has a memory reference for its argument.

Newer gcc versions (4.3 and above) will use that to conclude that "x"
argument is non-null and thus wreaking havok everywhere prefetch() was
inlined.

Fixed by removing cast and changing asm constraint.

[ It seems in theory gcc 4.2 could miscompile this too; although no
  cases known.  In 2.6.24 we should probably switch to
  __builtin_prefetch() instead, but this is a simpler fix for now.
				-- AK ]

Signed-off-by: Serge Belyshev <belyshev@depni.sinp.msu.ru>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-05 08:04:35 -07:00
..
2005-04-16 15:20:36 -07:00
2007-05-08 11:15:20 -07:00
2006-12-08 08:28:39 -08:00
2005-04-16 15:20:36 -07:00
2006-10-03 23:01:26 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-05-02 19:27:06 +02:00
2006-06-26 10:48:16 -07:00
2006-01-18 19:20:31 -08:00
2005-04-16 15:20:36 -07:00
2007-07-17 10:23:11 -07:00
2005-04-16 15:20:36 -07:00
2007-07-21 18:37:09 -07:00
2006-09-26 10:52:39 +02:00
2007-07-21 18:37:12 -07:00
2005-04-16 15:20:36 -07:00
2006-01-11 19:04:55 -08:00
2006-01-10 08:01:34 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-07-19 10:04:44 -07:00
2005-04-16 15:20:36 -07:00
2007-05-08 11:15:20 -07:00
2005-04-16 15:20:36 -07:00
2006-02-15 15:32:22 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-11-14 16:57:46 +01:00
2007-05-11 08:29:34 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-07-22 11:03:37 -07:00
2005-04-16 15:20:36 -07:00
2007-07-21 18:37:10 -07:00
2005-04-16 15:20:36 -07:00
2006-09-26 10:52:32 +02:00
2007-05-02 19:02:34 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-02-12 09:48:39 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-05-01 08:59:08 -07:00
2006-09-26 10:52:26 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2007-07-26 11:11:57 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-12-15 08:47:51 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00