diff options
author | Eric Dumazet <edumazet@google.com> | 2019-06-12 19:52:27 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-15 04:52:14 +0300 |
commit | d4b5bd98faec345933d6080989e035a833b1077a (patch) | |
tree | c20445c7074ab0fb921b596e79e40a53dfae7ac7 /net/packet | |
parent | 96f657e6cfc25b27d8189cb6b9eac66e1b1ff4f3 (diff) | |
download | linux-d4b5bd98faec345933d6080989e035a833b1077a.tar.xz |
net/packet: constify packet_lookup_frame() and __tpacket_has_room()
Goal is to be able to use __tpacket_has_room() without holding a lock.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet')
-rw-r--r-- | net/packet/af_packet.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 66fcfd5b51f8..273bffd2130d 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -460,10 +460,10 @@ static __u32 __packet_set_timestamp(struct packet_sock *po, void *frame, return ts_status; } -static void *packet_lookup_frame(struct packet_sock *po, - struct packet_ring_buffer *rb, - unsigned int position, - int status) +static void *packet_lookup_frame(const struct packet_sock *po, + const struct packet_ring_buffer *rb, + unsigned int position, + int status) { unsigned int pg_vec_pos, frame_offset; union tpacket_uhdr h; @@ -1198,12 +1198,12 @@ static void packet_free_pending(struct packet_sock *po) #define ROOM_LOW 0x1 #define ROOM_NORMAL 0x2 -static bool __tpacket_has_room(struct packet_sock *po, int pow_off) +static bool __tpacket_has_room(const struct packet_sock *po, int pow_off) { int idx, len; - len = po->rx_ring.frame_max + 1; - idx = po->rx_ring.head; + len = READ_ONCE(po->rx_ring.frame_max) + 1; + idx = READ_ONCE(po->rx_ring.head); if (pow_off) idx += len >> pow_off; if (idx >= len) |