Re: [PATCH 12/16] qla2xxx: edif: Fix clang warning

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

 




> On Dec 23, 2021, at 11:07 PM, Nilesh Javali <njavali@xxxxxxxxxxx> wrote:
> 
> From: Quinn Tran <qutran@xxxxxxxxxxx>
> 
> Silent compile warning due to unaligned memory access.
> 
> qla_edif.c:713:45: warning: taking address of packed member 'u' of class or
>   structure 'auth_complete_cmd' may result in an unaligned pointer value
>   [-Waddress-of-packed-member]
>    fcport = qla2x00_find_fcport_by_pid(vha, &appplogiok.u.d_id);
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Signed-off-by: Quinn Tran <qutran@xxxxxxxxxxx>
> Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
> ---
> drivers/scsi/qla2xxx/qla_edif.c | 22 +++++++++++++++++++---
> 1 file changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_edif.c b/drivers/scsi/qla2xxx/qla_edif.c
> index c04957c363d8..0628633c7c7e 100644
> --- a/drivers/scsi/qla2xxx/qla_edif.c
> +++ b/drivers/scsi/qla2xxx/qla_edif.c
> @@ -668,6 +668,11 @@ qla_edif_app_authok(scsi_qla_host_t *vha, struct bsg_job *bsg_job)
> 	    bsg_job->request_payload.sg_cnt, &appplogiok,
> 	    sizeof(struct auth_complete_cmd));
> 
> +	/* silent unaligned access warning */
> +	portid.b.domain = appplogiok.u.d_id.b.domain;
> +	portid.b.area   = appplogiok.u.d_id.b.area;
> +	portid.b.al_pa  = appplogiok.u.d_id.b.al_pa;
> +
> 	switch (appplogiok.type) {
> 	case PL_TYPE_WWPN:
> 		fcport = qla2x00_find_fcport_by_wwpn(vha,
> @@ -678,7 +683,7 @@ qla_edif_app_authok(scsi_qla_host_t *vha, struct bsg_job *bsg_job)
> 			    __func__, appplogiok.u.wwpn);
> 		break;
> 	case PL_TYPE_DID:
> -		fcport = qla2x00_find_fcport_by_pid(vha, &appplogiok.u.d_id);
> +		fcport = qla2x00_find_fcport_by_pid(vha, &portid);
> 		if (!fcport)
> 			ql_dbg(ql_dbg_edif, vha, 0x911d,
> 			    "%s d_id lookup failed: %x\n", __func__,
> @@ -777,6 +782,11 @@ qla_edif_app_authfail(scsi_qla_host_t *vha, struct bsg_job *bsg_job)
> 	    bsg_job->request_payload.sg_cnt, &appplogifail,
> 	    sizeof(struct auth_complete_cmd));
> 
> +	/* silent unaligned access warning */
> +	portid.b.domain = appplogifail.u.d_id.b.domain;
> +	portid.b.area   = appplogifail.u.d_id.b.area;
> +	portid.b.al_pa  = appplogifail.u.d_id.b.al_pa;
> +
> 	/*
> 	 * TODO: edif: app has failed this plogi. Inform driver to
> 	 * take any action (if any).
> @@ -788,7 +798,7 @@ qla_edif_app_authfail(scsi_qla_host_t *vha, struct bsg_job *bsg_job)
> 		SET_DID_STATUS(bsg_reply->result, DID_OK);
> 		break;
> 	case PL_TYPE_DID:
> -		fcport = qla2x00_find_fcport_by_pid(vha, &appplogifail.u.d_id);
> +		fcport = qla2x00_find_fcport_by_pid(vha, &portid);
> 		if (!fcport)
> 			ql_dbg(ql_dbg_edif, vha, 0x911d,
> 			    "%s d_id lookup failed: %x\n", __func__,
> @@ -1253,6 +1263,7 @@ qla24xx_sadb_update(struct bsg_job *bsg_job)
> 	int result = 0;
> 	struct qla_sa_update_frame sa_frame;
> 	struct srb_iocb *iocb_cmd;
> +	port_id_t portid;
> 
> 	ql_dbg(ql_dbg_edif + ql_dbg_verbose, vha, 0x911d,
> 	    "%s entered, vha: 0x%p\n", __func__, vha);
> @@ -1276,7 +1287,12 @@ qla24xx_sadb_update(struct bsg_job *bsg_job)
> 		goto done;
> 	}
> 
> -	fcport = qla2x00_find_fcport_by_pid(vha, &sa_frame.port_id);
> +	/* silent unaligned access warning */
> +	portid.b.domain = sa_frame.port_id.b.domain;
> +	portid.b.area   = sa_frame.port_id.b.area;
> +	portid.b.al_pa  = sa_frame.port_id.b.al_pa;
> +
> +	fcport = qla2x00_find_fcport_by_pid(vha, &portid);
> 	if (fcport) {
> 		found = 1;
> 		if (sa_frame.flags == QLA_SA_UPDATE_FLAGS_TX_KEY)
> -- 
> 2.23.1
> 

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