mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 14:42:37 +02:00
dm: add check target device probe completely
Because some mmc execute tuning should take more time, so if dm target device is not probe completely before dm verity, will trigger: [ 0.834803] device-mapper: init: attempting early device configuration. [ 0.836226] device-mapper: init: adding target '0 1031864 verity 1 PARTUUID=cfc90ed7-b23f-459b-896f-8135b56567a1 PARTUUID=cfc90ed7-b23f-459b-896f-8135b56567a1 4096 4096 128983 128983 sha1 d0f6e81bf584217e524e88b023d0c70422fb2f19 e939f8142d39394fb14f0df917de9346cb045b78 10 restart_on_corruption ignore_zero_blocks use_fec_from_device PARTUUID=cfc90ed7-b23f-459b-896f-8135b56567a1 fec_roots 2 fec_blocks 130000 fec_start 130000' [ 0.836341] device-mapper: table: 253:0: verity: Data device lookup failed [ 0.836355] device-mapper: init: starting dm-0 (vroot) failed [ 0.836916] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 0.843161] pgd = c0004000 [ 0.843415] [00000000] *pgd=00000000 [ 0.843810] Internal error: Oops: 80000005 [#1] PREEMPT SMP ARM [ 0.844345] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.4.77 #1 [ 0.844870] Hardware name: Generic DT based system [ 0.845299] task: de4b0000 ti: de4b8000 task.ti: de4b8000 [ 0.845782] PC is at 0x0 [ 0.846018] LR is at generic_make_request+0xc8/0x220 [ 0.846458] pc : [<00000000>] lr : [<c03aae2c>] psr: 60000013 [ 0.846458] sp : de4b9b58 ip : 00000004 fp : de4b9d9c [ 0.847466] r10: 00000000 r9 : de7fb020 r8 : c100390c [ 0.847927] r7 : ffffffff r6 : de4b9b5c r5 : 00000000 r4 : dde71540 [ 0.848508] r3 : 00000000 r2 : dc8ba64d r1 : dde71540 r0 : de7fb020 [ 0.849080] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 0.849714] Control: 10c5387d Table: 6000406a DAC: 00000051 Change-Id: Idf9a33fd15adab8aa5e13f74c92b3270c9877035 Signed-off-by: Weiwen Chen <cww@rock-chips.com>
This commit is contained in:
parent
d6159833ab
commit
531fc5e280
|
|
@ -785,6 +785,16 @@ int dm_table_add_target(struct dm_table *t, const char *type,
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARCH_ROCKCHIP
|
||||||
|
while (argv &&
|
||||||
|
strncmp(argv[1], "PARTUUID=", 9) == 0 &&
|
||||||
|
name_to_dev_t(argv[1]) == 0) {
|
||||||
|
DMINFO("%s: %s: Waiting for device %s ...",
|
||||||
|
dm_device_name(t->md), type, argv[1]);
|
||||||
|
msleep(100);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
r = tgt->type->ctr(tgt, argc, argv);
|
r = tgt->type->ctr(tgt, argc, argv);
|
||||||
kfree(argv);
|
kfree(argv);
|
||||||
if (r)
|
if (r)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user