Messages in this thread | | | Subject | Re: [PATCH 32/58] isdn/gigaset: Convert timers to use timer_setup() | From | Paul Bolle <> | Date | Thu, 19 Oct 2017 23:51:47 +0200 |
| |
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
| |