On Wed, Jul 14, 2021 at 10:29 AM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, Jul 14, 2021 at 10:03:09AM -0400, David Jeffery wrote: > > > > diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c > > index 36f5bf6a0752..2283205d4b40 100644 > > --- a/drivers/usb/host/ehci-hcd.c > > +++ b/drivers/usb/host/ehci-hcd.c > > @@ -704,14 +704,18 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) > > { > > struct ehci_hcd *ehci = hcd_to_ehci (hcd); > > u32 status, masked_status, pcd_status = 0, cmd; > > + u32 current_status; > > int bh; > > > > spin_lock(&ehci->lock); > > > > - status = ehci_readl(ehci, &ehci->regs->status); > > + status = 0; > > > > + current_status = ehci_readl(ehci, &ehci->regs->status); > > +restart: > > + status |= current_status; > > /* e.g. cardbus physical eject */ > > - if (status == ~(u32) 0) { > > + if (current_status == ~(u32) 0) { > > ehci_dbg (ehci, "device removed\n"); > > goto dead; > > } > > Mild stylistic quibble: I generally prefer to have a blank line before a > /* ... */ comment. And it doesn't seem reasonable to have a blank line > between "status = 0" and the current_status assignment, since those are > similar once-only things before the beginning of the "restart" loop. > Also, I would move the "status |= current_status" line after the test > for device removed, since that test doesn't use status. > > But obviously none of these things affect the patch's correntness. I'll update it with requested changes and resend it. > > You can choose to submit a new version of the patch with those stylistic > changes, or if you prefer, just stick with this version. Either way, > > Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> > > Does this issue affect any other PCI-based host controller drivers? > > Alan Stern > Possibly. The uhci driver should have the same issue if hardware exists with it and has MSI for it. I suspect the ohci driver has a similar issue, but I'm not familiar enough with its interfaces and specification to say for sure. David Jeffery