2679f63fe5
This adds a set of test cases to test the behaviour of copy_tofrom_user when exceptions are encountered accessing the source or destination. Currently, copy_tofrom_user does not always copy as many bytes as possible when an exception occurs on a store to the destination, and that is reflected in failures in these tests. Based on a test program from Anton Blanchard. [paulus@ozlabs.org - test all three paths, wrote commit description, made EX_TABLE create an exception table.] Signed-off-by: Paul Mackerras <paulus@ozlabs.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
25 lines
258 B
ArmAsm
25 lines
258 B
ArmAsm
#include <asm/ppc_asm.h>
|
|
|
|
_GLOBAL(copy_tofrom_user_reference)
|
|
cmpdi r5,0
|
|
beq 4f
|
|
|
|
mtctr r5
|
|
|
|
1: lbz r6,0(r4)
|
|
2: stb r6,0(r3)
|
|
addi r3,r3,1
|
|
addi r4,r4,1
|
|
bdnz 1b
|
|
|
|
3: mfctr r3
|
|
blr
|
|
|
|
4: mr r3,r5
|
|
blr
|
|
|
|
.section __ex_table,"a"
|
|
.llong 1b,3b
|
|
.llong 2b,3b
|
|
.text
|