On Fri, 26 Apr 2024, Michael Schmitz wrote:
Not sure you noticed this - the 040 passed __clear_user without fault. We managed to test this one without meaning to. Exception handling in there appears to work OK (for the cases we're testing). No idea why you have the __clear_user call occur within __generic_copy_to_user - it does not appear in my disassembly.
I'm afraid I neglected to mention that I added the patch below in order to exercise that code path. diff --git a/arch/m68k/lib/uaccess.c b/arch/m68k/lib/uaccess.c index ef761fc10981..1c9a24a0b554 100644 --- a/arch/m68k/lib/uaccess.c +++ b/arch/m68k/lib/uaccess.c @@ -58,6 +58,8 @@ unsigned long __generic_copy_to_user(void __user *to, const void *from, { unsigned long tmp, res; + __clear_user(to, n); + asm volatile ("\n" " tst.l %0\n" " jeq 5f\n"