From: Cong Wang <xiyou.wangc...@gmail.com>
Date: Thu, 17 Nov 2016 15:55:26 -0800

> Commit 2b15af6f95 ("af_unix: use freezable blocking calls in read")
> converts schedule_timeout() to its freezable version, it was probably
> correct at that time, but later, commit 2b514574f7e8
> ("net: af_unix: implement splice for stream af_unix sockets") breaks
> the strong requirement for a freezable sleep, according to
> commit 0f9548ca1091:
> 
>     We shouldn't try_to_freeze if locks are held.  Holding a lock can cause a
>     deadlock if the lock is later acquired in the suspend or hibernate path
>     (e.g.  by dpm).  Holding a lock can also cause a deadlock in the case of
>     cgroup_freezer if a lock is held inside a frozen cgroup that is later
>     acquired by a process outside that group.
> 
> The pipe_lock is still held at that point.
> 
> So use freezable version only for the recvmsg call path, avoid impact for
> Android.
> 
> Fixes: 2b514574f7e8 ("net: af_unix: implement splice for stream af_unix 
> sockets")
> Reported-by: Dmitry Vyukov <dvyu...@google.com>
> Cc: Tejun Heo <t...@kernel.org>
> Cc: Colin Cross <ccr...@android.com>
> Cc: Rafael J. Wysocki <rafael.j.wyso...@intel.com>
> Cc: Hannes Frederic Sowa <han...@stressinduktion.org>
> Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com>

Applied and queued up for -stable, thanks.

Reply via email to