Re: [PATCH] qedf: fixup compilation warning about atomic_t usage

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

 




On Thu, 23 Feb 2017, 11:44am -0000, Hannes Reinecke wrote:

> 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 <chad.dupuis@xxxxxxxxxx>
> Cc: Nilesh Javali <nilesh.javali@xxxxxxxxxx>
> Signed-off-by: Hannes Reinecke <hare@xxxxxxxx>
> ---
>  drivers/scsi/qedf/qedf_io.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/scsi/qedf/qedf_io.c b/drivers/scsi/qedf/qedf_io.c
> index 486c045..ee0dcf9 100644
> --- a/drivers/scsi/qedf/qedf_io.c
> +++ b/drivers/scsi/qedf/qedf_io.c
> @@ -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
>

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. 



[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