On Mon, Oct 16, 2023 at 07:40:40AM -0700, KernelCI bot wrote:
The KernelCI bisection bot has identified that commit 74fc50666e0af ("mmc: meson-gx: remove redundant mmc_request_done() call from irq context") in v4.19 stable-rc is causing boot splats for meson-gxm-q200. Full report below, including links to the full boot logs:
- This automated bisection report was sent to you on the basis *
- that you may be involved with the breaking commit it has *
- found. No manual investigation has been done to verify it, *
- and the root cause of the problem may be somewhere else. *
*
- If you do send a fix, please include this trailer: *
- Reported-by: "kernelci.org bot" bot@kernelci.org *
*
- Hope this helps! *
stable-rc/linux-4.19.y bisection: baseline.dmesg.emerg on meson-gxm-q200
Summary: Start: b3c2ae79aa73e Linux 4.19.297-rc1 Plain log: https://storage.kernelci.org/stable-rc/linux-4.19.y/v4.19.296-42-gb3c2ae79aa... HTML log: https://storage.kernelci.org/stable-rc/linux-4.19.y/v4.19.296-42-gb3c2ae79aa... Result: 74fc50666e0af mmc: meson-gx: remove redundant mmc_request_done() call from irq context
Checks: revert: PASS verify: PASS
Parameters: Tree: stable-rc URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git Branch: linux-4.19.y Target: meson-gxm-q200 CPU arch: arm64 Lab: lab-baylibre Compiler: gcc-10 Config: defconfig Test case: baseline.dmesg.emerg
Breaking commit found:
commit 74fc50666e0af2514a7e6b0937166a75692c2a42 Author: Martin Hundebøll martin@geanix.com Date: Wed Jun 7 10:27:12 2023 +0200
mmc: meson-gx: remove redundant mmc_request_done() call from irq context
[ Upstream commit 3c40eb8145325b0f5b93b8a169146078cb2c49d6 ] The call to mmc_request_done() can schedule, so it must not be called from irq context. Wake the irq thread if it needs to be called, and let its existing logic do its work. Fixes the following kernel bug, which appears when running an RT patched kernel on the AmLogic Meson AXG A113X SoC: [ 11.111407] BUG: scheduling while atomic: kworker/0:1H/75/0x00010001 [ 11.111438] Modules linked in: [ 11.111451] CPU: 0 PID: 75 Comm: kworker/0:1H Not tainted 6.4.0-rc3-rt2-rtx-00081-gfd07f41ed6b4-dirty #1 [ 11.111461] Hardware name: RTX AXG A113X Linux Platform Board (DT) [ 11.111469] Workqueue: kblockd blk_mq_run_work_fn [ 11.111492] Call trace: [ 11.111497] dump_backtrace+0xac/0xe8 [ 11.111510] show_stack+0x18/0x28 [ 11.111518] dump_stack_lvl+0x48/0x60 [ 11.111530] dump_stack+0x18/0x24 [ 11.111537] __schedule_bug+0x4c/0x68 [ 11.111548] __schedule+0x80/0x574 [ 11.111558] schedule_loop+0x2c/0x50 [ 11.111567] schedule_rtlock+0x14/0x20 [ 11.111576] rtlock_slowlock_locked+0x468/0x730 [ 11.111587] rt_spin_lock+0x40/0x64 [ 11.111596] __wake_up_common_lock+0x5c/0xc4 [ 11.111610] __wake_up+0x18/0x24 [ 11.111620] mmc_blk_mq_req_done+0x68/0x138 [ 11.111633] mmc_request_done+0x104/0x118 [ 11.111644] meson_mmc_request_done+0x38/0x48 [ 11.111654] meson_mmc_irq+0x128/0x1f0 [ 11.111663] __handle_irq_event_percpu+0x70/0x114 [ 11.111674] handle_irq_event_percpu+0x18/0x4c [ 11.111683] handle_irq_event+0x80/0xb8 [ 11.111691] handle_fasteoi_irq+0xa4/0x120 [ 11.111704] handle_irq_desc+0x20/0x38 [ 11.111712] generic_handle_domain_irq+0x1c/0x28 [ 11.111721] gic_handle_irq+0x8c/0xa8 [ 11.111735] call_on_irq_stack+0x24/0x4c [ 11.111746] do_interrupt_handler+0x88/0x94 [ 11.111757] el1_interrupt+0x34/0x64 [ 11.111769] el1h_64_irq_handler+0x18/0x24 [ 11.111779] el1h_64_irq+0x64/0x68 [ 11.111786] __add_wait_queue+0x0/0x4c [ 11.111795] mmc_blk_rw_wait+0x84/0x118 [ 11.111804] mmc_blk_mq_issue_rq+0x5c4/0x654 [ 11.111814] mmc_mq_queue_rq+0x194/0x214 [ 11.111822] blk_mq_dispatch_rq_list+0x3ac/0x528 [ 11.111834] __blk_mq_sched_dispatch_requests+0x340/0x4d0 [ 11.111847] blk_mq_sched_dispatch_requests+0x38/0x70 [ 11.111858] blk_mq_run_work_fn+0x3c/0x70 [ 11.111865] process_one_work+0x17c/0x1f0 [ 11.111876] worker_thread+0x1d4/0x26c [ 11.111885] kthread+0xe4/0xf4 [ 11.111894] ret_from_fork+0x10/0x20 Fixes: 51c5d8447bd7 ("MMC: meson: initial support for GX platforms") Cc: stable@vger.kernel.org Signed-off-by: Martin Hundebøll martin@geanix.com Link: https://lore.kernel.org/r/20230607082713.517157-1-martin@geanix.com Signed-off-by: Ulf Hansson ulf.hansson@linaro.org Signed-off-by: Sasha Levin sashal@kernel.org
diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c index 313aff92b97c9..a3e5be81b4660 100644 --- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c @@ -1067,11 +1067,8 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) if (status & (IRQ_END_OF_CHAIN | IRQ_RESP_STATUS)) { if (data && !cmd->error) data->bytes_xfered = data->blksz * data->blocks;
if (meson_mmc_bounce_buf_read(data) ||
meson_mmc_get_next_command(cmd))
ret = IRQ_WAKE_THREAD;
else
ret = IRQ_HANDLED;
}return IRQ_WAKE_THREAD;
out: @@ -1086,9 +1083,6 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id) writel(start, host->regs + SD_EMMC_START); }
- if (ret == IRQ_HANDLED)
meson_mmc_request_done(host->mmc, cmd->mrq);
- return ret;
}
Git bisection log:
git bisect start # good: [94bffc1044d871e2ec89b2621e9a384355832988] Linux 4.19.288 git bisect good 94bffc1044d871e2ec89b2621e9a384355832988 # bad: [b3c2ae79aa73e61b75d4fa6f3dae226b59b7bd41] Linux 4.19.297-rc1 git bisect bad b3c2ae79aa73e61b75d4fa6f3dae226b59b7bd41 # bad: [5f63100cf9a673eaef15a1b1415d7a480af1571c] net: phy: broadcom: stub c45 read/write for 54810 git bisect bad 5f63100cf9a673eaef15a1b1415d7a480af1571c # good: [916a02b6487f90cfcda24636e9b2b8da38b96bbc] net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field() git bisect good 916a02b6487f90cfcda24636e9b2b8da38b96bbc # good: [f114bcacd558aaae6eb2bff350ae305632e4e37e] ARM: dts: imx6sll: fixup of operating points git bisect good f114bcacd558aaae6eb2bff350ae305632e4e37e # good: [56804da32a6edef397e9d967b01e82a4b04a8e9d] IMA: allow/fix UML builds git bisect good 56804da32a6edef397e9d967b01e82a4b04a8e9d # bad: [97a2d55ead76358245b446efd87818e919196d7a] virtio-mmio: don't break lifecycle of vm_dev git bisect bad 97a2d55ead76358245b446efd87818e919196d7a # good: [cbc6a5f11ca2a622f77bcb6901b274bd995653d6] irqchip/mips-gic: Use raw spinlock for gic_lock git bisect good cbc6a5f11ca2a622f77bcb6901b274bd995653d6 # bad: [22b64a6b59fc2107d304715d8a778eebeb8659ae] mmc: Remove dev_err() usage after platform_get_irq() git bisect bad 22b64a6b59fc2107d304715d8a778eebeb8659ae # good: [d7aacfd2e388519434acf504a6b53099cc4da978] mmc: meson-gx: remove useless lock git bisect good d7aacfd2e388519434acf504a6b53099cc4da978 # bad: [e1036bf905f9ec7b01fd5ee946a9a94f9671ee83] mmc: tmio: replace tmio_mmc_clk_stop() calls with tmio_mmc_set_clock() git bisect bad e1036bf905f9ec7b01fd5ee946a9a94f9671ee83 # bad: [74fc50666e0af2514a7e6b0937166a75692c2a42] mmc: meson-gx: remove redundant mmc_request_done() call from irq context git bisect bad 74fc50666e0af2514a7e6b0937166a75692c2a42
# first bad commit: [74fc50666e0af2514a7e6b0937166a75692c2a42] mmc: meson-gx: remove redundant mmc_request_done() call from irq context
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47481): https://groups.io/g/kernelci-results/message/47481 Mute This Topic: https://groups.io/mt/101996911/1131744 Group Owner: kernelci-results+owner@groups.io Unsubscribe: https://groups.io/g/kernelci-results/unsub [broonie@kernel.org] -=-=-=-=-=-=-=-=-=-=-=-
linux-stable-mirror@lists.linaro.org