On Apr 09 2019, Michael Schmitz <[email protected]> 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, [email protected]
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510  2552 DF73 E780 A9DA AEC1
"And now for something completely different."

Reply via email to