[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160930.020918.1265470401276676920.davem@davemloft.net>
Date: Fri, 30 Sep 2016 02:09:18 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: lucien.xin@...il.com
Cc: netdev@...r.kernel.org, linux-sctp@...r.kernel.org,
marcelo.leitner@...il.com, vyasevich@...il.com,
daniel@...earbox.net
Subject: Re: [PATCH net] sctp: fix the issue sctp_diag uses lock_sock in
rcu_read_lock
From: Xin Long <lucien.xin@...il.com>
Date: Thu, 29 Sep 2016 02:55:44 +0800
> When sctp dumps all the ep->assocs, it needs to lock_sock first,
> but now it locks sock in rcu_read_lock, and lock_sock may sleep,
> which would break rcu_read_lock.
>
> This patch is to get and hold one sock when traversing the list.
> After that and get out of rcu_read_lock, lock and dump it. Then
> it will traverse the list again to get the next one until all
> sctp socks are dumped.
>
> For sctp_diag_dump_one, it fixes this issue by holding asoc and
> moving cb() out of rcu_read_lock in sctp_transport_lookup_process.
>
> Fixes: 8f840e47f190 ("sctp: add the sctp_diag.c file")
> Signed-off-by: Xin Long <lucien.xin@...il.com>
Applied and queued up for -stable, thanks.
Powered by blists - more mailing lists