[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1506262418.2909.1.camel@sipsolutions.net>
Date: Sun, 24 Sep 2017 16:13:38 +0200
From: Johannes Berg <johannes@...solutions.net>
To: Christian Lamparter <chunkeey@...glemail.com>,
Andrey Konovalov <andreyknvl@...gle.com>
Cc: Kalle Valo <kvalo@...eaurora.org>, linux-wireless@...r.kernel.org,
netdev <netdev@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Dmitry Vyukov <dvyukov@...gle.com>,
Kostya Serebryany <kcc@...gle.com>,
syzkaller <syzkaller@...glegroups.com>,
Stephen Boyd <sboyd@...eaurora.org>, Tejun Heo <tj@...nel.org>,
Yong Zhang <yong.zhang0@...il.com>
Subject: Re: [RESEND] Re: usb/net/p54: trying to register non-static key in
p54_unregister_leds
On Sat, 2017-09-23 at 21:37 +0200, Christian Lamparter wrote:
> But this also begs the question: Is this really working then?
> From what I can tell, if CONFIG_LOCKDEP is not set then there's no
> BUG no WARN, no other splat or any other odd system behaviour. Does
> [cancel | flush]_[delayed_]work[_sync] really "just work" by
> *accident*, as long the delayed_work | work_struct is zeroed out?
It looks like it does, but I'm not sure it's not more or less by
accident. Look at get_work_pool() for example, it might actually return
non-NULL in this case, and then in start_flush_work() you'll probably
fall into one of the few "already_gone" cases.
> And should it work in the future as well?
I guess it's not really guaranteed, the API doesn't state anything to
that effect. Not that I'm looking forward to a new workqueue rewrite ;)
johannes
Powered by blists - more mailing lists