From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Lukas Wunner <lukas@wunner.de>
Cc: Bjorn Helgaas <helgaas@kernel.org>, <linux-pci@vger.kernel.org>,
"Gregory Price" <gregory.price@memverge.com>,
Ira Weiny <ira.weiny@intel.com>,
"Dan Williams" <dan.j.williams@intel.com>,
Alison Schofield <alison.schofield@intel.com>,
Vishal Verma <vishal.l.verma@intel.com>,
"Li, Ming" <ming4.li@intel.com>, <linux-cxl@vger.kernel.org>
Subject: Re: [PATCH 1/2] PCI/DOE: Silence WARN splat upon task submission
Date: Wed, 30 Nov 2022 15:36:58 +0000 [thread overview]
Message-ID: <20221130153658.00006674@Huawei.com> (raw)
In-Reply-To: <9eb6af0763f1ec05673a7dd6731d9fd646cf1dd4.1669608950.git.lukas@wunner.de>
On Mon, 28 Nov 2022 05:25:51 +0100
Lukas Wunner <lukas@wunner.de> wrote:
> Gregory Price reports a WARN splat with CONFIG_DEBUG_OBJECTS=y upon CXL
> probing because pci_doe_submit_task() invokes INIT_WORK() instead of
> INIT_WORK_ONSTACK() for a work_struct that was allocated on the stack.
>
> All callers of pci_doe_submit_task() allocate the work_struct on the
> stack, so replace INIT_WORK() with INIT_WORK_ONSTACK() as a backportable
> short-term fix.
>
> Stacktrace for posterity:
>
> WARNING: CPU: 0 PID: 23 at lib/debugobjects.c:545 __debug_object_init.cold+0x18/0x183
> CPU: 0 PID: 23 Comm: kworker/u2:1 Not tainted 6.1.0-0.rc1.20221019gitaae703b02f92.17.fc38.x86_64 #1
> Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
> Call Trace:
> pci_doe_submit_task+0x5d/0xd0
> pci_doe_discovery+0xb4/0x100
> pcim_doe_create_mb+0x219/0x290
> cxl_pci_probe+0x192/0x430
> local_pci_probe+0x41/0x80
> pci_device_probe+0xb3/0x220
> really_probe+0xde/0x380
> __driver_probe_device+0x78/0x170
> driver_probe_device+0x1f/0x90
> __driver_attach_async_helper+0x5c/0xe0
> async_run_entry_fn+0x30/0x130
> process_one_work+0x294/0x5b0
>
> Fixes: 9d24322e887b ("PCI/DOE: Add DOE mailbox support functions")
> Link: https://lore.kernel.org/linux-cxl/Y1bOniJliOFszvIK@memverge.com/
> Reported-by: Gregory Price <gregory.price@memverge.com>
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> Cc: stable@vger.kernel.org # v6.0+
> Cc: Ira Weiny <ira.weiny@intel.com>
> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
> drivers/pci/doe.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/doe.c b/drivers/pci/doe.c
> index 66d9ab288646..52541eac17f1 100644
> --- a/drivers/pci/doe.c
> +++ b/drivers/pci/doe.c
> @@ -541,7 +541,7 @@ int pci_doe_submit_task(struct pci_doe_mb *doe_mb, struct pci_doe_task *task)
> return -EIO;
>
> task->doe_mb = doe_mb;
> - INIT_WORK(&task->work, doe_statemachine_work);
> + INIT_WORK_ONSTACK(&task->work, doe_statemachine_work);
If we go this way, add a comment to say 'why' it is ONSTACK
or add to the function description to say it 'must be on stack'.
> queue_work(doe_mb->work_queue, &task->work);
> return 0;
> }
next prev parent reply other threads:[~2022-11-30 15:37 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-28 4:15 [PATCH 0/2] DOE WARN splat be gone Lukas Wunner
2022-11-28 4:25 ` [PATCH 1/2] PCI/DOE: Silence WARN splat upon task submission Lukas Wunner
2022-11-30 15:36 ` Jonathan Cameron [this message]
2022-11-30 18:52 ` Ira Weiny
2022-11-28 4:25 ` [PATCH 2/2] PCI/DOE: Provide synchronous API Lukas Wunner
2022-11-30 15:33 ` Jonathan Cameron
2022-11-30 18:50 ` Ira Weiny
2022-12-03 13:51 ` Lukas Wunner
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=20221130153658.00006674@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=alison.schofield@intel.com \
--cc=dan.j.williams@intel.com \
--cc=gregory.price@memverge.com \
--cc=helgaas@kernel.org \
--cc=ira.weiny@intel.com \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=ming4.li@intel.com \
--cc=vishal.l.verma@intel.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