[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1508449907.2274.28.camel@tiscali.nl>
Date: Thu, 19 Oct 2017 23:51:47 +0200
From: Paul Bolle <pebolle@...cali.nl>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Kees Cook <keescook@...omium.org>,
"David S. Miller" <davem@...emloft.net>,
Karsten Keil <isdn@...ux-pingi.de>,
Johan Hovold <johan@...nel.org>,
gigaset307x-common@...ts.sourceforge.net, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 32/58] isdn/gigaset: Convert timers to use timer_setup()
On Thu, 2017-10-19 at 23:31 +0200, Thomas Gleixner wrote:
> bas_gigaset_exit()
> {
> for (i = 0; i < driver->minors; i++) {
> if (gigaset_shutdown(driver->cs + i) < 0)
>
> gigaset_shutdown(cs)
> {
> mutex_lock(&cs->mutex); <-------- Explodes here
>
> So driver->cs + i is invalid. No idea how that might be related to that
> timer conversion patch, but ....
Thanks for peeking into this!
Please note that driver->minors is one of the more embarrassing warts of the
gigaset code. It's basically hardcoded to 1 for all three drivers (including
bas_gigaset). So driver->cs itself is invalid here.
And since the patch uses
struct cardstate *cs = urb->context;
in a few places my guess is that it's really the patch that triggers this.
Thanks,
Paul Bolle
Powered by blists - more mailing lists