Commit 56f49bc1 authored by Thomas Lange's avatar Thomas Lange Committed by sanglipeng1
Browse files

net: Implement missing SO_TIMESTAMPING_NEW cmsg support

stable inclusion
from stable-v5.10.208
commit 18203c4484d5b2e56c5dd6f6606616a42eb95067
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I9T22K

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=18203c4484d5b2e56c5dd6f6606616a42eb95067

--------------------------------

[ Upstream commit 382a32018b74f407008615e0e831d05ed28e81cd ]

Commit 9718475e ("socket: Add SO_TIMESTAMPING_NEW") added the new
socket option SO_TIMESTAMPING_NEW. However, it was never implemented in
__sock_cmsg_send thus breaking SO_TIMESTAMPING cmsg for platforms using
SO_TIMESTAMPING_NEW.

Fixes: 9718475e ("socket: Add SO_TIMESTAMPING_NEW")
Link: https://lore.kernel.org/netdev/6a7281bf-bc4a-4f75-bb88-7011908ae471@app.fastmail.com/


Signed-off-by: default avatarThomas Lange <thomas@corelatus.se>
Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20240104085744.49164-1-thomas@corelatus.se


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarsanglipeng1 <sanglipeng1@jd.com>
parent 7fa4fe3b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2422,6 +2422,7 @@ int __sock_cmsg_send(struct sock *sk, struct msghdr *msg, struct cmsghdr *cmsg,
		sockc->mark = *(u32 *)CMSG_DATA(cmsg);
		break;
	case SO_TIMESTAMPING_OLD:
	case SO_TIMESTAMPING_NEW:
		if (cmsg->cmsg_len != CMSG_LEN(sizeof(u32)))
			return -EINVAL;