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:
Eric Dumazet
2019-06-12 09:52:29 -07:00
committed by David S. Miller
parent dcf70cefaf
commit 0338a14523

View File

@@ -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;