Re: Oopses and invalid addresses under Hatari

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andreas,

On 10/04/19 5:05 AM, Andreas Schwab wrote:
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.


Thanks. I have a hunch that we never run do_page_fault() from bus_error030() though, so we won't see faulthandler_disabled() evaluated there. I'll try and confirm this.

Back down the same rabbit hole ...

Cheers,

    Michael



Andreas.




[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux