On Mon, Jul 17, 2023 at 09:57:28AM +0800, Mark-PK Tsai wrote:
On Sun, Jul 16, 2023, 11:16 AM Greg KH gregkh@linuxfoundation.org wrote:
On Thu, Jul 13, 2023 at 01:58:37PM +0800, Mark-PK Tsai wrote:
From: Peter Korsgaard peter@korsgaard.com
Just calling wait_for_device_probe() is not enough to ensure that asynchronously probed block devices are available (E.G. mmc, usb), so add a "dm-mod.waitfor=<device1>[,..,<deviceN>]" parameter to get dm-init to explicitly wait for specific block devices before initializing the tables with logic similar to the rootwait logic that was introduced with commit cc1ed7542c8c ("init: wait for asynchronously scanned block devices").
E.G. with dm-verity on mmc using: dm-mod.waitfor="PARTLABEL=hash-a,PARTLABEL=root-a"
[ 0.671671] device-mapper: init: waiting for all devices to be
available before creating mapped devices
[ 0.671679] device-mapper: init: waiting for device PARTLABEL=hash-a
...
[ 0.710695] mmc0: new HS200 MMC card at address 0001 [ 0.711158] mmcblk0: mmc0:0001 004GA0 3.69 GiB [ 0.715954] mmcblk0boot0: mmc0:0001 004GA0 partition 1 2.00 MiB [ 0.722085] mmcblk0boot1: mmc0:0001 004GA0 partition 2 2.00 MiB [ 0.728093] mmcblk0rpmb: mmc0:0001 004GA0 partition 3 512 KiB,
chardev (249:0)
[ 0.738274] mmcblk0: p1 p2 p3 p4 p5 p6 p7 [ 0.751282] device-mapper: init: waiting for device PARTLABEL=root-a
...
[ 0.751306] device-mapper: init: all devices available [ 0.751683] device-mapper: verity: sha256 using implementation
"sha256-generic"
[ 0.759344] device-mapper: ioctl: dm-0 (vroot) is ready [ 0.766540] VFS: Mounted root (squashfs filesystem) readonly on
device 254:0.
Signed-off-by: Peter Korsgaard peter@korsgaard.com Signed-off-by: Mike Snitzer snitzer@kernel.org Cc: stable@vger.kernel.org Signed-off-by: Mark-PK Tsai mark-pk.tsai@mediatek.com
.../admin-guide/device-mapper/dm-init.rst | 8 +++++++ drivers/md/dm-init.c | 22 ++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-)
What is the git commit id of this change in Linus's tree?
thanks,
greg k-h
Hey Greg,
This change shouldn't be backported to stable@. It is a feature, if Mark-PK feels they need it older kernels they need to carry the change in their own tree. Or at a minimum they need to explain why this change is warranted in stable@.
Thanks for your comment. The reason why we think this should be backported to stable kernel is that it actually fix the potential race condition when make block device probe async in stable kernel. And we'd like to fix this upstream rather than just take it in our custom tree.
Potential race condition, is this actually able to be hit in real life?
thanks,
greg k-h