Re: [PATCH v2 38/44] smartpqi: Stop using the SCSI pointer

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

 




> On Feb 8, 2022, at 9:25 AM, Bart Van Assche <bvanassche@xxxxxxx> wrote:
> 
> Set .cmd_size in the SCSI host template instead of using the SCSI pointer
> from struct scsi_cmnd. This patch prepares for removal of the SCSI pointer
> from struct scsi_cmnd.
> 
> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
> Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx>
> ---
> drivers/scsi/smartpqi/smartpqi_init.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/smartpqi/smartpqi_init.c b/drivers/scsi/smartpqi/smartpqi_init.c
> index f0897d587454..74426974309f 100644
> --- a/drivers/scsi/smartpqi/smartpqi_init.c
> +++ b/drivers/scsi/smartpqi/smartpqi_init.c
> @@ -54,6 +54,15 @@ MODULE_DESCRIPTION("Driver for Microchip Smart Family Controller version "
> MODULE_VERSION(DRIVER_VERSION);
> MODULE_LICENSE("GPL");
> 
> +struct pqi_cmd_priv {
> +	int this_residual;
> +};
> +
> +static struct pqi_cmd_priv *pqi_cmd_priv(struct scsi_cmnd *cmd)
> +{
> +	return scsi_cmd_priv(cmd);
> +}
> +
> static void pqi_take_ctrl_offline(struct pqi_ctrl_info *ctrl_info,
> 	enum pqi_ctrl_shutdown_reason ctrl_shutdown_reason);
> static void pqi_ctrl_offline_worker(struct work_struct *work);
> @@ -5555,7 +5564,7 @@ static void pqi_aio_io_complete(struct pqi_io_request *io_request,
> 	scsi_dma_unmap(scmd);
> 	if (io_request->status == -EAGAIN || pqi_raid_bypass_retry_needed(io_request)) {
> 		set_host_byte(scmd, DID_IMM_RETRY);
> -		scmd->SCp.this_residual++;
> +		pqi_cmd_priv(scmd)->this_residual++;
> 	}
> 
> 	pqi_free_io_request(io_request);
> @@ -5779,7 +5788,7 @@ static inline bool pqi_is_bypass_eligible_request(struct scsi_cmnd *scmd)
> 	if (blk_rq_is_passthrough(scsi_cmd_to_rq(scmd)))
> 		return false;
> 
> -	return scmd->SCp.this_residual == 0;
> +	return pqi_cmd_priv(scmd)->this_residual == 0;
> }
> 
> /*
> @@ -7159,6 +7168,7 @@ static struct scsi_host_template pqi_driver_template = {
> 	.map_queues = pqi_map_queues,
> 	.sdev_groups = pqi_sdev_groups,
> 	.shost_groups = pqi_shost_groups,
> +	.cmd_size = sizeof(struct pqi_cmd_priv),
> };
> 
> static int pqi_register_scsi(struct pqi_ctrl_info *ctrl_info)

Reviewed-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx>

--
Himanshu Madhani	 Oracle Linux Engineering





[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