lkml.org 
[lkml]   [2019]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] isdn: bas_gigaset: use usb_fill_int_urb() properly
From
From: Paul Bolle <pebolle@tiscali.nl>
Date: Wed, 1 May 2019 23:19:03 +0200

> The switch to make bas_gigaset use usb_fill_int_urb() - instead of
> filling that urb "by hand" - missed the subtle ordering of the previous
> code.
>
> See, before the switch urb->dev was set to a member somewhere deep in a
> complicated structure and then supplied to usb_rcvisocpipe() and
> usb_sndisocpipe(). After that switch urb->dev wasn't set to anything
> specific before being supplied to those two macros. This triggers a
> nasty oops:
...
> No-one noticed because this Oops is apparently only triggered by setting
> up an ISDN data connection on a live ISDN line on a gigaset base (ie,
> the PBX that the gigaset driver support). Very few people do that
> running present day kernels.
>
> Anyhow, a little code reorganization makes this problem go away, while
> avoiding the subtle ordering that was used in the past. So let's do
> that.
>
> Fixes: 78c696c19578 ("isdn: gigaset: use usb_fill_int_urb()")
> Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
> ---
> Arnd's ISDN cleanup hasn't yet hit net-next so this still uses
> drivers/isdn. If people prefer to apply this after Arnd has exiled
> gigaset into staging, I'll gladly respin.

Applied to 'net', queued up for -stable, and I'll deal with the
merge conflict :-/ :-) :-)

\
 
 \ /
  Last update: 2019-05-05 18:56    [W:0.152 / U:0.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site