Skip to content
  • Michal Simek's avatar
    microblaze: Fix __copy_to/from_user_inatomic macros · 8d7ec6ee
    Michal Simek authored
    
    
    __copy_to/from_user_inatomic should call __copy_to/from_user
    because there is not necessary to check access because of kernel function.
    
    might_sleep in copy_to/from_user macros is causing problems
    in debug sessions too (CONFIG_DEBUG_SPINLOCK_SLEEP).
    
    BUG: sleeping function called from invalid context at
    .../arch/microblaze/include/asm/uaccess.h:388
    in_atomic(): 1, irqs_disabled(): 0, pid: 1, name: swapper
    1 lock held by swapper/1:
     #0:  (&p->cred_guard_mutex){......}, at: [<c00d4b90>] prepare_bprm_creds+0x2c/0x88
    Kernel Stack:
    ...
    
    Call Trace:
    [<c0006bd4>] microblaze_unwind+0x7c/0x94
    [<c0006684>] show_stack+0xf4/0x190
    [<c0006730>] dump_stack+0x10/0x30
    [<c00103a0>] __might_sleep+0x12c/0x160
    [<c0090de4>] file_read_actor+0x1d8/0x2a8
    [<c0091568>] generic_file_aio_read+0x6b4/0xa64
    [<c00cd778>] do_sync_read+0xac/0x110
    [<c00ce254>] vfs_read+0xc8/0x160
    [<c00d585c>] kernel_read+0x38/0x64
    [<c00d5984>] prepare_binprm+0xfc/0x130
    [<c00d6430>] do_execve+0x228/0x370
    [<c000614c>] microblaze_execve+0x58/0xa4
    
    caused by file_read_actor (mm/filemap.c) which calls
    __copy_to_user_inatomic.
    
    Signed-off-by: Michal Simek's avatarMichal Simek <monstr@monstr.eu>
    8d7ec6ee