• W
    ARC: atomics: unbork atomic_fetch_##op() · 3fcbb826
    Will Deacon 提交于
    In 4.19-rc1, Eugeniy reported weird boot and IO errors on ARC HSDK
    
    | INFO: task syslogd:77 blocked for more than 10 seconds.
    |       Not tainted 4.19.0-rc1-00007-gf213acea4e88 #40
    | "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this
    | message.
    | syslogd         D    0    77     76 0x00000000
    |
    | Stack Trace:
    |  __switch_to+0x0/0xac
    |  __schedule+0x1b2/0x730
    |  io_schedule+0x5c/0xc0
    |  __lock_page+0x98/0xdc
    |  find_lock_entry+0x38/0x100
    |  shmem_getpage_gfp.isra.3+0x82/0xbfc
    |  shmem_fault+0x46/0x138
    |  handle_mm_fault+0x5bc/0x924
    |  do_page_fault+0x100/0x2b8
    |  ret_from_exception+0x0/0x8
    
    He bisected to 84c65911 ("locking/atomics,
    asm-generic/bitops/lock.h: Rewrite using atomic_fetch_*()")
    
    This commit however only unmasked the real issue introduced by commit
    4aef66c8 ("locking/atomic, arch/arc: Fix build") which missed the
    retry-if-scond-failed branch in atomic_fetch_##op() macros.
    
    The bisected commit started using atomic_fetch_##op() macros for building
    the rest of atomics.
    
    Fixes: 4aef66c8 ("locking/atomic, arch/arc: Fix build")
    Reported-by: NEugeniy Paltsev <paltsev@synopsys.com>
    Acked-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: NWill Deacon <will.deacon@arm.com>
    Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
    [vgupta: wrote changelog]
    3fcbb826
atomic.h 13.4 KB