• E
    list: Add hlist_unhashed_lockless() · 200bbfd7
    Eric Dumazet 提交于
    mainline inclusion
    from mainline-v5.6
    commit c54a2744
    category: bugfix
    bugzilla: 93967
    CVE: NA
    
    -----------------------------------------------
    
    We would like to use hlist_unhashed() from timer_pending(),
    which runs without protection of a lock.
    
    Note that other callers might also want to use this variant.
    
    Instead of forcing a READ_ONCE() for all hlist_unhashed()
    callers, add a new helper with an explicit _lockless suffix
    in the name to better document what is going on.
    
    Also add various WRITE_ONCE() in __hlist_del(), hlist_add_head()
    and hlist_add_before()/hlist_add_behind() to pair with
    the READ_ONCE().
    Signed-off-by: NEric Dumazet <edumazet@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    [ paulmck: Also add WRITE_ONCE() to rculist.h. ]
    Signed-off-by: NPaul E. McKenney <paulmck@kernel.org>
    
     Conflicts:
    	include/linux/list.h
    [wangxiongfeng: include patch commit ae325dcd ("list: Don't use
    WRITE_ONCE() in hlist_add_behind()")]
    Signed-off-by: NXiongfeng Wang <wangxiongfeng2@huawei.com>
    Reviewed-by: NXie XiuQi <xiexiuqi@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    200bbfd7
list.h 24.0 KB