From: Zheyu Ma <zheyuma97@gmail.com>
To: james.smart@broadcom.com, dick.kennedy@broadcom.com,
jejb@linux.ibm.com, martin.petersen@oracle.com
Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
Zheyu Ma <zheyuma97@gmail.com>
Subject: [PATCH] scsi: lpfc: Fix the misuse of the logging function
Date: Fri, 15 Oct 2021 06:33:41 +0000 [thread overview]
Message-ID: <1634279621-27115-1-git-send-email-zheyuma97@gmail.com> (raw)
When the driver fails in lpfc_enable_pci_dev(), it will call
lpfc_printf_log(), and in a certain case the lpfc_dmp_dbg() is
eventually called, this function uses 'phba->port_list_lock', and at
this time this lock is not been initialized, which may cause a bug.
Fix this by using 'dev_printk' to replace the previous function.
The following log reveals it:
[ 32.955597 ] INFO: trying to register non-static key.
[ 32.956002 ] The code is fine but needs lockdep annotation, or maybe
[ 32.956491 ] you didn't initialize this object before use?
[ 32.956916 ] turning off the locking correctness validator.
[ 32.958801 ] Call Trace:
[ 32.958994 ] dump_stack_lvl+0xa8/0xd1
[ 32.959286 ] dump_stack+0x15/0x17
[ 32.959547 ] assign_lock_key+0x212/0x220
[ 32.959853 ] ? SOFTIRQ_verbose+0x10/0x10
[ 32.960158 ] ? lock_is_held_type+0xd6/0x130
[ 32.960483 ] register_lock_class+0x126/0x790
[ 32.960815 ] ? rcu_read_lock_sched_held+0x33/0x70
[ 32.961233 ] __lock_acquire+0xe9/0x1e20
[ 32.961565 ] ? delete_node+0x71e/0x790
[ 32.961859 ] ? __this_cpu_preempt_check+0x13/0x20
[ 32.962220 ] ? lock_is_held_type+0xd6/0x130
[ 32.962545 ] lock_acquire+0x244/0x490
[ 32.962831 ] ? lpfc_dmp_dbg+0x65/0x600 [lpfc]
[ 32.963241 ] ? __kasan_check_write+0x14/0x20
[ 32.963572 ] ? read_lock_is_recursive+0x20/0x20
[ 32.963921 ] ? __this_cpu_preempt_check+0x13/0x20
[ 32.964284 ] ? lpfc_dmp_dbg+0x65/0x600 [lpfc]
[ 32.964685 ] ? _raw_spin_lock_irqsave+0x29/0x70
[ 32.965086 ] ? __kasan_check_read+0x11/0x20
[ 32.965410 ] ? trace_irq_disable_rcuidle+0x85/0x170
[ 32.965787 ] _raw_spin_lock_irqsave+0x4e/0x70
[ 32.966124 ] ? lpfc_dmp_dbg+0x65/0x600 [lpfc]
[ 32.966526 ] lpfc_dmp_dbg+0x65/0x600 [lpfc]
[ 32.966913 ] ? lockdep_init_map_type+0x162/0x710
[ 32.967269 ] ? error_prone+0x25/0x30 [lpfc]
[ 32.967657 ] lpfc_enable_pci_dev+0x157/0x250 [lpfc]
Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
---
drivers/scsi/lpfc/lpfc_init.c | 12 +++++-------
drivers/scsi/lpfc/lpfc_scsi.c | 5 ++---
drivers/scsi/lpfc/lpfc_sli.c | 10 ++++------
3 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 0ec322f0e3cb..226b9ccfffb3 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -7331,10 +7331,10 @@ static void lpfc_log_intr_mode(struct lpfc_hba *phba, uint32_t intr_mode)
static int
lpfc_enable_pci_dev(struct lpfc_hba *phba)
{
- struct pci_dev *pdev;
+ struct pci_dev *pdev = phba->pcidev;
/* Obtain PCI device reference */
- if (!phba->pcidev)
+ if (!pdev)
goto out_error;
else
pdev = phba->pcidev;
@@ -7358,8 +7358,7 @@ lpfc_enable_pci_dev(struct lpfc_hba *phba)
out_disable_device:
pci_disable_device(pdev);
out_error:
- lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
- "1401 Failed to enable pci device\n");
+ dev_err(&pdev->dev, "1401 Failed to enable pci device\n");
return -ENODEV;
}
@@ -8401,9 +8400,8 @@ lpfc_init_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp)
phba->lpfc_stop_port = lpfc_stop_port_s4;
break;
default:
- lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
- "1431 Invalid HBA PCI-device group: 0x%x\n",
- dev_grp);
+ dev_err(&phba->pcidev->dev,
+ "1431 Invalid HBA PCI-device group: 0x%x\n", dev_grp);
return -ENODEV;
}
return 0;
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index 0fde1e874c7a..8ffce2d2a993 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -5096,9 +5096,8 @@ lpfc_scsi_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp)
phba->lpfc_scsi_prep_cmnd_buf = lpfc_scsi_prep_cmnd_buf_s4;
break;
default:
- lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
- "1418 Invalid HBA PCI-device group: 0x%x\n",
- dev_grp);
+ dev_err(&phba->pcidev->dev,
+ "1418 Invalid HBA PCI-device group: 0x%x\n", dev_grp);
return -ENODEV;
}
phba->lpfc_rampdown_queue_depth = lpfc_rampdown_queue_depth;
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index ffd8a140638c..c1cf0ad018e0 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -10010,9 +10010,8 @@ lpfc_mbox_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp)
phba->lpfc_sli_brdready = lpfc_sli_brdready_s4;
break;
default:
- lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
- "1420 Invalid HBA PCI-device group: 0x%x\n",
- dev_grp);
+ dev_err(&phba->pcidev->dev,
+ "1420 Invalid HBA PCI-device group: 0x%x\n", dev_grp);
return -ENODEV;
}
return 0;
@@ -11178,9 +11177,8 @@ lpfc_sli_api_table_setup(struct lpfc_hba *phba, uint8_t dev_grp)
phba->__lpfc_sli_issue_fcp_io = __lpfc_sli_issue_fcp_io_s4;
break;
default:
- lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
- "1419 Invalid HBA PCI-device group: 0x%x\n",
- dev_grp);
+ dev_err(&phba->pcidev->dev,
+ "1419 Invalid HBA PCI-device group: 0x%x\n", dev_grp);
return -ENODEV;
}
phba->lpfc_get_iocb_from_iocbq = lpfc_get_iocb_from_iocbq;
--
2.17.6
next reply other threads:[~2021-10-15 6:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-15 6:33 Zheyu Ma [this message]
2021-10-15 22:57 ` James Smart
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1634279621-27115-1-git-send-email-zheyuma97@gmail.com \
--to=zheyuma97@gmail.com \
--cc=dick.kennedy@broadcom.com \
--cc=james.smart@broadcom.com \
--cc=jejb@linux.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®