diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-09-12 09:15:26 +0200 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-09-12 09:15:26 +0200 |
| commit | fc9104d5d7172d2cb6c672abeb964242aa735b34 (patch) | |
| tree | 87f8aedceff2d578b073d33791e4696a7aba9185 /drivers/usb/chipidea/udc.c | |
| parent | ab57f86198d6ff20371613d4a02fd4841972a5c0 (diff) | |
| parent | 9395452b4aab7bc2475ef8935b4a4fb99d778d70 (diff) | |
| download | linux-fc9104d5d7172d2cb6c672abeb964242aa735b34.tar.gz linux-fc9104d5d7172d2cb6c672abeb964242aa735b34.tar.bz2 linux-fc9104d5d7172d2cb6c672abeb964242aa735b34.zip | |
Merge 4.8-rc6 into usb-next
We want the USB fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/chipidea/udc.c')
| -rw-r--r-- | drivers/usb/chipidea/udc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c index dfec5a176315..b93356834bb5 100644 --- a/drivers/usb/chipidea/udc.c +++ b/drivers/usb/chipidea/udc.c @@ -949,6 +949,15 @@ static int isr_setup_status_phase(struct ci_hdrc *ci) int retval; struct ci_hw_ep *hwep; + /* + * Unexpected USB controller behavior, caused by bad signal integrity + * or ground reference problems, can lead to isr_setup_status_phase + * being called with ci->status equal to NULL. + * If this situation occurs, you should review your USB hardware design. + */ + if (WARN_ON_ONCE(!ci->status)) + return -EPIPE; + hwep = (ci->ep0_dir == TX) ? ci->ep0out : ci->ep0in; ci->status->context = ci; ci->status->complete = isr_setup_status_complete; |
