--- x/kernel/rcu/tree.c +++ y/kernel/rcu/tree.c @@ -5149,6 +5149,8 @@ static void __init rcu_dump_rcu_node_tre struct workqueue_struct *rcu_gp_wq; +static DEFINE_PER_CPU(struct lock_class_key, krc_lock_key); + static void __init kfree_rcu_batch_init(void) { int cpu; @@ -5169,6 +5171,11 @@ static void __init kfree_rcu_batch_init( for_each_possible_cpu(cpu) { struct kfree_rcu_cpu *krcp = per_cpu_ptr(&krc, cpu); + struct lock_class_key *key = per_cpu_ptr(&krc_lock_key, cpu); + char name[32] = {0}; + + sprintf(name, "krc%d", cpu); + lockdep_set_class_and_name(&krcp->lock, key, name); for (i = 0; i < KFREE_N_BATCHES; i++) { INIT_RCU_WORK(&krcp->krw_arr[i].rcu_work, kfree_rcu_work);