On Mon, Feb 08, 2021 at 03:31:48PM +0100, Uwe Kleine-König wrote: > In a bus remove function the passed device is always valid, so there is > no need to check for it being NULL. > > (Side note: The check for port being non-NULL is broken anyhow, because > to_usb_serial_port() is a wrapper around container_of() for a member that is > not the first one. So port can hardly become NULL.) Right, this check was just broken. I don't think it was even intended to catch a NULL struct device pointer. Note that there's two more in match() and probe() that I'll remove in a follow up. > Signed-off-by: Uwe Kleine-König <uwe@xxxxxxxxxxxxxxxxx> > --- > drivers/usb/serial/bus.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/drivers/usb/serial/bus.c b/drivers/usb/serial/bus.c > index eb0195cf37dd..d862ed656414 100644 > --- a/drivers/usb/serial/bus.c > +++ b/drivers/usb/serial/bus.c > @@ -87,15 +87,11 @@ static int usb_serial_device_probe(struct device *dev) > static int usb_serial_device_remove(struct device *dev) > { > struct usb_serial_driver *driver; > - struct usb_serial_port *port; > + struct usb_serial_port *port = to_usb_serial_port(dev); > int retval = 0; > int minor; > int autopm_err; > > - port = to_usb_serial_port(dev); > - if (!port) > - return -ENODEV; > - > /* > * Make sure suspend/resume doesn't race against port_remove. > * > > base-commit: 5c8fe583cce542aa0b84adc939ce85293de36e5e Both patches now applied, thanks. Johan