On Apr 09 2019, Michael Schmitz <schmitzmic@xxxxxxxxx> wrote:
Now the question I'm asking myself is: why does pagefault_disable() not suppress the bus error here: long __probe_kernel_read(void *dst, const void *src, size_t size) { long ret; mm_segment_t old_fs = get_fs(); set_fs(KERNEL_DS); pagefault_disable(); current->kernel_uaccess_faults_ok++; ret = __copy_from_user_inatomic(dst, (__force const void __user *)src, size); current->kernel_uaccess_faults_ok--; pagefault_enable(); set_fs(old_fs); return ret ? -EFAULT : 0; } If I read the m68k mm/fault.c code right, we should see user space take a SIGBUS, not SIGSEGV.
Since this is from KERNEL_DS it is a kernel space access. Andreas. -- Andreas Schwab, schwab@xxxxxxxxxxxxxx GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."