Re: [PATCH] net/ipv4: Fix circular deadlock in do_ip_setsockop
From: Eric Dumazet
Date: Sun Sep 22 2024 - 12:12:16 EST
On Wed, Sep 18, 2024 at 1:51 AM AnantaSrikar <srikarananta01@xxxxxxxxx> wrote:
>
> Fixed the circular lock dependency reported by syzkaller.
>
> Signed-off-by: AnantaSrikar <srikarananta01@xxxxxxxxx>
> Reported-by: syzbot+e4c27043b9315839452d@xxxxxxxxxxxxxxxxxxxxxxxxx
> Closes: https://syzkaller.appspot.com/bug?extid=e4c27043b9315839452d
> Fixes: d2bafcf224f3 ("Merge tag 'cgroup-for-6.11-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup")
> ---
> net/ipv4/ip_sockglue.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
> index cf377377b52d..a8f46d1ba62b 100644
> --- a/net/ipv4/ip_sockglue.c
> +++ b/net/ipv4/ip_sockglue.c
> @@ -1073,9 +1073,11 @@ int do_ip_setsockopt(struct sock *sk, int level, int optname,
> }
>
> err = 0;
> +
> + sockopt_lock_sock(sk);
> +
> if (needs_rtnl)
> rtnl_lock();
> - sockopt_lock_sock(sk);
>
> switch (optname) {
> case IP_OPTIONS:
I think you missed an earlier conversation about SMC being at fault here.
https://lore.kernel.org/netdev/CANn89iKcWmufo83xy-SwSrXYt6UpL2Pb+5pWuzyYjMva5F8bBQ@xxxxxxxxxxxxxx/