• John Ogness's avatar
    af_packet: TPACKET_V3: fix fill status rwlock imbalance · 88fd1cb8
    John Ogness authored
    After @blk_fill_in_prog_lock is acquired there is an early out vnet
    situation that can occur. In that case, the rwlock needs to be
    released.
    
    Also, since @blk_fill_in_prog_lock is only acquired when @tp_version
    is exactly TPACKET_V3, only release it on that exact condition as
    well.
    
    And finally, add sparse annotation so that it is clearer that
    prb_fill_curr_block() and prb_clear_blk_fill_status() are acquiring
    and releasing @blk_fill_in_prog_lock, respectively. sparse is still
    unable to understand the balance, but the warnings are now on a
    higher level that make more sense.
    
    Fixes: 632ca50f ("af_packet: TPACKET_V3: replace busy-wait loop")
    Signed-off-by: default avatarJohn Ogness <john.ogness@linutronix.de>
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    88fd1cb8
af_packet.c 109 KB