diff mbox

lpfc: nvmet_fc: fix format string

Message ID 20170519080447.1043039-1-arnd@arndb.de (mailing list archive)
State Accepted
Headers show

Commit Message

Arnd Bergmann May 19, 2017, 8:04 a.m. UTC
The lpfc_nvmeio_data() tracing helper always takes a format string and
three additional arguments. The latest caller has a format string with
only two integer arguments, causing this harmless warning:

drivers/scsi/lpfc/lpfc_nvmet.c: In function 'lpfc_nvmet_xmt_fcp_release':
drivers/scsi/lpfc/lpfc_nvmet.c:802:25: error: too many arguments for format [-Werror=format-extra-args]
  lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d\n", ctxp->oxid,

We could add a dummy argument here, but it seems reasonable to print
the 'abort' flag as the third argument.

Fixes: 19b58d9473e8 ("nvmet_fc: add req_release to lldd api")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/scsi/lpfc/lpfc_nvmet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Joe Perches May 20, 2017, 10:28 a.m. UTC | #1
On Fri, 2017-05-19 at 10:04 +0200, Arnd Bergmann wrote:
> The lpfc_nvmeio_data() tracing helper always takes a format string and
> three additional arguments.

No it doesn't.  It takes a format and arguments.

I don't disagree with the patch, just the characterization
of the lpfc_mvmeio_data call in the commit message.

> The latest caller has a format string with
> only two integer arguments, causing this harmless warning:
> 
> drivers/scsi/lpfc/lpfc_nvmet.c: In function 'lpfc_nvmet_xmt_fcp_release':
> drivers/scsi/lpfc/lpfc_nvmet.c:802:25: error: too many arguments for format [-Werror=format-extra-args]
>   lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d\n", ctxp->oxid,
> 
> We could add a dummy argument here, but it seems reasonable to print
> the 'abort' flag as the third argument.
Arnd Bergmann May 20, 2017, 7:10 p.m. UTC | #2
On Sat, May 20, 2017 at 12:28 PM, Joe Perches <joe@perches.com> wrote:
> On Fri, 2017-05-19 at 10:04 +0200, Arnd Bergmann wrote:
>> The lpfc_nvmeio_data() tracing helper always takes a format string and
>> three additional arguments.
>
> No it doesn't.  It takes a format and arguments.
>
> I don't disagree with the patch, just the characterization
> of the lpfc_mvmeio_data call in the commit message.

I think my description is correct, it's just not obvious from
reading the code until you also look at the lpfc_debugfs_nvme_trc
prototype:

extern void lpfc_debugfs_nvme_trc(struct lpfc_hba *phba, char *fmt,
                                uint16_t data1, uint16_t data2, uint32_t data3);
#define lpfc_nvmeio_data(phba, fmt, arg...) \
        { \
        if (phba->nvmeio_trc_on) \
                lpfc_debugfs_nvme_trc(phba, fmt, ##arg); \
        }


This is trying to do the same thing as the regular Linux tracepoints,
but is called in a lot of places that are all required to pass exactly
three integer arguments along with a matching format string.

      Arnd
Joe Perches May 21, 2017, 12:43 a.m. UTC | #3
On Sat, 2017-05-20 at 21:10 +0200, Arnd Bergmann wrote:
> On Sat, May 20, 2017 at 12:28 PM, Joe Perches <joe@perches.com> wrote:
> > On Fri, 2017-05-19 at 10:04 +0200, Arnd Bergmann wrote:
> > > The lpfc_nvmeio_data() tracing helper always takes a format string and
> > > three additional arguments.
> > 
> > No it doesn't.  It takes a format and arguments.
> > 
> > I don't disagree with the patch, just the characterization
> > of the lpfc_mvmeio_data call in the commit message.
> 
> I think my description is correct, it's just not obvious from
> reading the code until you also look at the lpfc_debugfs_nvme_trc
> prototype:

OK, but more that's a mismatch between a function and its
arguments and a different called function within it.
Martin K. Petersen May 24, 2017, 2:36 a.m. UTC | #4
Arnd,

> The lpfc_nvmeio_data() tracing helper always takes a format string and
> three additional arguments. The latest caller has a format string with
> only two integer arguments, causing this harmless warning:

James?
James Smart May 29, 2017, 11:02 p.m. UTC | #5
Patch is fine.

Signed-off-by: James Smart <james.smart@broadcom.com>

-- james


On 5/19/2017 1:04 AM, Arnd Bergmann wrote:
> The lpfc_nvmeio_data() tracing helper always takes a format string and
> three additional arguments. The latest caller has a format string with
> only two integer arguments, causing this harmless warning:
>
> drivers/scsi/lpfc/lpfc_nvmet.c: In function 'lpfc_nvmet_xmt_fcp_release':
> drivers/scsi/lpfc/lpfc_nvmet.c:802:25: error: too many arguments for format [-Werror=format-extra-args]
>    lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d\n", ctxp->oxid,
>
> We could add a dummy argument here, but it seems reasonable to print
> the 'abort' flag as the third argument.
>
> Fixes: 19b58d9473e8 ("nvmet_fc: add req_release to lldd api")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>
Martin K. Petersen June 1, 2017, 2:44 a.m. UTC | #6
Arnd,

> The lpfc_nvmeio_data() tracing helper always takes a format string and
> three additional arguments. The latest caller has a format string with
> only two integer arguments, causing this harmless warning:

Applied to 4.12/scsi-fixes. Thank you!
diff mbox

Patch

diff --git a/drivers/scsi/lpfc/lpfc_nvmet.c b/drivers/scsi/lpfc/lpfc_nvmet.c
index f94294b77b7b..24d54dd016d4 100644
--- a/drivers/scsi/lpfc/lpfc_nvmet.c
+++ b/drivers/scsi/lpfc/lpfc_nvmet.c
@@ -799,8 +799,8 @@  lpfc_nvmet_xmt_fcp_release(struct nvmet_fc_target_port *tgtport,
 	}
 	spin_unlock_irqrestore(&ctxp->ctxlock, flags);
 
-	lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d\n", ctxp->oxid,
-			 ctxp->state, 0);
+	lpfc_nvmeio_data(phba, "NVMET FCP FREE: xri x%x ste %d abt %d\n", ctxp->oxid,
+			 ctxp->state, aborting);
 
 	atomic_inc(&lpfc_nvmep->xmt_fcp_release);