sparc32: unaligned memory access (MNA) trap handler bug

Since commit f0e98c387e ("[SPARC]: Fix
link errors with gcc-4.3") the MNA trap handler does not emulate
stores to unaligned addresses correctly. MNA operation from both
kernel and user space are affected.

A typical effect of this bug is nr_frags in skbs are overwritten
during buffer copying/checksum-calculation, or maximally 6 bytes
of data in the network buffer will be overwitten with garbage.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Daniel Hellstrom 2011-02-01 12:39:59 -08:00 committed by David S. Miller
parent 5edddaab1d
commit 2492218c63
1 changed files with 2 additions and 2 deletions

View File

@ -24,9 +24,9 @@ retl_efault:
.globl __do_int_store .globl __do_int_store
__do_int_store: __do_int_store:
ld [%o2], %g1 ld [%o2], %g1
cmp %1, 2 cmp %o1, 2
be 2f be 2f
cmp %1, 4 cmp %o1, 4
be 1f be 1f
srl %g1, 24, %g2 srl %g1, 24, %g2
srl %g1, 16, %g7 srl %g1, 16, %g7