--- zzzz-none-000/linux-5.4.213/net/openvswitch/flow.c 2022-09-15 10:04:56.000000000 +0000 +++ miami-7690-761/linux-5.4.213/net/openvswitch/flow.c 2024-05-29 11:20:02.000000000 +0000 @@ -67,13 +67,13 @@ /* Check if already have CPU-specific stats. */ if (likely(stats)) { - spin_lock(&stats->lock); + spin_lock_bh(&stats->lock); /* Mark if we write on the pre-allocated stats. */ if (cpu == 0 && unlikely(flow->stats_last_writer != cpu)) flow->stats_last_writer = cpu; } else { stats = rcu_dereference(flow->stats[0]); /* Pre-allocated. */ - spin_lock(&stats->lock); + spin_lock_bh(&stats->lock); /* If the current CPU is the only writer on the * pre-allocated stats keep using them. @@ -118,7 +118,7 @@ stats->byte_count += len; stats->tcp_flags |= tcp_flags; unlock: - spin_unlock(&stats->lock); + spin_unlock_bh(&stats->lock); } /* Must be called with rcu_read_lock or ovs_mutex. */