Commit 1afca6b5 authored by Dupuis, Chad's avatar Dupuis, Chad Committed by Martin K. Petersen

scsi: qedf: fixup compilation warning about atomic_t usage

Based on an original patch by Hannes Reinecke.

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: 61d8658b ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.)
Cc: Hannes Reinecke <hare@suse.de>
Cc: Nilesh Javali <nilesh.javali@cavium.com>
Signed-off-by: default avatarDupuis, Chad <chad.dupuis@cavium.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent fcbfffe2
...@@ -183,7 +183,7 @@ static void qedf_rrq_compl(struct qedf_els_cb_arg *cb_arg) ...@@ -183,7 +183,7 @@ static void qedf_rrq_compl(struct qedf_els_cb_arg *cb_arg)
rrq_req->event != QEDF_IOREQ_EV_ELS_ERR_DETECT) rrq_req->event != QEDF_IOREQ_EV_ELS_ERR_DETECT)
cancel_delayed_work_sync(&orig_io_req->timeout_work); cancel_delayed_work_sync(&orig_io_req->timeout_work);
refcount = atomic_read(&orig_io_req->refcount.refcount); refcount = kref_read(&orig_io_req->refcount);
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "rrq_compl: orig io = %p," QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "rrq_compl: orig io = %p,"
" orig xid = 0x%x, rrq_xid = 0x%x, refcount=%d\n", " orig xid = 0x%x, rrq_xid = 0x%x, refcount=%d\n",
orig_io_req, orig_io_req->xid, rrq_req->xid, refcount); orig_io_req, orig_io_req->xid, rrq_req->xid, refcount);
...@@ -474,7 +474,7 @@ static void qedf_srr_compl(struct qedf_els_cb_arg *cb_arg) ...@@ -474,7 +474,7 @@ static void qedf_srr_compl(struct qedf_els_cb_arg *cb_arg)
srr_req->event != QEDF_IOREQ_EV_ELS_ERR_DETECT) srr_req->event != QEDF_IOREQ_EV_ELS_ERR_DETECT)
cancel_delayed_work_sync(&orig_io_req->timeout_work); cancel_delayed_work_sync(&orig_io_req->timeout_work);
refcount = atomic_read(&orig_io_req->refcount.refcount); refcount = kref_read(&orig_io_req->refcount);
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "Entered: orig_io=%p," QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "Entered: orig_io=%p,"
" orig_io_xid=0x%x, rec_xid=0x%x, refcount=%d\n", " orig_io_xid=0x%x, rec_xid=0x%x, refcount=%d\n",
orig_io_req, orig_io_req->xid, srr_req->xid, refcount); orig_io_req, orig_io_req->xid, srr_req->xid, refcount);
...@@ -758,7 +758,7 @@ static void qedf_rec_compl(struct qedf_els_cb_arg *cb_arg) ...@@ -758,7 +758,7 @@ static void qedf_rec_compl(struct qedf_els_cb_arg *cb_arg)
rec_req->event != QEDF_IOREQ_EV_ELS_ERR_DETECT) rec_req->event != QEDF_IOREQ_EV_ELS_ERR_DETECT)
cancel_delayed_work_sync(&orig_io_req->timeout_work); cancel_delayed_work_sync(&orig_io_req->timeout_work);
refcount = atomic_read(&orig_io_req->refcount.refcount); refcount = kref_read(&orig_io_req->refcount);
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "Entered: orig_io=%p," QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_ELS, "Entered: orig_io=%p,"
" orig_io_xid=0x%x, rec_xid=0x%x, refcount=%d\n", " orig_io_xid=0x%x, rec_xid=0x%x, refcount=%d\n",
orig_io_req, orig_io_req->xid, rec_req->xid, refcount); orig_io_req, orig_io_req->xid, rec_req->xid, refcount);
......
...@@ -998,7 +998,7 @@ static void qedf_trace_io(struct qedf_rport *fcport, struct qedf_ioreq *io_req, ...@@ -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->sg_count = scsi_sg_count(sc_cmd);
io_log->result = sc_cmd->result; io_log->result = sc_cmd->result;
io_log->jiffies = jiffies; 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) { if (direction == QEDF_IO_TRACE_REQ) {
/* For requests we only care abot the submission CPU */ /* 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, ...@@ -1340,7 +1340,7 @@ void qedf_scsi_completion(struct qedf_ctx *qedf, struct fcoe_cqe *cqe,
/* Good I/O completion */ /* Good I/O completion */
sc_cmd->result = DID_OK << 16; sc_cmd->result = DID_OK << 16;
} else { } else {
refcount = atomic_read(&io_req->refcount.refcount); refcount = kref_read(&io_req->refcount);
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO, QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO,
"%d:0:%d:%d xid=0x%0x op=0x%02x " "%d:0:%d:%d xid=0x%0x op=0x%02x "
"lba=%02x%02x%02x%02x cdb_status=%d " "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, ...@@ -1425,7 +1425,7 @@ void qedf_scsi_done(struct qedf_ctx *qedf, struct qedf_ioreq *io_req,
qedf_unmap_sg_list(qedf, io_req); qedf_unmap_sg_list(qedf, io_req);
sc_cmd->result = result << 16; 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 " 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, " "sc_cmd=%p result=0x%08x op=0x%02x lba=0x%02x%02x%02x%02x, "
"allowed=%d retries=%d refcount=%d.\n", "allowed=%d retries=%d refcount=%d.\n",
...@@ -1556,7 +1556,7 @@ static void qedf_flush_els_req(struct qedf_ctx *qedf, ...@@ -1556,7 +1556,7 @@ static void qedf_flush_els_req(struct qedf_ctx *qedf,
{ {
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO, QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_IO,
"Flushing ELS request xid=0x%x refcount=%d.\n", els_req->xid, "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 * Need to distinguish this from a timeout when calling the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment