summaryrefslogtreecommitdiffstats
path: root/arch/parisc/configs
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2017-04-14 14:15:20 -0400
committerHelge Deller <deller@gmx.de>2017-04-15 17:24:05 +0200
commit409c1b250e30ad0e48b4d15d7319b4e18c046c4f (patch)
treea8680bebdd618adcf49b0f481f0896157a3cecb5 /arch/parisc/configs
parent1bf4b1268e66d9364fc6fd41f906bc01458530ac (diff)
downloadlinux-409c1b250e30ad0e48b4d15d7319b4e18c046c4f.tar.bz2
parisc: fix bugs in pa_memcpy
The patch 554bfeceb8a22d448cd986fc9efce25e833278a1 ("parisc: Fix access fault handling in pa_memcpy()") reimplements the pa_memcpy function. Unfortunatelly, it makes the kernel unbootable. The crash happens in the function ide_complete_cmd where memcpy is called with the same source and destination address. This patch fixes a few bugs in pa_memcpy: * When jumping to .Lcopy_loop_16 for the first time, don't skip the instruction "ldi 31,t0" (this bug made the kernel unbootable) * Use the COND macro when comparing length, so that the comparison is 64-bit (a theoretical issue, in case the length is greater than 0xffffffff) * Don't use the COND macro after the "extru" instruction (the PA-RISC specification says that the upper 32-bits of extru result are undefined, although they are set to zero in practice) * Fix exception addresses in .Lcopy16_fault and .Lcopy8_fault * Rename .Lcopy_loop_4 to .Lcopy_loop_8 (so that it is consistent with .Lcopy8_fault) Cc: <stable@vger.kernel.org> # v4.9+ Fixes: 554bfeceb8a2 ("parisc: Fix access fault handling in pa_memcpy()") Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/configs')
0 files changed, 0 insertions, 0 deletions