Re: [PATCH 02/10] scsi: Use Scsi_Host and channel number as argument for eh_bus_reset_handler()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux