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

From: Willem de Bruijn
Date: Fri Mar 08 2024 - 06:43:53 EST


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
>