On Wed, 29 Nov 2017, Mikhail Zaytsev wrote: > This patch adds the device_reinit function into the us_data structure. > The usb-storage driver uses this function for notify the subdrivers that > they need to reinitialize the device. > > Signed-off-by: Mikhail Zaytsev <flashed@xxxxxxx> I'd feel more inclined to accept this patch if the new code got used somewhere. As it is, it fixes a "problem" that doesn't actually have any real effect. Alan Stern > --- > drivers/usb/storage/usb.c | 16 ++++++++-------- > drivers/usb/storage/usb.h | 8 +++++--- > 2 files changed, 13 insertions(+), 11 deletions(-) > > diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c > index a0c07e05a8f1..60c47b2e877d 100644 > --- a/drivers/usb/storage/usb.c > +++ b/drivers/usb/storage/usb.c > @@ -210,10 +210,10 @@ int usb_stor_reset_resume(struct usb_interface *iface) > /* Report the reset to the SCSI core */ > usb_stor_report_bus_reset(us); > > - /* > - * FIXME: Notify the subdrivers that they need to reinitialize > - * the device > - */ > + if (us->device_reinit) { > + usb_stor_dbg(us, "-- calling device_reinit()\n"); > + us->device_reinit(us); > + } > return 0; > } > EXPORT_SYMBOL_GPL(usb_stor_reset_resume); > @@ -242,10 +242,10 @@ int usb_stor_post_reset(struct usb_interface *iface) > /* Report the reset to the SCSI core */ > usb_stor_report_bus_reset(us); > > - /* > - * FIXME: Notify the subdrivers that they need to reinitialize > - * the device > - */ > + if (us->device_reinit) { > + usb_stor_dbg(us, "-- calling device_reinit()\n"); > + us->device_reinit(us); > + } > > mutex_unlock(&us->dev_mutex); > return 0; > diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h > index 90133e16bec5..c646a0464a51 100644 > --- a/drivers/usb/storage/usb.h > +++ b/drivers/usb/storage/usb.h > @@ -77,9 +77,10 @@ struct us_unusual_dev { > #define US_IOBUF_SIZE 64 /* Size of the DMA-mapped I/O buffer */ > #define US_SENSE_SIZE 18 /* Size of the autosense data buffer */ > > -typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data*); > -typedef int (*trans_reset)(struct us_data*); > -typedef void (*proto_cmnd)(struct scsi_cmnd*, struct us_data*); > +typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); > +typedef int (*trans_reset)(struct us_data *); > +typedef int (*dev_reinit)(struct us_data *); > +typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); > typedef void (*extra_data_destructor)(void *); /* extra data destructor */ > typedef void (*pm_hook)(struct us_data *, int); /* power management hook */ > > @@ -119,6 +120,7 @@ struct us_data { > /* function pointers for this device */ > trans_cmnd transport; /* transport function */ > trans_reset transport_reset; /* transport device reset */ > + dev_reinit device_reinit; /* device reinitialize */ > proto_cmnd proto_handler; /* protocol handler */ > > /* SCSI interfaces */ > -- > > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html