[PATCH] matroxfb: fix incorrect use of memcpy_toio()

STALE5842d

3 messages, 2 authors, 2010-08-11 · open the first message on its own page

[PATCH] matroxfb: fix incorrect use of memcpy_toio()

From: Ondrej Zary <hidden>
Date: 2010-08-11 20:27:54

Fix incorrect use of memcpy_toio() in matroxfb that broke in 2.6.34 on x86.

Signed-off-by: Ondrej Zary <redacted>
--- linux-2.6.35-rc2/drivers/video/matrox/matroxfb_base.h	2010-06-06 05:43:24.000000000 +0200
+++ linux-2.6.35-rc3/drivers/video/matrox/matroxfb_base.h	2010-08-03 18:13:46.000000000 +0200
@@ -151,13 +151,13 @@ static inline void mga_writel(vaddr_t va
 static inline void mga_memcpy_toio(vaddr_t va, const void* src, int len) {
 #if defined(__alpha__) || defined(__i386__) || defined(__x86_64__)
 	/*
-	 * memcpy_toio works for us if:
+	 * iowrite32_rep works for us if:
 	 *  (1) Copies data as 32bit quantities, not byte after byte,
 	 *  (2) Performs LE ordered stores, and
 	 *  (3) It copes with unaligned source (destination is guaranteed to be page
 	 *      aligned and length is guaranteed to be multiple of 4).
 	 */
-	memcpy_toio(va.vaddr, src, len);
+	iowrite32_rep(va.vaddr, src, len >> 2);
 #else
         u_int32_t __iomem* addr = va.vaddr;
 

-- 
Ondrej Zary

Re: [PATCH] matroxfb: fix incorrect use of memcpy_toio()

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2010-08-11 20:42:32

On Wed, 11 Aug 2010 22:27:42 +0200
Ondrej Zary [off-list ref] wrote:
Fix incorrect use of memcpy_toio() in matroxfb that broke in 2.6.34 on x86.
Thanks.

What was incorrect about it?  And what is the user-visible effect of
this regression?

Re: [PATCH] matroxfb: fix incorrect use of memcpy_toio()

From: Ondrej Zary <hidden>
Date: 2010-08-11 21:17:05

On Wednesday 11 August 2010 22:41:36 Andrew Morton wrote:
On Wed, 11 Aug 2010 22:27:42 +0200

Ondrej Zary [off-list ref] wrote:
quoted
Fix incorrect use of memcpy_toio() in matroxfb that broke in 2.6.34 on
x86.
Thanks.

What was incorrect about it?  And what is the user-visible effect of
this regression?
Screen is completely corrupted since 2.6.34. Bisection revealed that it's 
caused by commit 6175ddf06b6172046a329e3abfd9c901a43efd2e. H. Peter Anvin 
explained that memcpy_toio() does not copy data in 32bit chunks anymore on 
x86.

See: http://lkml.org/lkml/2010/8/2/409

-- 
Ondrej Zary
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help