mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
net/packet: constify __packet_rcv_has_room()
Goal is use the helper without lock being held. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
dcf70cefaf
commit
0338a14523
@@ -1224,15 +1224,18 @@ static bool __tpacket_v3_has_room(const struct packet_sock *po, int pow_off)
|
|||||||
return prb_lookup_block(po, &po->rx_ring, idx, TP_STATUS_KERNEL);
|
return prb_lookup_block(po, &po->rx_ring, idx, TP_STATUS_KERNEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __packet_rcv_has_room(struct packet_sock *po, struct sk_buff *skb)
|
static int __packet_rcv_has_room(const struct packet_sock *po,
|
||||||
|
const struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct sock *sk = &po->sk;
|
const struct sock *sk = &po->sk;
|
||||||
int ret = ROOM_NONE;
|
int ret = ROOM_NONE;
|
||||||
|
|
||||||
if (po->prot_hook.func != tpacket_rcv) {
|
if (po->prot_hook.func != tpacket_rcv) {
|
||||||
int avail = sk->sk_rcvbuf - atomic_read(&sk->sk_rmem_alloc)
|
int rcvbuf = READ_ONCE(sk->sk_rcvbuf);
|
||||||
- (skb ? skb->truesize : 0);
|
int avail = rcvbuf - atomic_read(&sk->sk_rmem_alloc)
|
||||||
if (avail > (sk->sk_rcvbuf >> ROOM_POW_OFF))
|
- (skb ? skb->truesize : 0);
|
||||||
|
|
||||||
|
if (avail > (rcvbuf >> ROOM_POW_OFF))
|
||||||
return ROOM_NORMAL;
|
return ROOM_NORMAL;
|
||||||
else if (avail > 0)
|
else if (avail > 0)
|
||||||
return ROOM_LOW;
|
return ROOM_LOW;
|
||||||
|
Reference in New Issue
Block a user