lkml.org 
[lkml]   [2004]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: A question about PROT_NONE on ARM and ARM26
    Scott Wood wrote:
    > > However, plain ldr and str instructions will access the page, but
    > > get_user/put_user doesn't use them, and copy_from_user/copy_to_user
    > > are carefully crafted to ensure that we hit the necessary permission
    > > checks for each page it touches on the first access.
    >
    > What if CONFIG_PREEMPT is enabled, and you get preempted after that
    > first access, and another thread unmaps the page before you're
    > finished with it?

    The code in uaccess.S:__arch_copy_{from,to}_user doesn't disable
    pre-emption, and neither does its caller.

    Pages can be unmapped just due to background paging. I.e. it's a
    normal occurrence, it doesn't require anything contrived.

    So I think you're right: that looks like a bug.

    The ARM uaccess code was written before CONFIG_PREEMPT was added, and
    this couldn't happen then. It could panic a kernel now. I wonder why
    it hasn't been noticed. Maybe nobody turns on CONFIG_PREEMPT on ARM?

    -- Jamie
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:04    [W:2.676 / U:0.936 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site