]> Gentwo Git Trees - linux/.git/commit
net: af_packet: remove last_kactive_blk_num field
authorXin Zhao <jackzxcui1989@163.com>
Mon, 8 Sep 2025 10:45:48 +0000 (18:45 +0800)
committerJakub Kicinski <kuba@kernel.org>
Fri, 12 Sep 2025 01:40:06 +0000 (18:40 -0700)
commit28d2420d403ada8a5ff1bf2077ef66051b2aa4d7
tree6bd9962b2c4025e604fd5f8d7e35c4d97e2ae4f6
parente663ad6e06a776b739d490b51c59c07cb4d767a4
net: af_packet: remove last_kactive_blk_num field

kactive_blk_num (K) is only incremented on block close.
In timer callback prb_retire_rx_blk_timer_expired, except delete_blk_timer
is true, last_kactive_blk_num (L) is set to match kactive_blk_num (K) in
all cases. L is also set to match K in prb_open_block.
The only case K not equal to L is when scheduled by tpacket_rcv
and K is just incremented on block close but no new block could be opened,
so that it does not call prb_open_block in prb_dispatch_next_block.
This patch modifies the prb_retire_rx_blk_timer_expired function by simply
removing the check for L == K. This patch just provides another checkpoint
to thaw the might-be-frozen block in any case. It doesn't have any effect
because __packet_lookup_frame_in_block() has the same logic and does it
again without this patch when detecting the ring is frozen. The patch only
advances checking the status of the ring.

Suggested-by: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Reviewed-by: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Reviewed-by: Jason Xing <kerneljasonxing@gmail.com>
Link: https://lore.kernel.org/all/20250831100822.1238795-1-jackzxcui1989@163.com/
Signed-off-by: Xin Zhao <jackzxcui1989@163.com>
Link: https://patch.msgid.link/20250908104549.204412-2-jackzxcui1989@163.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/packet/af_packet.c
net/packet/internal.h