[lkml]   [2005]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 07/10] uml: avoid fixing faults while atomic
    From: Paolo 'Blaisorblade' Giarrusso <>

    Following i386, we should maybe refuse trying to fault in pages when we're
    doing atomic operations, because to handle the fault we could need to take
    already taken spinlocks.

    Also, if we're doing an atomic operation (in the sense of in_atomic()) we're
    surely in kernel mode and we're surely going to handle adequately the failed
    fault, so it's safe to behave this way.

    Currently, on UML SMP is rarely used, and we don't support PREEMPT, so this is
    unlikely to create problems right now, but it might in the future.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso <>

    arch/um/kernel/trap_kern.c | 7 +++++++
    1 files changed, 7 insertions(+), 0 deletions(-)

    diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c
    --- a/arch/um/kernel/trap_kern.c
    +++ b/arch/um/kernel/trap_kern.c
    @@ -40,6 +40,12 @@ int handle_page_fault(unsigned long addr
    int err = -EFAULT;

    *code_out = SEGV_MAPERR;
    + /* If the fault was during atomic operation, don't take the fault, just
    + * fail. */
    + if (in_atomic())
    + goto out_nosemaphore;
    vma = find_vma(mm, address);
    @@ -90,6 +96,7 @@ survive:
    flush_tlb_page(vma, address);

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-09-21 19:54    [W:0.022 / U:47.504 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site