Skip to content

Commit 1b49dae

Browse files
committed
Merge tag 'usb-ci-v4.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb into usb-linus
Peter writes: Fix the possible kernel panic when the hardware signal is bad for chipidea udc.
2 parents bcf42aa + 6f3c4fb commit 1b49dae

File tree

1 file changed

+9
-0
lines changed
  • drivers/usb/chipidea

1 file changed

+9
-0
lines changed

drivers/usb/chipidea/udc.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,15 @@ static int isr_setup_status_phase(struct ci_hdrc *ci)
949949
int retval;
950950
struct ci_hw_ep *hwep;
951951

952+
/*
953+
* Unexpected USB controller behavior, caused by bad signal integrity
954+
* or ground reference problems, can lead to isr_setup_status_phase
955+
* being called with ci->status equal to NULL.
956+
* If this situation occurs, you should review your USB hardware design.
957+
*/
958+
if (WARN_ON_ONCE(!ci->status))
959+
return -EPIPE;
960+
952961
hwep = (ci->ep0_dir == TX) ? ci->ep0out : ci->ep0in;
953962
ci->status->context = ci;
954963
ci->status->complete = isr_setup_status_complete;

0 commit comments

Comments
 (0)