Hi Greg,

> From: Greg Kroah-Hartman, Sent: Tuesday, September 3, 2019 6:37 PM
<snip>
> > > +void post_usb_bus_notification(const struct usb_bus *ubus,
> >
> > This function's argument is struct usb_bus *, but ...
> >
> > > +                        enum usb_notification_type subtype, u32 error)
> > > +{
> > > + post_usb_notification(ubus->bus_name, subtype, error);
> > > +}
> > > +#endif
> > > +
> > >  static int usbdev_notify(struct notifier_block *self,
> > >                          unsigned long action, void *dev)
> > >  {
> > >   switch (action) {
> > >   case USB_DEVICE_ADD:
> > > +         post_usb_device_notification(dev, NOTIFY_USB_DEVICE_ADD, 0);
> > >           break;
> > >   case USB_DEVICE_REMOVE:
> > > +         post_usb_device_notification(dev, NOTIFY_USB_DEVICE_REMOVE, 0);
> > > +         usbdev_remove(dev);
> > > +         break;
> > > + case USB_BUS_ADD:
> > > +         post_usb_bus_notification(dev, NOTIFY_USB_BUS_ADD, 0);
> > > +         break;
> > > + case USB_BUS_REMOVE:
> > > +         post_usb_bus_notification(dev, NOTIFY_USB_BUS_REMOVE, 0);
> > >           usbdev_remove(dev);
> >
> > this function calls usbdev_remove() with incorrect argument if the action
> > is USB_BUS_REMOVE. So, this seems to cause the following issue [1] on
> > my environment (R-Car H3 / r8a7795 on next-20190902) [2]. However, I have
> > no idea how to fix the issue, so I report this issue at the first step.
> 
> As a few of us just discussed this on IRC, these bus notifiers should
> probably be dropped as these are the incorrect structure type as you
> found out.  Thanks for the report.

Thank you for the discussion. I got it.

Best regards,
Yoshihiro Shimoda

> greg k-h

Reply via email to