Skip to contentSkip to conversation

qla2xxx: logging functions fixups

PATCH In review Joe Perches 3 participants 7 messages Jul 30, 2011 – Aug 9, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover qla2xxx: logging functions fixups

Joe Perches (2):
qla2xxx: Rewrite logging functions to use %pV
qla2xxx: Add __attribute__((format(printf... and fix fallout

 drivers/scsi/qla2xxx/qla_attr.c |    4 +-
 drivers/scsi/qla2xxx/qla_dbg.c  |  212 +++++++++++++++++++--------------------
 drivers/scsi/qla2xxx/qla_dbg.h  |   18 ++--
 drivers/scsi/qla2xxx/qla_init.c |    3 +-
 drivers/scsi/qla2xxx/qla_iocb.c |    2 +-
 drivers/scsi/qla2xxx/qla_isr.c  |    2 +-
 drivers/scsi/qla2xxx/qla_nx.c   |   12 +-
 drivers/scsi/qla2xxx/qla_os.c   |   12 +-
 drivers/scsi/qla2xxx/qla_sup.c  |    5 +-
 9 files changed, 132 insertions(+), 138 deletions(-)
Signature · 1 line
1.7.6.131.g99019
#1 lore raw

PATCH 1/2 qla2xxx: Rewrite logging functions to use %pV

Use less stack to emit logging messages.

Return early when logging level too low. Use normal kernel coding style for function braces. Add const where appropriate to logging functions. Remove now unused #define QL_DBG_BUF_LEN.

---
 drivers/scsi/qla2xxx/qla_dbg.c |  212 +++++++++++++++++++--------------------
 drivers/scsi/qla2xxx/qla_dbg.h |   10 +-
 2 files changed, 107 insertions(+), 115 deletions(-)
drivers/scsi/qla2xxx/qla_dbg.c +103 -109
index 2155071..95ec457 100644
@@ -1664,34 +1664,31 @@ qla81xx_fw_dump_failed:
  * msg:   The message to be displayed.
  */
 void
-ql_dbg(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg, ...) {
+ql_dbg(uint32_t level, scsi_qla_host_t *vha, int32_t id, const char *fmt, ...)
+{
+	va_list va;
+	struct va_format vaf;
 
-	char pbuf[QL_DBG_BUF_LEN];
-	va_list ap;
-	uint32_t len;
-	struct pci_dev *pdev = NULL;
+	if ((level & ql2xextended_error_logging) != level)
+		return;
 
-	memset(pbuf, 0, QL_DBG_BUF_LEN);
+	va_start(va, fmt);
 
-	va_start(ap, msg);
+	vaf.fmt = fmt;
+	vaf.va = &va;
 
-	if ((level & ql2xextended_error_logging) == level) {
-		if (vha != NULL) {
-			pdev = vha->hw->pdev;
-			/* <module-name> <pci-name> <msg-id>:<host> Message */
-			sprintf(pbuf, "%s [%s]-%04x:%ld: ", QL_MSGHDR,
-			    dev_name(&(pdev->dev)), id + ql_dbg_offset,
-			    vha->host_no);
-		} else
-			sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-			    "0000:00:00.0", id + ql_dbg_offset);
-
-		len = strlen(pbuf);
-		vsprintf(pbuf+len, msg, ap);
-		pr_warning("%s", pbuf);
+	if (vha != NULL) {
+		const struct pci_dev *pdev = vha->hw->pdev;
+		/* <module-name> <pci-name> <msg-id>:<host> Message */
+		pr_warn("%s [%s]-%04x:%ld: %pV",
+			QL_MSGHDR, dev_name(&(pdev->dev)), id + ql_dbg_offset,
+			vha->host_no, &vaf);
+	} else {
+		pr_warn("%s [%s]-%04x: : %pV",
+			QL_MSGHDR, "0000:00:00.0", id + ql_dbg_offset, &vaf);
 	}
 
-	va_end(ap);
+	va_end(va);
 
 }
 
@@ -1710,31 +1707,27 @@ ql_dbg(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg, ...) {
  * msg:   The message to be displayed.
  */
 void
-ql_dbg_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char *msg, ...) {
-
-	char pbuf[QL_DBG_BUF_LEN];
-	va_list ap;
-	uint32_t len;
+ql_dbg_pci(uint32_t level, struct pci_dev *pdev, int32_t id,
+	   const char *fmt, ...)
+{
+	va_list va;
+	struct va_format vaf;
 
 	if (pdev == NULL)
 		return;
+	if ((level & ql2xextended_error_logging) != level)
+		return;
 
-	memset(pbuf, 0, QL_DBG_BUF_LEN);
-
-	va_start(ap, msg);
-
-	if ((level & ql2xextended_error_logging) == level) {
-		/* <module-name> <dev-name>:<msg-id> Message */
-		sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-		    dev_name(&(pdev->dev)), id + ql_dbg_offset);
+	va_start(va, fmt);
 
-		len = strlen(pbuf);
-		vsprintf(pbuf+len, msg, ap);
-		pr_warning("%s", pbuf);
-	}
+	vaf.fmt = fmt;
+	vaf.va = &va;
 
-	va_end(ap);
+	/* <module-name> <dev-name>:<msg-id> Message */
+	pr_warn("%s [%s]-%04x: : %pV",
+		QL_MSGHDR, dev_name(&(pdev->dev)), id + ql_dbg_offset, &vaf);
 
+	va_end(va);
 }
 
 /*
@@ -1751,47 +1744,47 @@ ql_dbg_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char *msg, ...) {
  * msg:   The message to be displayed.
  */
 void
-ql_log(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg, ...) {
-
-	char pbuf[QL_DBG_BUF_LEN];
-	va_list ap;
-	uint32_t len;
-	struct pci_dev *pdev = NULL;
-
-	memset(pbuf, 0, QL_DBG_BUF_LEN);
-
-	va_start(ap, msg);
-
-	if (level <= ql_errlev) {
-		if (vha != NULL) {
-			pdev = vha->hw->pdev;
-			/* <module-name> <msg-id>:<host> Message */
-			sprintf(pbuf, "%s [%s]-%04x:%ld: ", QL_MSGHDR,
-			    dev_name(&(pdev->dev)), id, vha->host_no);
-		} else
-			sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-			    "0000:00:00.0", id);
+ql_log(uint32_t level, scsi_qla_host_t *vha, int32_t id, const char *fmt, ...)
+{
+	va_list va;
+	struct va_format vaf;
+	char pbuf[128];
 
-		len = strlen(pbuf);
-			vsprintf(pbuf+len, msg, ap);
+	if (level > ql_errlev)
+		return;
 
-		switch (level) {
-		case 0: /* FATAL LOG */
-			pr_crit("%s", pbuf);
-			break;
-		case 1:
-			pr_err("%s", pbuf);
-			break;
-		case 2:
-			pr_warn("%s", pbuf);
-			break;
-		default:
-			pr_info("%s", pbuf);
-			break;
-		}
+	if (vha != NULL) {
+		const struct pci_dev *pdev = vha->hw->pdev;
+		/* <module-name> <msg-id>:<host> Message */
+		snprintf(pbuf, sizeof(pbuf), "%s [%s]-%04x:%ld: ",
+			QL_MSGHDR, dev_name(&(pdev->dev)), id, vha->host_no);
+	} else {
+		snprintf(pbuf, sizeof(pbuf), "%s [%s]-%04x: : ",
+			QL_MSGHDR, "0000:00:00.0", id);
+	}
+	pbuf[sizeof(pbuf) - 1] = 0;
+
+	va_start(va, fmt);
+
+	vaf.fmt = fmt;
+	vaf.va = &va;
+
+	switch (level) {
+	case 0: /* FATAL LOG */
+		pr_crit("%s%pV", pbuf, &vaf);
+		break;
+	case 1:
+		pr_err("%s%pV", pbuf, &vaf);
+		break;
+	case 2:
+		pr_warn("%s%pV", pbuf, &vaf);
+		break;
+	default:
+		pr_info("%s%pV", pbuf, &vaf);
+		break;
 	}
 
-	va_end(ap);
+	va_end(va);
 }
 
 /*
@@ -1809,43 +1802,44 @@ ql_log(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg, ...) {
  * msg:   The message to be displayed.
  */
 void
-ql_log_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char *msg, ...) {
-
-	char pbuf[QL_DBG_BUF_LEN];
-	va_list ap;
-	uint32_t len;
+ql_log_pci(uint32_t level, struct pci_dev *pdev, int32_t id,
+	   const char *fmt, ...)
+{
+	va_list va;
+	struct va_format vaf;
+	char pbuf[128];
 
 	if (pdev == NULL)
 		return;
+	if (level > ql_errlev)
+		return;
 
-	memset(pbuf, 0, QL_DBG_BUF_LEN);
-
-	va_start(ap, msg);
-
-	if (level <= ql_errlev) {
-		/* <module-name> <dev-name>:<msg-id> Message */
-		sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-		    dev_name(&(pdev->dev)), id);
-
-		len = strlen(pbuf);
-		vsprintf(pbuf+len, msg, ap);
-		switch (level) {
-		case 0: /* FATAL LOG */
-			pr_crit("%s", pbuf);
-			break;
-		case 1:
-			pr_err("%s", pbuf);
-			break;
-		case 2:
-			pr_warn("%s", pbuf);
-			break;
-		default:
-			pr_info("%s", pbuf);
-			break;
-		}
+	/* <module-name> <dev-name>:<msg-id> Message */
+	snprintf(pbuf, sizeof(pbuf), "%s [%s]-%04x: : ",
+		 QL_MSGHDR, dev_name(&(pdev->dev)), id);
+	pbuf[sizeof(pbuf) - 1] = 0;
+
+	va_start(va, fmt);
+
+	vaf.fmt = fmt;
+	vaf.va = &va;
+
+	switch (level) {
+	case 0: /* FATAL LOG */
+		pr_crit("%s%pV", pbuf, &vaf);
+		break;
+	case 1:
+		pr_err("%s%pV", pbuf, &vaf);
+		break;
+	case 2:
+		pr_warn("%s%pV", pbuf, &vaf);
+		break;
+	default:
+		pr_info("%s%pV", pbuf, &vaf);
+		break;
 	}
 
-	va_end(ap);
+	va_end(va);
 }
 
 void
@@ -1888,7 +1882,7 @@ ql_dump_buffer(uint32_t level, scsi_qla_host_t *vha, int32_t id,
 		ql_dbg(level, vha, id, "----------------------------------"
 		    "----------------------------\n");
 
-		ql_dbg(level, vha, id, "");
+		ql_dbg(level, vha, id, " ");
 		for (cnt = 0; cnt < size;) {
 			c = *b++;
 			printk("%02x", (uint32_t) c);
drivers/scsi/qla2xxx/qla_dbg.h +4 -6
index 98a377b..0692814 100644
@@ -245,14 +245,14 @@ struct qla2xxx_fw_dump {
 extern int ql_errlev;
 
 void
-ql_dbg(uint32_t, scsi_qla_host_t *vha, int32_t, char *, ...);
+ql_dbg(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
 void
-ql_dbg_pci(uint32_t, struct pci_dev *pdev, int32_t, char *, ...);
+ql_dbg_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt, ...);
 
 void
-ql_log(uint32_t, scsi_qla_host_t *vha, int32_t, char *, ...);
+ql_log(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
 void
-ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, char *, ...);
+ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt, ...);
 
 /* Debug Levels */
 /* The 0x40000000 is the max value any debug level can have
@@ -275,5 +275,3 @@ ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, char *, ...);
 #define ql_dbg_misc	0x00010000 /* For dumping everything that is not
 				    * not covered by upper categories
 				    */
-
-#define QL_DBG_BUF_LEN	512
Signature · 1 line
1.7.6.131.g99019
#2 lore raw

Re: [PATCH 1/2] qla2xxx: Rewrite logging functions to use %pV

drivers/scsi/qla2xxx/qla_dbg.c qla81xx_fw_dump_failed: · line 1689

Quoted 10 lines
drivers/scsi/qla2xxx/qla_dbg.c +9 -0
+	if (vha != NULL) {
+		const struct pci_dev *pdev = vha->hw->pdev;
+		/* <module-name> <pci-name> <msg-id>:<host> Message */
+		pr_warn("%s [%s]-%04x:%ld: %pV",
+			QL_MSGHDR, dev_name(&(pdev->dev)), id + ql_dbg_offset,
+			vha->host_no, &vaf);
+	} else {
+		pr_warn("%s [%s]-%04x: : %pV",
+			QL_MSGHDR, "0000:00:00.0", id + ql_dbg_offset, &vaf);
 	}

If I would see 0000:00:00.0 in the logmessage I would become scared that something is dereferencing cleared memory, use after free or whatever. Only by looking into the code I could see that this code simply has no idea which device it is on. Well, then don't print an address when you don't have one instead of inventing one.

Eike

#3 lore raw

Re: [PATCH 1/2] qla2xxx: Rewrite logging functions to use %pV

Quoted 7 lines · Rolf Eike Beer
Quoted 7 lines
drivers/scsi/qla2xxx/qla_dbg.c +7 -0
+	if (vha != NULL) {
+		const struct pci_dev *pdev = vha->hw->pdev;
+		/* <module-name> <pci-name> <msg-id>:<host> Message */
+		pr_warn("%s [%s]-%04x:%ld: %pV",
+			QL_MSGHDR, dev_name(&(pdev->dev)), id + ql_dbg_offset,
+			vha->host_no, &vaf);
+	} else {
Quoted 8 lines

drivers/scsi/qla2xxx/qla_dbg.c qla81xx_fw_dump_failed: · line 1689

Quoted 3 lines
drivers/scsi/qla2xxx/qla_dbg.c +2 -0
+		pr_warn("%s [%s]-%04x: : %pV",
+			QL_MSGHDR, "0000:00:00.0", id + ql_dbg_offset, &vaf);
 	}

If I would see 0000:00:00.0 in the logmessage I would become scared that something is dereferencing cleared memory, use after free or whatever. Only by looking into the code I could see that this code simply has no idea which device it is on. Well, then don't print an address when you don't have one instead of inventing one.

I don't disagree, but that's for Andrew to figure out in a separate patch.

I just want to make the code smaller.

The output of the new code is the same as the old code.

#4 lore raw

RE: [PATCH 1/2] qla2xxx: Rewrite logging functions to use %pV

In reply to Joe Perches

Acked by: Saurav Kashyap <[email protected]>

Thanks,
~Saurav

Quoted 347 lines

-----Original Message-----
From: [email protected] [mailto:linux-scsi- [email protected]] On Behalf Of Joe Perches
Sent: 30 July 2011 16:05
To: Andrew Vasquez; Linux Driver
Cc: James E.J. Bottomley; [email protected]; linux-kernel
Subject: [PATCH 1/2] qla2xxx: Rewrite logging functions to use %pV

Use less stack to emit logging messages.

Return early when logging level too low. Use normal kernel coding style for function braces. Add const where appropriate to logging functions. Remove now unused #define QL_DBG_BUF_LEN.

---
 drivers/scsi/qla2xxx/qla_dbg.c |  212 +++++++++++++++++++-------------
-------
 drivers/scsi/qla2xxx/qla_dbg.h |   10 +-
 2 files changed, 107 insertions(+), 115 deletions(-)
drivers/scsi/qla2xxx/qla_dbg.c +33 -40
index 2155071..95ec457 100644
@@ -1664,34 +1664,31 @@ qla81xx_fw_dump_failed:
  * msg:   The message to be displayed.
  */
 void
-ql_dbg(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg,
 ...) {
+ql_dbg(uint32_t level, scsi_qla_host_t *vha, int32_t id, const char
 *fmt, ...)
+{
+     va_list va;
+     struct va_format vaf;
 
-     char pbuf[QL_DBG_BUF_LEN];
-     va_list ap;
-     uint32_t len;
-     struct pci_dev *pdev = NULL;
+     if ((level & ql2xextended_error_logging) != level)
+             return;
 
-     memset(pbuf, 0, QL_DBG_BUF_LEN);
+     va_start(va, fmt);
 
-     va_start(ap, msg);
+     vaf.fmt = fmt;
+     vaf.va = &va;
 
-     if ((level & ql2xextended_error_logging) == level) {
-             if (vha != NULL) {
-                     pdev = vha->hw->pdev;
-                     /* <module-name> <pci-name> <msg-id>:<host> Message
 */
-                     sprintf(pbuf, "%s [%s]-%04x:%ld: ", QL_MSGHDR,
-                         dev_name(&(pdev->dev)), id + ql_dbg_offset,
-                         vha->host_no);
-             } else
-                     sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-                         "0000:00:00.0", id + ql_dbg_offset);
-
-             len = strlen(pbuf);
-             vsprintf(pbuf+len, msg, ap);
-             pr_warning("%s", pbuf);
+     if (vha != NULL) {
+             const struct pci_dev *pdev = vha->hw->pdev;
+             /* <module-name> <pci-name> <msg-id>:<host> Message */
+             pr_warn("%s [%s]-%04x:%ld: %pV",
+                     QL_MSGHDR, dev_name(&(pdev->dev)), id +
 ql_dbg_offset,
+                     vha->host_no, &vaf);
+     } else {
+             pr_warn("%s [%s]-%04x: : %pV",
+                     QL_MSGHDR, "0000:00:00.0", id + ql_dbg_offset, &vaf);
      }
 
-     va_end(ap);
+     va_end(va);
 
 }
@@ -1710,31 +1707,27 @@ ql_dbg(uint32_t level, scsi_qla_host_t *vha,
 int32_t id, char *msg, ...) {
  * msg:   The message to be displayed.
  */
 void
-ql_dbg_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char
 *msg, ...) {
-
-     char pbuf[QL_DBG_BUF_LEN];
-     va_list ap;
-     uint32_t len;
+ql_dbg_pci(uint32_t level, struct pci_dev *pdev, int32_t id,
+        const char *fmt, ...)
+{
+     va_list va;
+     struct va_format vaf;
 
      if (pdev == NULL)
              return;
+     if ((level & ql2xextended_error_logging) != level)
+             return;
 
-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
-     va_start(ap, msg);
-
-     if ((level & ql2xextended_error_logging) == level) {
-             /* <module-name> <dev-name>:<msg-id> Message */
-             sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-                 dev_name(&(pdev->dev)), id + ql_dbg_offset);
+     va_start(va, fmt);
 
-             len = strlen(pbuf);
-             vsprintf(pbuf+len, msg, ap);
-             pr_warning("%s", pbuf);
-     }
+     vaf.fmt = fmt;
+     vaf.va = &va;
 
-     va_end(ap);
+     /* <module-name> <dev-name>:<msg-id> Message */
+     pr_warn("%s [%s]-%04x: : %pV",
+             QL_MSGHDR, dev_name(&(pdev->dev)), id + ql_dbg_offset,
 &vaf);
 
+     va_end(va);

}

/*

drivers/scsi/qla2xxx/qla_dbg.c +37 -37
@@ -1751,47 +1744,47 @@ ql_dbg_pci(uint32_t level, struct pci_dev
 *pdev, int32_t id, char *msg, ...) {
  * msg:   The message to be displayed.
  */
 void
-ql_log(uint32_t level, scsi_qla_host_t *vha, int32_t id, char *msg,
 ...) {
-
-     char pbuf[QL_DBG_BUF_LEN];
-     va_list ap;
-     uint32_t len;
-     struct pci_dev *pdev = NULL;
-
-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
-     va_start(ap, msg);
-
-     if (level <= ql_errlev) {
-             if (vha != NULL) {
-                     pdev = vha->hw->pdev;
-                     /* <module-name> <msg-id>:<host> Message */
-                     sprintf(pbuf, "%s [%s]-%04x:%ld: ", QL_MSGHDR,
-                         dev_name(&(pdev->dev)), id, vha->host_no);
-             } else
-                     sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-                         "0000:00:00.0", id);
+ql_log(uint32_t level, scsi_qla_host_t *vha, int32_t id, const char
 *fmt, ...)
+{
+     va_list va;
+     struct va_format vaf;
+     char pbuf[128];
 
-             len = strlen(pbuf);
-                     vsprintf(pbuf+len, msg, ap);
+     if (level > ql_errlev)
+             return;
 
-             switch (level) {
-             case 0: /* FATAL LOG */
-                     pr_crit("%s", pbuf);
-                     break;
-             case 1:
-                     pr_err("%s", pbuf);
-                     break;
-             case 2:
-                     pr_warn("%s", pbuf);
-                     break;
-             default:
-                     pr_info("%s", pbuf);
-                     break;
-             }
+     if (vha != NULL) {
+             const struct pci_dev *pdev = vha->hw->pdev;
+             /* <module-name> <msg-id>:<host> Message */
+             snprintf(pbuf, sizeof(pbuf), "%s [%s]-%04x:%ld: ",
+                     QL_MSGHDR, dev_name(&(pdev->dev)), id, vha->host_no);
+     } else {
+             snprintf(pbuf, sizeof(pbuf), "%s [%s]-%04x: : ",
+                     QL_MSGHDR, "0000:00:00.0", id);
+     }
+     pbuf[sizeof(pbuf) - 1] = 0;
+
+     va_start(va, fmt);
+
+     vaf.fmt = fmt;
+     vaf.va = &va;
+
+     switch (level) {
+     case 0: /* FATAL LOG */
+             pr_crit("%s%pV", pbuf, &vaf);
+             break;
+     case 1:
+             pr_err("%s%pV", pbuf, &vaf);
+             break;
+     case 2:
+             pr_warn("%s%pV", pbuf, &vaf);
+             break;
+     default:
+             pr_info("%s%pV", pbuf, &vaf);
+             break;
      }
 
-     va_end(ap);
+     va_end(va);

}

/*

drivers/scsi/qla2xxx/qla_dbg.c +32 -31
@@ -1809,43 +1802,44 @@ ql_log(uint32_t level, scsi_qla_host_t *vha,
 int32_t id, char *msg, ...) {
  * msg:   The message to be displayed.
  */
 void
-ql_log_pci(uint32_t level, struct pci_dev *pdev, int32_t id, char
 *msg, ...) {
-
-     char pbuf[QL_DBG_BUF_LEN];
-     va_list ap;
-     uint32_t len;
+ql_log_pci(uint32_t level, struct pci_dev *pdev, int32_t id,
+        const char *fmt, ...)
+{
+     va_list va;
+     struct va_format vaf;
+     char pbuf[128];
 
      if (pdev == NULL)
              return;
+     if (level > ql_errlev)
+             return;
 
-     memset(pbuf, 0, QL_DBG_BUF_LEN);
-
-     va_start(ap, msg);
-
-     if (level <= ql_errlev) {
-             /* <module-name> <dev-name>:<msg-id> Message */
-             sprintf(pbuf, "%s [%s]-%04x: : ", QL_MSGHDR,
-                 dev_name(&(pdev->dev)), id);
-
-             len = strlen(pbuf);
-             vsprintf(pbuf+len, msg, ap);
-             switch (level) {
-             case 0: /* FATAL LOG */
-                     pr_crit("%s", pbuf);
-                     break;
-             case 1:
-                     pr_err("%s", pbuf);
-                     break;
-             case 2:
-                     pr_warn("%s", pbuf);
-                     break;
-             default:
-                     pr_info("%s", pbuf);
-                     break;
-             }
+     /* <module-name> <dev-name>:<msg-id> Message */
+     snprintf(pbuf, sizeof(pbuf), "%s [%s]-%04x: : ",
+              QL_MSGHDR, dev_name(&(pdev->dev)), id);
+     pbuf[sizeof(pbuf) - 1] = 0;
+
+     va_start(va, fmt);
+
+     vaf.fmt = fmt;
+     vaf.va = &va;
+
+     switch (level) {
+     case 0: /* FATAL LOG */
+             pr_crit("%s%pV", pbuf, &vaf);
+             break;
+     case 1:
+             pr_err("%s%pV", pbuf, &vaf);
+             break;
+     case 2:
+             pr_warn("%s%pV", pbuf, &vaf);
+             break;
+     default:
+             pr_info("%s%pV", pbuf, &vaf);
+             break;
      }
 
-     va_end(ap);
+     va_end(va);
 }

void

drivers/scsi/qla2xxx/qla_dbg.c +1 -1
@@ -1888,7 +1882,7 @@ ql_dump_buffer(uint32_t level, scsi_qla_host_t
 *vha, int32_t id,
              ql_dbg(level, vha, id, "----------------------------------"
                  "----------------------------\n");
 
-             ql_dbg(level, vha, id, "");
+             ql_dbg(level, vha, id, " ");
              for (cnt = 0; cnt < size;) {
                      c = *b++;
                      printk("%02x", (uint32_t) c);
drivers/scsi/qla2xxx/qla_dbg.h +4 -4
index 98a377b..0692814 100644
@@ -245,14 +245,14 @@ struct qla2xxx_fw_dump {
 extern int ql_errlev;
 
 void
-ql_dbg(uint32_t, scsi_qla_host_t *vha, int32_t, char *, ...);
+ql_dbg(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
 void
-ql_dbg_pci(uint32_t, struct pci_dev *pdev, int32_t, char *, ...);
+ql_dbg_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt,
 ...);
 
 void
-ql_log(uint32_t, scsi_qla_host_t *vha, int32_t, char *, ...);
+ql_log(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
 void
-ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, char *, ...);
+ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt,
 ...);
 

/* Debug Levels */
/* The 0x40000000 is the max value any debug level can have

drivers/scsi/qla2xxx/qla_dbg.h +0 -0
@@ -275,5 +275,3 @@ ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t,
 char *, ...);
 #define ql_dbg_misc  0x00010000 /* For dumping everything that is

not
* not covered by upper categories */

drivers/scsi/qla2xxx/qla_dbg.h +0 -3
-
-#define QL_DBG_BUF_LEN       512
--

1.7.6.131.g99019

Quoted 5 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message.

#5 lore raw

PATCH 2/2 qla2xxx: Add __attribute__((format(printf... and fix fallout

In reply to Joe Perches

Make the local logging functions verify their arguments and fixup the current broken uses as appropriate.

---
 drivers/scsi/qla2xxx/qla_attr.c |    4 ++--
 drivers/scsi/qla2xxx/qla_dbg.h  |    8 ++++----
 drivers/scsi/qla2xxx/qla_init.c |    3 ++-
 drivers/scsi/qla2xxx/qla_iocb.c |    2 +-
 drivers/scsi/qla2xxx/qla_isr.c  |    2 +-
 drivers/scsi/qla2xxx/qla_nx.c   |   12 ++++++------
 drivers/scsi/qla2xxx/qla_os.c   |   12 ++++++------
 drivers/scsi/qla2xxx/qla_sup.c  |    5 +++--
 8 files changed, 25 insertions(+), 23 deletions(-)
drivers/scsi/qla2xxx/qla_attr.c +2 -2
index 7836eb0..dc57471 100644
@@ -634,7 +634,7 @@ qla2x00_sysfs_write_edc(struct file *filp, struct kobject *kobj,
 	    dev, adr, len, opt);
 	if (rval != QLA_SUCCESS) {
 		ql_log(ql_log_warn, vha, 0x7074,
-		    "Unable to write EDC (%x) %02x:%04x:%02x:%02x\n",
+		    "Unable to write EDC (%x) %02x:%04x:%02x:%02x:%02x\n",
 		    rval, dev, adr, opt, len, buf[8]);
 		return 0;
 	}
@@ -691,7 +691,7 @@ qla2x00_sysfs_write_edc_status(struct file *filp, struct kobject *kobj,
 			dev, adr, len, opt);
 	if (rval != QLA_SUCCESS) {
 		ql_log(ql_log_info, vha, 0x7075,
-		    "Unable to write EDC status (%x) %02x:%04x:%02x.\n",
+		    "Unable to write EDC status (%x) %02x:%04x:%02x:%02x.\n",
 		    rval, dev, adr, opt, len);
 		return 0;
 	}
drivers/scsi/qla2xxx/qla_dbg.h +4 -4
index 0692814..29a7822 100644
@@ -244,14 +244,14 @@ struct qla2xxx_fw_dump {
 
 extern int ql_errlev;
 
-void
+void __attribute__((format (printf, 4, 5)))
 ql_dbg(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
-void
+void __attribute__((format (printf, 4, 5)))
 ql_dbg_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt, ...);
 
-void
+void __attribute__((format (printf, 4, 5)))
 ql_log(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
-void
+void __attribute__((format (printf, 4, 5)))
 ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt, ...);
 
 /* Debug Levels */
drivers/scsi/qla2xxx/qla_init.c +2 -1
index def6942..351b1ec 100644
@@ -4186,7 +4186,8 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
 		spin_unlock_irqrestore(&ha->vport_slock, flags);
 
 	} else {
-		ql_log(ql_log_warn, vha, 0x8023, "%s **** FAILED ****.\n");
+		ql_log(ql_log_warn, vha, 0x8023, "%s **** FAILED ****.\n",
+		       __func__);
 	}
 
 	return(status);
drivers/scsi/qla2xxx/qla_iocb.c +1 -1
index 49d6906..f8bac2c 100644
@@ -858,7 +858,7 @@ qla24xx_walk_and_build_sglist(struct qla_hw_data *ha, srb_t *sp, uint32_t *dsd,
 		sle_dma = sg_dma_address(sg);
 		ql_dbg(ql_dbg_io, vha, 0x300a,
 		    "sg entry %d - addr=0x%x 0x%x, " "len=%d for cmd=%p.\n",
-		    cur_dsd, i, LSD(sle_dma), MSD(sle_dma), sg_dma_len(sg),
+		    i, LSD(sle_dma), MSD(sle_dma), sg_dma_len(sg),
 		    sp->cmd);
 		*cur_dsd++ = cpu_to_le32(LSD(sle_dma));
 		*cur_dsd++ = cpu_to_le32(MSD(sle_dma));
drivers/scsi/qla2xxx/qla_isr.c +1 -1
index b16b772..0eac872 100644
@@ -298,7 +298,7 @@ qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t aen, uint16_t descr)
 		return;
 
 	ql_dbg(ql_dbg_async, vha, 0x5022,
-	    "Inter-Driver Commucation %s -- ACK timeout=%d.\n",
+	    "%lu Inter-Driver Communication %s -- ACK timeout=%d.\n",
 	    vha->host_no, event[aen & 0xff], timeout);
 
 	rval = qla2x00_post_idc_ack_work(vha, mb);
drivers/scsi/qla2xxx/qla_nx.c +6 -6
index 5cbf33a..42a0992 100644
@@ -362,7 +362,7 @@ qla82xx_pci_set_crbwindow_2M(struct qla_hw_data *ha, ulong *off)
 		ql_dbg(ql_dbg_p3p, vha, 0xb000,
 		    "%s: Written crbwin (0x%x) "
 		    "!= Read crbwin (0x%x), off=0x%lx.\n",
-		    ha->crb_win, win_read, *off);
+		    __func__, ha->crb_win, win_read, *off);
 	}
 	*off = (*off & MASK(16)) + CRB_INDIRECT_2M + ha->nx_pcibase;
 }
@@ -402,7 +402,7 @@ qla82xx_pci_set_crbwindow(struct qla_hw_data *ha, u64 off)
 	}
 	/* strange address given */
 	ql_dbg(ql_dbg_p3p, vha, 0xb001,
-	    "%x: Warning: unm_nic_pci_set_crbwindow "
+	    "%s: Warning: unm_nic_pci_set_crbwindow "
 	    "called with an unknown address(%llx).\n",
 	    QLA2XXX_DRIVER_NAME, off);
 	return off;
@@ -1704,12 +1704,12 @@ qla82xx_iospace_config(struct qla_hw_data *ha)
 	ql_dbg_pci(ql_dbg_multiq, ha->pdev, 0xc006,
 	    "nx_pci_base=%p iobase=%p "
 	    "max_req_queues=%d msix_count=%d.\n",
-	    ha->nx_pcibase, ha->iobase,
+	    (void *)ha->nx_pcibase, ha->iobase,
 	    ha->max_req_queues, ha->msix_count);
 	ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0010,
 	    "nx_pci_base=%p iobase=%p "
 	    "max_req_queues=%d msix_count=%d.\n",
-	    ha->nx_pcibase, ha->iobase,
+	    (void *)ha->nx_pcibase, ha->iobase,
 	    ha->max_req_queues, ha->msix_count);
 	return 0;
 
@@ -1737,7 +1737,7 @@ qla82xx_pci_config(scsi_qla_host_t *vha)
 	ret = pci_set_mwi(ha->pdev);
 	ha->chip_revision = ha->pdev->revision;
 	ql_dbg(ql_dbg_init, vha, 0x0043,
-	    "Chip revision:%ld.\n",
+	    "Chip revision:%d.\n",
 	    ha->chip_revision);
 	return 0;
 }
@@ -3939,7 +3939,7 @@ int qla2x00_wait_for_fcoe_ctx_reset(scsi_qla_host_t *vha)
 		}
 	}
 	ql_dbg(ql_dbg_p3p, vha, 0xb027,
-	    "%s status=%d.\n", status);
+	       "%s: status=%d.\n", __func__, status);
 
 	return status;
 }
drivers/scsi/qla2xxx/qla_os.c +6 -6
index e02df27..16cadc9 100644
@@ -1041,7 +1041,7 @@ __qla2xxx_eh_generic_reset(char *name, enum nexus_wait_type type,
 eh_reset_failed:
 	ql_log(ql_log_info, vha, 0x800f,
 	    "%s RESET FAILED: %s for id %d lun %d cmd=%p.\n", name,
-	    reset_errors[err], cmd->device->id, cmd->device->lun);
+	    reset_errors[err], cmd->device->id, cmd->device->lun, cmd);
 	return FAILED;
 }
 
@@ -1856,7 +1856,7 @@ qla2x00_set_isp_flags(struct qla_hw_data *ha)
 		ha->flags.port0 = 0;
 	ql_dbg_pci(ql_dbg_init, ha->pdev, 0x000b,
 	    "device_type=0x%x port=%d fw_srisc_address=%p.\n",
-	    ha->device_type, ha->flags.port0, ha->fw_srisc_address);
+	    ha->device_type, ha->flags.port0, (void *)ha->fw_srisc_address);
 }
 
 static int
@@ -1896,8 +1896,8 @@ qla2x00_iospace_config(struct qla_hw_data *ha)
 	}
 	ha->pio_address = pio;
 	ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0014,
-	    "PIO address=%p.\n",
-	    ha->pio_address);
+	    "PIO address=%llu.\n",
+	    (unsigned long long)ha->pio_address);
 
 skip_pio:
 	/* Use MMIO operations for all accesses. */
@@ -2263,7 +2263,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
 	ql_dbg(ql_dbg_init, base_vha, 0x0033,
 	    "max_id=%d this_id=%d "
 	    "cmd_per_len=%d unique_id=%d max_cmd_len=%d max_channel=%d "
-	    "max_lun=%d transportt=%p, vendor_id=%d.\n", host->max_id,
+	    "max_lun=%d transportt=%p, vendor_id=%llu.\n", host->max_id,
 	    host->this_id, host->cmd_per_lun, host->unique_id,
 	    host->max_cmd_len, host->max_channel, host->max_lun,
 	    host->transportt, sht->vendor_id);
@@ -2864,7 +2864,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
 		if (!ha->sns_cmd)
 			goto fail_dma_pool;
 		ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0026,
-		    "sns_cmd.\n", ha->sns_cmd);
+		    "sns_cmd: %p.\n", ha->sns_cmd);
 	} else {
 	/* Get consistent memory allocated for MS IOCB */
 		ha->ms_iocb = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
drivers/scsi/qla2xxx/qla_sup.c +3 -2
index eff1356..16bc728 100644
@@ -904,8 +904,9 @@ no_flash_data:
 	}
 done:
 	ql_dbg(ql_dbg_init, vha, 0x004d,
-	    "FDT[%x]: (0x%x/0x%x) erase=0x%x "
-	    "pr=%x upro=%x wrtd=0x%x blk=0x%x.\n", loc, mid, fid,
+	    "FDT[%s]: (0x%x/0x%x) erase=0x%x "
+	    "pr=%x wrtd=0x%x blk=0x%x.\n",
+	    loc, mid, fid,
 	    ha->fdt_erase_cmd, ha->fdt_protect_sec_cmd,
 	    ha->fdt_wrt_disable, ha->fdt_block_size);
 
Signature · 1 line
1.7.6.131.g99019
#6 lore raw

RE: [PATCH 2/2] qla2xxx: Add __attribute__((format(printf... and fix fallout

Acked by: Saurav Kashyap <[email protected]>

Thanks,
~Saurav

Quoted 257 lines

-----Original Message-----
From: [email protected] [mailto:linux-scsi- [email protected]] On Behalf Of Joe Perches
Sent: 30 July 2011 16:05
To: Andrew Vasquez; Linux Driver
Cc: James E.J. Bottomley; [email protected]; linux-kernel
Subject: [PATCH 2/2] qla2xxx: Add __attribute__((format(printf... and fix fallout

Make the local logging functions verify their arguments and fixup the current broken uses as appropriate.

---
 drivers/scsi/qla2xxx/qla_attr.c |    4 ++--
 drivers/scsi/qla2xxx/qla_dbg.h  |    8 ++++----
 drivers/scsi/qla2xxx/qla_init.c |    3 ++-
 drivers/scsi/qla2xxx/qla_iocb.c |    2 +-
 drivers/scsi/qla2xxx/qla_isr.c  |    2 +-
 drivers/scsi/qla2xxx/qla_nx.c   |   12 ++++++------
 drivers/scsi/qla2xxx/qla_os.c   |   12 ++++++------
 drivers/scsi/qla2xxx/qla_sup.c  |    5 +++--
 8 files changed, 25 insertions(+), 23 deletions(-)
drivers/scsi/qla2xxx/qla_attr.c +1 -1
index 7836eb0..dc57471 100644
@@ -634,7 +634,7 @@ qla2x00_sysfs_write_edc(struct file *filp, struct
 kobject *kobj,
          dev, adr, len, opt);
      if (rval != QLA_SUCCESS) {
              ql_log(ql_log_warn, vha, 0x7074,
-                 "Unable to write EDC (%x) %02x:%04x:%02x:%02x\n",
+                 "Unable to write EDC (%x) %02x:%04x:%02x:%02x:%02x\n",
                  rval, dev, adr, opt, len, buf[8]);
              return 0;
      }
drivers/scsi/qla2xxx/qla_attr.c +1 -1
@@ -691,7 +691,7 @@ qla2x00_sysfs_write_edc_status(struct file *filp,
 struct kobject *kobj,
                      dev, adr, len, opt);
      if (rval != QLA_SUCCESS) {
              ql_log(ql_log_info, vha, 0x7075,
-                 "Unable to write EDC status (%x) %02x:%04x:%02x.\n",
+                 "Unable to write EDC status (%x)
 %02x:%04x:%02x:%02x.\n",
                  rval, dev, adr, opt, len);
              return 0;
      }
drivers/scsi/qla2xxx/qla_dbg.h +4 -4
index 0692814..29a7822 100644
@@ -244,14 +244,14 @@ struct qla2xxx_fw_dump {
 
 extern int ql_errlev;
 
-void
+void __attribute__((format (printf, 4, 5)))
 ql_dbg(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
-void
+void __attribute__((format (printf, 4, 5)))
 ql_dbg_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt,
 ...);
 
-void
+void __attribute__((format (printf, 4, 5)))
 ql_log(uint32_t, scsi_qla_host_t *vha, int32_t, const char *fmt, ...);
-void
+void __attribute__((format (printf, 4, 5)))
 ql_log_pci(uint32_t, struct pci_dev *pdev, int32_t, const char *fmt,
 ...);

/* Debug Levels */

drivers/scsi/qla2xxx/qla_init.c +2 -1
index def6942..351b1ec 100644
@@ -4186,7 +4186,8 @@ qla2x00_abort_isp(scsi_qla_host_t *vha)
              spin_unlock_irqrestore(&ha->vport_slock, flags);
 
      } else {
-             ql_log(ql_log_warn, vha, 0x8023, "%s **** FAILED ****.\n");
+             ql_log(ql_log_warn, vha, 0x8023, "%s **** FAILED ****.\n",
+                    __func__);
      }
 
      return(status);
drivers/scsi/qla2xxx/qla_iocb.c +1 -1
index 49d6906..f8bac2c 100644
@@ -858,7 +858,7 @@ qla24xx_walk_and_build_sglist(struct qla_hw_data
 *ha, srb_t *sp, uint32_t *dsd,
              sle_dma = sg_dma_address(sg);
              ql_dbg(ql_dbg_io, vha, 0x300a,
                  "sg entry %d - addr=0x%x 0x%x, " "len=%d for
 cmd=%p.\n",
-                 cur_dsd, i, LSD(sle_dma), MSD(sle_dma), sg_dma_len(sg),
+                 i, LSD(sle_dma), MSD(sle_dma), sg_dma_len(sg),
                  sp->cmd);
              *cur_dsd++ = cpu_to_le32(LSD(sle_dma));
              *cur_dsd++ = cpu_to_le32(MSD(sle_dma));
drivers/scsi/qla2xxx/qla_isr.c +1 -1
index b16b772..0eac872 100644
@@ -298,7 +298,7 @@ qla81xx_idc_event(scsi_qla_host_t *vha, uint16_t
 aen, uint16_t descr)
              return;
 
      ql_dbg(ql_dbg_async, vha, 0x5022,
-         "Inter-Driver Commucation %s -- ACK timeout=%d.\n",
+         "%lu Inter-Driver Communication %s -- ACK timeout=%d.\n",
          vha->host_no, event[aen & 0xff], timeout);
 
      rval = qla2x00_post_idc_ack_work(vha, mb);
drivers/scsi/qla2xxx/qla_nx.c +1 -1
index 5cbf33a..42a0992 100644
@@ -362,7 +362,7 @@ qla82xx_pci_set_crbwindow_2M(struct qla_hw_data
 *ha, ulong *off)
              ql_dbg(ql_dbg_p3p, vha, 0xb000,
                  "%s: Written crbwin (0x%x) "
                  "!= Read crbwin (0x%x), off=0x%lx.\n",
-                 ha->crb_win, win_read, *off);
+                 __func__, ha->crb_win, win_read, *off);
      }
      *off = (*off & MASK(16)) + CRB_INDIRECT_2M + ha->nx_pcibase;

}

drivers/scsi/qla2xxx/qla_nx.c +1 -1
@@ -402,7 +402,7 @@ qla82xx_pci_set_crbwindow(struct qla_hw_data *ha,
 u64 off)
      }
      /* strange address given */
      ql_dbg(ql_dbg_p3p, vha, 0xb001,
-         "%x: Warning: unm_nic_pci_set_crbwindow "
+         "%s: Warning: unm_nic_pci_set_crbwindow "
          "called with an unknown address(%llx).\n",
          QLA2XXX_DRIVER_NAME, off);
      return off;
drivers/scsi/qla2xxx/qla_nx.c +4 -4
@@ -1704,12 +1704,12 @@ qla82xx_iospace_config(struct qla_hw_data *ha)
      ql_dbg_pci(ql_dbg_multiq, ha->pdev, 0xc006,
          "nx_pci_base=%p iobase=%p "
          "max_req_queues=%d msix_count=%d.\n",
-         ha->nx_pcibase, ha->iobase,
+         (void *)ha->nx_pcibase, ha->iobase,
          ha->max_req_queues, ha->msix_count);
      ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0010,
          "nx_pci_base=%p iobase=%p "
          "max_req_queues=%d msix_count=%d.\n",
-         ha->nx_pcibase, ha->iobase,
+         (void *)ha->nx_pcibase, ha->iobase,
          ha->max_req_queues, ha->msix_count);
      return 0;
 
@@ -1737,7 +1737,7 @@ qla82xx_pci_config(scsi_qla_host_t *vha)
      ret = pci_set_mwi(ha->pdev);
      ha->chip_revision = ha->pdev->revision;
      ql_dbg(ql_dbg_init, vha, 0x0043,
-         "Chip revision:%ld.\n",
+         "Chip revision:%d.\n",
          ha->chip_revision);
      return 0;
 }
@@ -3939,7 +3939,7 @@ int
 qla2x00_wait_for_fcoe_ctx_reset(scsi_qla_host_t *vha)
              }
      }
      ql_dbg(ql_dbg_p3p, vha, 0xb027,
-         "%s status=%d.\n", status);
+            "%s: status=%d.\n", __func__, status);
 
      return status;

}

drivers/scsi/qla2xxx/qla_os.c +2 -2
index e02df27..16cadc9 100644
@@ -1041,7 +1041,7 @@ __qla2xxx_eh_generic_reset(char *name, enum
 nexus_wait_type type,
 eh_reset_failed:
      ql_log(ql_log_info, vha, 0x800f,
          "%s RESET FAILED: %s for id %d lun %d cmd=%p.\n", name,
-         reset_errors[err], cmd->device->id, cmd->device->lun);
+         reset_errors[err], cmd->device->id, cmd->device->lun, cmd);
      return FAILED;
 }
@@ -1856,7 +1856,7 @@ qla2x00_set_isp_flags(struct qla_hw_data *ha)
              ha->flags.port0 = 0;
      ql_dbg_pci(ql_dbg_init, ha->pdev, 0x000b,
          "device_type=0x%x port=%d fw_srisc_address=%p.\n",
-         ha->device_type, ha->flags.port0, ha->fw_srisc_address);
+         ha->device_type, ha->flags.port0, (void *)ha-
 >fw_srisc_address);
 }
 

static int

drivers/scsi/qla2xxx/qla_os.c +3 -3
@@ -1896,8 +1896,8 @@ qla2x00_iospace_config(struct qla_hw_data *ha)
      }
      ha->pio_address = pio;
      ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0014,
-         "PIO address=%p.\n",
-         ha->pio_address);
+         "PIO address=%llu.\n",
+         (unsigned long long)ha->pio_address);
 
 skip_pio:
      /* Use MMIO operations for all accesses. */
@@ -2263,7 +2263,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const
 struct pci_device_id *id)
      ql_dbg(ql_dbg_init, base_vha, 0x0033,
          "max_id=%d this_id=%d "
          "cmd_per_len=%d unique_id=%d max_cmd_len=%d max_channel=%d "
-         "max_lun=%d transportt=%p, vendor_id=%d.\n", host->max_id,
+         "max_lun=%d transportt=%p, vendor_id=%llu.\n", host->max_id,
          host->this_id, host->cmd_per_lun, host->unique_id,
          host->max_cmd_len, host->max_channel, host->max_lun,
          host->transportt, sht->vendor_id);
drivers/scsi/qla2xxx/qla_os.c +1 -1
@@ -2864,7 +2864,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha,
 uint16_t req_len, uint16_t rsp_len,
              if (!ha->sns_cmd)
                      goto fail_dma_pool;
              ql_dbg_pci(ql_dbg_init, ha->pdev, 0x0026,
-                 "sns_cmd.\n", ha->sns_cmd);
+                 "sns_cmd: %p.\n", ha->sns_cmd);
      } else {
      /* Get consistent memory allocated for MS IOCB */
              ha->ms_iocb = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL,
drivers/scsi/qla2xxx/qla_sup.c +3 -3
index eff1356..16bc728 100644
@@ -904,8 +904,9 @@ no_flash_data:
      }
 done:
      ql_dbg(ql_dbg_init, vha, 0x004d,
-         "FDT[%x]: (0x%x/0x%x) erase=0x%x "
-         "pr=%x upro=%x wrtd=0x%x blk=0x%x.\n", loc, mid, fid,
+         "FDT[%s]: (0x%x/0x%x) erase=0x%x "
+         "pr=%x wrtd=0x%x blk=0x%x.\n",
+         loc, mid, fid,
          ha->fdt_erase_cmd, ha->fdt_protect_sec_cmd,
          ha->fdt_wrt_disable, ha->fdt_block_size);
 
--

1.7.6.131.g99019

Quoted 5 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

This message and any attached documents contain information from QLogic Corporation or its wholly-owned subsidiaries that may be confidential. If you are not the intended recipient, you may not read, copy, distribute, or use this information. If you have received this transmission in error, please notify the sender immediately by reply e-mail and then delete this message.