Hello, Linus! I see that commit 3ee0e7c3e67cab83ffbbe7707b43df8d41c9fe47 (mmc: moxart-mmc: Use sg_miter for PIO) leads to "BUG: scheduling while atomic". Can you suggest a way to rework the code and fix this problem? I can probably make a patch then. The waiting part of this driver needs improvement anyway. It calls wait_for_completion_interruptible_timeout() without checking its return value. [ 7.018270] BUG: scheduling while atomic: kworker/0:1/9/0x00000002 [ 7.026701] 2 locks held by kworker/0:1/9: [ 7.031826] #0: c1813ba4 ((wq_completion)events_freezable){+.+.}-{0:0}, at: process_scheduled_works+0x188/0x458 [ 7.044182] #1: c4831f28 ((work_completion)(&(&host->detect)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x188/0x458 [ 7.057443] CPU: 0 PID: 9 Comm: kworker/0:1 Not tainted 6.8.0-rc4+ #225 [ 7.064527] Hardware name: Generic DT based system [ 7.069677] Workqueue: events_freezable mmc_rescan [ 7.075121] unwind_backtrace from show_stack+0x10/0x14 [ 7.080930] show_stack from dump_stack_lvl+0x34/0x44 [ 7.086576] dump_stack_lvl from __schedule_bug+0x64/0x84 [ 7.092608] __schedule_bug from __schedule+0x58/0x594 [ 7.098320] __schedule from schedule+0x74/0xa8 [ 7.103368] schedule from schedule_timeout+0xd4/0x108 [ 7.109070] schedule_timeout from __wait_for_common+0x94/0x120 [ 7.115547] __wait_for_common from moxart_request+0x278/0x468 [ 7.121980] moxart_request from mmc_start_request+0x94/0xa8 [ 7.128213] mmc_start_request from mmc_wait_for_req+0x60/0xa8 [ 7.134590] mmc_wait_for_req from mmc_app_send_scr+0xf8/0x150 [ 7.140979] mmc_app_send_scr from mmc_sd_setup_card+0x1c/0x420 [ 7.147424] mmc_sd_setup_card from mmc_sd_init_card+0x12c/0x4dc [ 7.153966] mmc_sd_init_card from mmc_attach_sd+0xf0/0x16c [ 7.160057] mmc_attach_sd from mmc_rescan+0x1e0/0x298 [ 7.165739] mmc_rescan from process_scheduled_works+0x2b0/0x458 [ 7.172326] process_scheduled_works from worker_thread+0x24c/0x2b0 [ 7.179125] worker_thread from kthread+0xd4/0xe0 [ 7.184352] kthread from ret_from_fork+0x14/0x38 [ 7.189527] Exception stack(0xc4831fb0 to 0xc4831ff8) [ 7.194974] 1fa0: 00000000 00000000 00000000 00000000 [ 7.203569] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 7.212157] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 7.244367] Segment Routing with IPv6 [ 7.252512] In-situ OAM (IOAM) with IPv6 [ 7.268736] NET: Registered PF_PACKET protocol family [ 8.121842] ------------[ cut here ]------------