From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>,
"James E . J . Bottomley" <jejb@linux.vnet.ibm.com>
Cc: linux-scsi@vger.kernel.org, Bart Van Assche <bvanassche@acm.org>,
Himanshu Madhani <hmadhani@marvell.com>,
Quinn Tran <qutran@marvell.com>, Martin Wilck <mwilck@suse.com>,
Daniel Wagner <dwagner@suse.de>,
Roman Bolshakov <r.bolshakov@yadro.com>
Subject: [PATCH 1/4] qla2xxx: Use raw_smp_processor_id() where appropriate
Date: Sun, 1 Mar 2020 19:30:20 -0800 [thread overview]
Message-ID: <20200302033023.27718-2-bvanassche@acm.org> (raw)
In-Reply-To: <20200302033023.27718-1-bvanassche@acm.org>
This patch fixes e.g. the following kernel complaint:
BUG: using smp_processor_id() in preemptible [00000000] code: modprobe/844
caller is qla2xxx_create_qpair+0x698/0xab0 [qla2xxx]
CPU: 7 PID: 844 Comm: modprobe Not tainted 5.5.0-rc2-dbg+ #6
Call Trace:
dump_stack+0xa5/0xe6
debug_smp_processor_id.cold+0x59/0x5e
qla2xxx_create_qpair+0x698/0xab0 [qla2xxx]
qla2x00_probe_one+0x1a67/0x4820 [qla2xxx]
local_pci_probe+0x7c/0xc0
pci_device_probe+0x25d/0x390
really_probe+0x170/0x510
driver_probe_device+0x127/0x190
device_driver_attach+0x98/0xa0
__driver_attach+0xb6/0x1a0
bus_for_each_dev+0x100/0x150
driver_attach+0x31/0x40
bus_add_driver+0x246/0x300
driver_register+0xe0/0x170
__pci_register_driver+0xd2/0xe0
qla2x00_module_init+0x1db/0x247 [qla2xxx]
do_one_initcall+0xda/0x480
do_init_module+0x10a/0x3b0
load_module+0x4318/0x47c0
__do_sys_finit_module+0x134/0x1d0
__x64_sys_finit_module+0x47/0x50
do_syscall_64+0x6f/0x2f0
entry_SYSCALL_64_after_hwframe+0x49/0xbe
Cc: Himanshu Madhani <hmadhani@marvell.com>
Cc: Quinn Tran <qutran@marvell.com>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Daniel Wagner <dwagner@suse.de>
Cc: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/qla2xxx/qla_init.c | 2 +-
drivers/scsi/qla2xxx/qla_isr.c | 4 ++--
drivers/scsi/qla2xxx/qla_target.c | 2 +-
drivers/scsi/qla2xxx/tcm_qla2xxx.c | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 5b2deaa730bf..582fc5dcc98c 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -8992,7 +8992,7 @@ struct qla_qpair *qla2xxx_create_qpair(struct scsi_qla_host *vha, int qos,
qpair->rsp->req = qpair->req;
qpair->rsp->qpair = qpair;
/* init qpair to this cpu. Will adjust at run time. */
- qla_cpu_update(qpair, smp_processor_id());
+ qla_cpu_update(qpair, raw_smp_processor_id());
if (IS_T10_PI_CAPABLE(ha) && ql2xenabledif) {
if (ha->fw_attributes & BIT_4)
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 8d7a905f6247..a5aae276fbb2 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -3217,8 +3217,8 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
if (!ha->flags.fw_started)
return;
- if (rsp->qpair->cpuid != smp_processor_id())
- qla_cpu_update(rsp->qpair, smp_processor_id());
+ if (rsp->qpair->cpuid != raw_smp_processor_id())
+ qla_cpu_update(rsp->qpair, raw_smp_processor_id());
while (rsp->ring_ptr->signature != RESPONSE_PROCESSED) {
pkt = (struct sts_entry_24xx *)rsp->ring_ptr;
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c
index 622e7337affc..c4c6a8e1b46d 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -4368,7 +4368,7 @@ static int qlt_handle_cmd_for_atio(struct scsi_qla_host *vha,
queue_work_on(cmd->se_cmd.cpuid, qla_tgt_wq, &cmd->work);
} else if (ha->msix_count) {
if (cmd->atio.u.isp24.fcp_cmnd.rddata)
- queue_work_on(smp_processor_id(), qla_tgt_wq,
+ queue_work_on(raw_smp_processor_id(), qla_tgt_wq,
&cmd->work);
else
queue_work_on(cmd->se_cmd.cpuid, qla_tgt_wq,
diff --git a/drivers/scsi/qla2xxx/tcm_qla2xxx.c b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
index 1f0a185b2a95..9f7a79aff1ee 100644
--- a/drivers/scsi/qla2xxx/tcm_qla2xxx.c
+++ b/drivers/scsi/qla2xxx/tcm_qla2xxx.c
@@ -305,7 +305,7 @@ static void tcm_qla2xxx_free_cmd(struct qla_tgt_cmd *cmd)
cmd->trc_flags |= TRC_CMD_DONE;
INIT_WORK(&cmd->work, tcm_qla2xxx_complete_free);
- queue_work_on(smp_processor_id(), tcm_qla2xxx_free_wq, &cmd->work);
+ queue_work_on(raw_smp_processor_id(), tcm_qla2xxx_free_wq, &cmd->work);
}
/*
@@ -543,7 +543,7 @@ static void tcm_qla2xxx_handle_data(struct qla_tgt_cmd *cmd)
cmd->trc_flags |= TRC_DATA_IN;
cmd->cmd_in_wq = 1;
INIT_WORK(&cmd->work, tcm_qla2xxx_handle_data_work);
- queue_work_on(smp_processor_id(), tcm_qla2xxx_free_wq, &cmd->work);
+ queue_work_on(raw_smp_processor_id(), tcm_qla2xxx_free_wq, &cmd->work);
}
static int tcm_qla2xxx_chk_dif_tags(uint32_t tag)
next prev parent reply other threads:[~2020-03-02 3:30 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-02 3:30 [PATCH 0/4] Fix qla2xxx endianness annotations Bart Van Assche
2020-03-02 3:30 ` Bart Van Assche [this message]
2020-03-02 16:22 ` [PATCH 1/4] qla2xxx: Use raw_smp_processor_id() where appropriate Daniel Wagner
2020-03-02 3:30 ` [PATCH 2/4] qla2xxx: Fix endianness annotations in header files Bart Van Assche
2020-03-02 16:50 ` Daniel Wagner
2020-03-02 3:30 ` [PATCH 3/4] qla2xxx: Fix endianness annotations in source files Bart Van Assche
2020-03-02 18:40 ` Daniel Wagner
2020-03-03 6:36 ` Bart Van Assche
2020-03-03 9:24 ` Daniel Wagner
2020-03-03 14:10 ` Himanshu Madhani
2020-03-04 5:16 ` Bart Van Assche
2020-03-02 3:30 ` [PATCH 4/4] qla2xxx: Fix the code that reads from mailbox registers Bart Van Assche
2020-03-02 18:43 ` Daniel Wagner
2020-03-03 6:37 ` Bart Van Assche
2020-03-03 8:31 ` Daniel Wagner
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=20200302033023.27718-2-bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=dwagner@suse.de \
--cc=hmadhani@marvell.com \
--cc=jejb@linux.vnet.ibm.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=mwilck@suse.com \
--cc=qutran@marvell.com \
--cc=r.bolshakov@yadro.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