From: Greg KH <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: Mathias Nyman
<mathias.nyman-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Mathias Nyman
<mathias.nyman-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
Andy Shevchenko
<andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Andy Shevchenko
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>,
Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>,
Sudip Mukherjee
<sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: usb HC busted?
Date: Tue, 17 Jul 2018 17:52:59 +0200 [thread overview]
Message-ID: <20180717155259.GB2416@kroah.com> (raw)
In-Reply-To: <Pine.LNX.4.44L0.1807171029310.1689-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
On Tue, Jul 17, 2018 at 10:31:38AM -0400, Alan Stern wrote:
> On Tue, 17 Jul 2018, Greg KH wrote:
>
> > > From: Sudip Mukherjee <sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > > Date: Tue, 10 Jul 2018 09:50:00 +0100
> > > Subject: [PATCH] hacky solution to mem-corruption
> > >
> > > Signed-off-by: Sudip Mukherjee <sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > > ---
> > > drivers/usb/core/message.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> > > index 7cd4ec33dbf4..7fdf7a27611d 100644
> > > --- a/drivers/usb/core/message.c
> > > +++ b/drivers/usb/core/message.c
> > > @@ -1398,7 +1398,8 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate)
> > > remove_intf_ep_devs(iface);
> > > usb_remove_sysfs_intf_files(iface);
> > > }
> > > - usb_disable_interface(dev, iface, true);
> > > + if (!(iface->cur_altsetting && alt))
> > > + usb_disable_interface(dev, iface, true);
> >
> >
> >
> > This feels like a "correct" patch anyway, why would a driver keep
> > calling set_interface to an interface that it was already set to?
> >
> > But can't we check for this higher up in the function? This hack will
> > just not disable an interface but it will do all of the other stuff
> > being asked for. Does the patch below also solve this for you? It's
> > not a good solution of course, but it might work around the problem a
> > bit better.
> >
> > thanks,
> >
> > greg k-h
> >
> > diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
> > index 1a15392326fc..0f718f1a1ca3 100644
> > --- a/drivers/usb/core/message.c
> > +++ b/drivers/usb/core/message.c
> > @@ -1376,6 +1376,14 @@ int usb_set_interface(struct usb_device *dev, int interface, int alternate)
> > return -EINVAL;
> > }
> >
> > + if (iface->cur_altsetting == alt) {
> > + /*
> > + * foolish bluetooth stack, don't try to set a setting you are
> > + * already set to...
> > + */
> > + return 0;
> > + }
> > +
> > /* Make sure we have enough bandwidth for this alternate interface.
> > * Remove the current alt setting and add the new alt setting.
> > */
>
> No, neither of these is right. It's possible to use
> usb_set_interface() as a kind of "soft" reset. Even when the new
> altsetting is specified to be the same as the current one, we still
> have to tell the lower-layer drivers and hardware about it.
You are right, it's a hacky soft reset, I was just trying to figure out
what the bluetooth driver was trying to do. I wouldn't expect it to be
calling that function a lot, but I guess it does :(
thanks,
greg k-h
next prev parent reply other threads:[~2018-07-17 15:52 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180518100650.kfw6wijpncpvqx7j@debian>
[not found] ` <6790b352-add3-5531-115c-15db6c9c744d@intel.com>
[not found] ` <20180518130458.v73syr3fltdzdzzi@debian>
[not found] ` <881d576b-c7c1-ef74-c6bc-68b81371e7e0@intel.com>
[not found] ` <20180523212956.n4ztasdffg2aeaku@debian>
[not found] ` <80eace7a-976d-65a5-a353-54a2b18edd06@linux.intel.com>
[not found] ` <20180604152848.db3msouyi4ektvv6@debian>
2018-06-06 14:12 ` usb HC busted? Mathias Nyman
[not found] ` <06226ecb-baad-cc36-e9e3-797dabb0aa5e-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-06 15:36 ` Andy Shevchenko
[not found] ` <42ec4ab07d96b4302b875ac9c5eb76675bf85690.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-06 16:45 ` Sudip Mukherjee
2018-06-07 7:40 ` Mathias Nyman
[not found] ` <2e8829c2-850d-6bca-5f0c-58a809dc9499-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-08 9:07 ` Sudip Mukherjee
2018-06-21 0:53 ` Sudip Mukherjee
2018-06-21 11:01 ` Mathias Nyman
[not found] ` <2b4fe87a-3706-0aa8-2b61-a9c1d1352a7a-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-25 16:15 ` Sudip Mukherjee
2018-06-27 11:59 ` Sudip Mukherjee
2018-06-27 12:20 ` Sudip Mukherjee
2018-06-29 11:41 ` Mathias Nyman
[not found] ` <4b269009-7593-a41f-9f0f-203ee174b52e-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-06-30 21:07 ` Sudip Mukherjee
2018-07-17 11:41 ` Sudip Mukherjee
2018-07-17 12:04 ` Greg KH
[not found] ` <20180717120411.GB28592-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2018-07-17 13:20 ` Sudip Mukherjee
2018-07-17 13:53 ` Greg KH
2018-07-17 14:31 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1807171029310.1689-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-07-17 15:52 ` Greg KH [this message]
[not found] ` <20180717155259.GB2416-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2018-07-17 15:59 ` Sudip Mukherjee
2018-07-17 17:01 ` Sudip Mukherjee
2018-07-17 14:28 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1807171022001.1689-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-07-17 14:40 ` Sudip Mukherjee
2018-07-17 14:49 ` Sudip Mukherjee
2018-07-17 15:08 ` Alan Stern
2018-07-17 15:10 ` Sudip Mukherjee
2018-07-19 10:59 ` Mathias Nyman
[not found] ` <f7801c24-fa98-6338-0b26-33a0ac9498bb-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-19 11:34 ` Sudip Mukherjee
2018-07-19 15:42 ` Mathias Nyman
[not found] ` <ab814c88-0857-5444-57da-34c21b8d7f6c-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-19 17:32 ` Sudip Mukherjee
2018-07-20 11:10 ` Mathias Nyman
[not found] ` <d3f5575c-c75b-ea16-6da9-b2fe3cc9c102-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-20 12:54 ` Sudip Mukherjee
2018-07-21 10:55 ` Sudip Mukherjee
2018-07-19 14:57 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1807191046180.1308-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2018-07-20 11:46 ` Mathias Nyman
[not found] ` <f8cfa055-cfd8-db66-a386-72bf904e17cd-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2018-07-20 14:09 ` Alan Stern
2018-06-06 16:42 ` Sudip Mukherjee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180717155259.GB2416@kroah.com \
--to=gregkh-hqyy1w1ycw8ekmwlsbkhg0b+6bgklq7r@public.gmane.org \
--cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=andy.shevchenko-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=hch-jcswGhMUV9g@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lukaszx.szulc-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=mathias.nyman-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=mathias.nyman-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
--cc=sudipm.mukherjee-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox