mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-20 20:21:30 +00:00
qla2x00t-32gbit: Make __qla2x00_alloc_iocbs() initialize 32 bits of request_t.handle
The request_t 'handle' member is 32-bits wide, hence use wrt_reg_dword(). Change the cast in the wrt_reg_byte() call to make it clear that a regular pointer is casted to an __iomem pointer. Note: 'pkt' points to I/O memory for the qlafx00 adapter family and to coherent memory for all other adapter families. This patch fixes the following Coverity complaint: CID 358864 (#1 of 1): Reliance on integer endianness (INCOMPATIBLE_CAST) incompatible_cast: Pointer &pkt->handle points to an object whose effective type is unsigned int (32 bits, unsigned) but is dereferenced as a narrower unsigned short (16 bits, unsigned). This may lead to unexpected results depending on machine endianness. Link: https://lore.kernel.org/r/20200629225454.22863-7-bvanassche@acm.org Fixes: 8ae6d9c7eb10 ("[SCSI] qla2xxx: Enhancements to support ISPFx00.") Cc: Nilesh Javali <njavali@marvell.com> Cc: Quinn Tran <qutran@marvell.com> Cc: Himanshu Madhani <himanshu.madhani@oracle.com> Cc: Martin Wilck <mwilck@suse.com> Cc: Roman Bolshakov <r.bolshakov@yadro.com> Reviewed-by: Daniel Wagner <dwagner@suse.de> Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> See also commit f8f12bda53eae87ca2dea42b36d19e48c9851b9f upstream. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9067 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -2311,8 +2311,8 @@ __qla2x00_alloc_iocbs(struct qla_qpair *qpair, srb_t *sp)
|
||||
pkt = req->ring_ptr;
|
||||
memset(pkt, 0, REQUEST_ENTRY_SIZE);
|
||||
if (IS_QLAFX00(ha)) {
|
||||
wrt_reg_byte((void __iomem *)&pkt->entry_count, req_cnt);
|
||||
wrt_reg_word((void __iomem *)&pkt->handle, handle);
|
||||
wrt_reg_byte((u8 __force __iomem *)&pkt->entry_count, req_cnt);
|
||||
wrt_reg_dword((__le32 __force __iomem *)&pkt->handle, handle);
|
||||
} else {
|
||||
pkt->entry_count = req_cnt;
|
||||
pkt->handle = handle;
|
||||
|
||||
Reference in New Issue
Block a user