qedf: fixup compilation warning about atomic_t usage
Subsystems (2)
PATCH 1/1 qedf: fixup compilation warning about atomic_t usage
The driver didn't follow the atomic_t vs refcount_t change, and anyway one should be using kref_read() instead of accessing the counter inside an kref.
Fixes 61d8658b4a435e ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.)
Cc Chad Dupuis <[email protected]>
Cc Nilesh Javali <[email protected]>
Signed-off-by Hannes Reinecke <[email protected]>
--- drivers/scsi/qedf/qedf_io.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/scsi/qedf/qedf_io.c +4 -4
@@ -998,7 +998,7 @@ static void qedf_trace_io(struct qedf_rport *fcport, struct qedf_ioreq *io_req, io_log->sg_count =scsi_sg_count (sc_cmd); io_log->result = sc_cmd->result; io_log->jiffies = jiffies; - io_log->refcount =atomic_read (&io_req->refcount.refcount); + io_log->refcount =kref_read (&io_req->refcount);if (direction ==QEDF_IO_TRACE_REQ ) {/* For requests we only care abot the submission CPU */
@@ -1340,7 +1340,7 @@ void qedf_scsi_completion(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,/* Good I/O completion */ sc_cmd->result =DID_OK <<16 ; }else { - refcount =atomic_read (&io_req->refcount.refcount); + refcount =kref_read (&io_req->refcount);QEDF_INFO (&(qedf->dbg_ctx),QEDF_LOG_IO ,"%d:0:%d:%d xid=0x%0x op=0x%02x " "lba=%02x%02x%02x%02x cdb_status=%d "
@@ -1425,7 +1425,7 @@ void qedf_scsi_done(struct qedf_ctx *qedf, struct qedf_ioreq *io_req,qedf_unmap_sg_list (qedf, io_req); sc_cmd->result = result <<16 ; - refcount =atomic_read (&io_req->refcount.refcount); + refcount =kref_read (&io_req->refcount); QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO, "%d:0:%d:%d: Completing " "sc_cmd=%p result=0x%08x op=0x%02x lba=0x%02x%02x%02x%02x, " "allowed=%d retries=%d refcount=%d.\n",
@@ -1556,7 +1556,7 @@ static void qedf_flush_els_req(struct qedf_ctx *qedf, {QEDF_INFO (&(qedf->dbg_ctx),QEDF_LOG_IO ,"Flushing ELS request xid=0x%x refcount=%d.\n" , els_req->xid, -atomic_read (&els_req->refcount.refcount)); +kref_read (&els_req->refcount));/* * Need to distinguish this from a timeout when calling the
Signature · 1 line
1.8.5.6
Quoted 45 lines · Hannes Reinecke
The driver didn't follow the
atomic_tvsrefcount_tchange, and anyway one should be usingkref_read()instead of accessing the counter inside an kref.Fixes 61d8658b4a435e ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.)Cc Chad Dupuis <[email protected]>Cc Nilesh Javali <[email protected]>Signed-off-by Hannes Reinecke <[email protected]>--- drivers/scsi/qedf/qedf_io.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)drivers/scsi/qedf/qedf_io.c +3
-3@@ -998,7 +998,7 @@ static void qedf_trace_io(struct qedf_rport *fcport, struct qedf_ioreq *io_req, io_log->sg_count =scsi_sg_count (sc_cmd); io_log->result = sc_cmd->result; io_log->jiffies = jiffies; - io_log->refcount =atomic_read (&io_req->refcount.refcount); + io_log->refcount =kref_read (&io_req->refcount);if (direction ==QEDF_IO_TRACE_REQ ) {/* For requests we only care abot the submission CPU */ @@ -1340,7 +1340,7 @@ void qedf_scsi_completion(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,/* Good I/O completion */ sc_cmd->result =DID_OK <<16 ; }else { - refcount =atomic_read (&io_req->refcount.refcount); + refcount =kref_read (&io_req->refcount);QEDF_INFO (&(qedf->dbg_ctx),QEDF_LOG_IO ,"%d:0:%d:%d xid=0x%0x op=0x%02x " "lba=%02x%02x%02x%02x cdb_status=%d "@@ -1425,7 +1425,7 @@ void qedf_scsi_done(struct qedf_ctx *qedf, struct qedf_ioreq *io_req,qedf_unmap_sg_list (qedf, io_req); sc_cmd->result = result <<16 ; - refcount =atomic_read (&io_req->refcount.refcount); + refcount =kref_read (&io_req->refcount); QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO, "%d:0:%d:%d: Completing " "sc_cmd=%p result=0x%08x op=0x%02x lba=0x%02x%02x%02x%02x, " "allowed=%d retries=%d refcount=%d.\n",
drivers/scsi/qedf/qedf_io.c static void qedf_flush_els_req(struct qedf_ctx *qedf, · line 1562
Quoted 8 lines
drivers/scsi/qedf/qedf_io.c +1
-1@@ -1556,7 +1556,7 @@ static void qedf_flush_els_req(struct qedf_ctx *qedf, {QEDF_INFO (&(qedf->dbg_ctx),QEDF_LOG_IO ,"Flushing ELS request xid=0x%x refcount=%d.\n" , els_req->xid, -atomic_read (&els_req->refcount.refcount)); +kref_read (&els_req->refcount));/* * Need to distinguish this from a timeout when calling the
Thanks for the patch Hannes though it looks like the atomic_read's in qedf_els.c need to be converted as well. Will post a patch shortly.