• Y
    lockdep: Introduce in_softirq lockdep assert · 8b5536ad
    Yunsheng Lin 提交于
    The current semantic for napi_consume_skb() is that caller need
    to provide non-zero budget when calling from NAPI context, and
    breaking this semantic will cause hard to debug problem, because
    _kfree_skb_defer() need to run in atomic context in order to push
    the skb to the particular cpu' napi_alloc_cache atomically.
    
    So add the lockdep_assert_in_softirq() to assert when the running
    context is not in_softirq, in_softirq means softirq is serving or
    BH is disabled, which has a ambiguous semantics due to the BH
    disabled confusion, so add a comment to emphasize that.
    
    And the softirq context can be interrupted by hard IRQ or NMI
    context, lockdep_assert_in_softirq() need to assert about hard
    IRQ or NMI context too.
    Suggested-by: NJakub Kicinski <kuba@kernel.org>
    Signed-off-by: NYunsheng Lin <linyunsheng@huawei.com>
    Signed-off-by: NJakub Kicinski <kuba@kernel.org>
    8b5536ad
lockdep.h 20.1 KB