Re: [PATCH net-next] net/packet: Add getsockopt support for PACKET_COPY_THRESH

From: Juntong Deng
Date: Fri Mar 08 2024 - 07:08:22 EST


On 2024/3/8 19:43, Willem de Bruijn wrote:
Juntong Deng wrote:
Currently getsockopt does not support PACKET_COPY_THRESH,
and we are unable to get the value of PACKET_COPY_THRESH
socket option through getsockopt.

This patch adds getsockopt support for PACKET_COPY_THRESH.

Signed-off-by: Juntong Deng <juntong.deng@xxxxxxxxxxx>
---
net/packet/af_packet.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 0db31ca4982d..65042edd1a97 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -4090,6 +4090,9 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
case PACKET_VNET_HDR_SZ:
val = READ_ONCE(po->vnet_hdr_sz);
break;
+ case PACKET_COPY_THRESH:
+ val = pkt_sk(sk)->copy_thresh;
+ break;

This is probably a good opportunity to use READ_ONCE/WRITE_ONCE for
this variable that can be modified and read concurrently.

Alternatively I can fix up all three locations in a follow-on patch.

No concerns with adding the getsockopt itself.

case PACKET_VERSION:
val = po->tp_version;
break;
--
2.39.2




Thanks for reviewing.

So, do I need to send PATCH V2 to add READ_ONCE?

Or do you want you to use a follow-on patch to fix all three locations at once?