On Mon, Oct 23, 2023 at 11:28:29AM +0200, Hannes Reinecke wrote: > diff --git a/Documentation/scsi/scsi_mid_low_api.rst b/Documentation/scsi/scsi_mid_low_api.rst > index 96983bb1cc45..43083efc554b 100644 > --- a/Documentation/scsi/scsi_mid_low_api.rst > +++ b/Documentation/scsi/scsi_mid_low_api.rst > @@ -741,7 +741,8 @@ Details:: > > /** > * eh_bus_reset_handler - issue SCSI bus reset > - * @scp: SCSI bus that contains this device should be reset > + * @host: SCSI Host that contains the channel which should be reset > + * @channel: channel to be reset > * > * Returns SUCCESS if command aborted else FAILED Same as in Patch 1. Although I don't know how relevant FAST_IO_FAIL is for bus reset, we don't implement that for zFCP. > * > diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c > index 77c91a405d20..ee8bb7985d09 100644 > --- a/drivers/scsi/aic7xxx/aic79xx_osm.c > +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c > @@ -863,21 +863,21 @@ ahd_linux_dev_reset(struct scsi_cmnd *cmd) > * Reset the SCSI bus. > */ > static int > -ahd_linux_bus_reset(struct scsi_cmnd *cmd) > +ahd_linux_bus_reset(struct Scsi_Host *shost, unsigned int channel) > { > struct ahd_softc *ahd; > int found; > unsigned long flags; > > - ahd = *(struct ahd_softc **)cmd->device->host->hostdata; > + ahd = *(struct ahd_softc **)shost->hostdata; Not `shost_priv(shost)`? The pointer casts end up at `struct ahd_softc *`, so `void *` as return type should be fine. > #ifdef AHD_DEBUG > if ((ahd_debug & AHD_SHOW_RECOVERY) != 0) > - printk("%s: Bus reset called for cmd %p\n", > - ahd_name(ahd), cmd); > + printk("%s: Bus reset called for channel %c\n", > + ahd_name(ahd), channel + 'A'); > #endif > ahd_lock(ahd, &flags); > > - found = ahd_reset_channel(ahd, scmd_channel(cmd) + 'A', > + found = ahd_reset_channel(ahd, channel + 'A', > /*initiate reset*/TRUE); > ahd_unlock(ahd, &flags); > > diff --git a/drivers/scsi/aic7xxx/aic7xxx_osm.c b/drivers/scsi/aic7xxx/aic7xxx_osm.c > index 4ae0a1c4d374..0570f2e67fad 100644 > --- a/drivers/scsi/aic7xxx/aic7xxx_osm.c > +++ b/drivers/scsi/aic7xxx/aic7xxx_osm.c > @@ -753,16 +753,16 @@ ahc_linux_dev_reset(struct scsi_cmnd *cmd) > * Reset the SCSI bus. > */ > static int > -ahc_linux_bus_reset(struct scsi_cmnd *cmd) > +ahc_linux_bus_reset(struct Scsi_Host *shost, unsigned int channel) > { > struct ahc_softc *ahc; > int found; > unsigned long flags; > > - ahc = *(struct ahc_softc **)cmd->device->host->hostdata; > + ahc = *(struct ahc_softc **)shost->hostdata; ... > > ahc_lock(ahc, &flags); > - found = ahc_reset_channel(ahc, scmd_channel(cmd) + 'A', > + found = ahc_reset_channel(ahc, channel + 'A', > /*initiate reset*/TRUE); > ahc_unlock(ahc, &flags); > -- Best Regards, Benjamin Block / Linux on IBM Z Kernel Development IBM Deutschland Research & Development GmbH / https://www.ibm.com/privacy Vors. Aufs.-R.: Gregor Pillen / Geschäftsführung: David Faller Sitz der Ges.: Böblingen / Registergericht: AmtsG Stuttgart, HRB 243294