syzbot


INFO: rcu detected stall in newfstatat (3)

Status: upstream: reported C repro on 2023/06/10 09:07
Subsystems: usb
[Documentation on labels]
Reported-by: syzbot+96127c74434e19e4609d@syzkaller.appspotmail.com
First crash: 555d, last: 1d06h
Cause bisection: introduced by (bisect log) :
commit c2368b19807affd7621f7c4638cd2e17fec13021
Author: Jiri Pirko <jiri@nvidia.com>
Date: Fri Jul 29 07:10:35 2022 +0000

  net: devlink: introduce "unregistering" mark and use it during devlinks iteration

Crash: INFO: rcu detected stall in corrupted (log)
Repro: C syz .config
  
Duplicate bugs (1)
duplicates (1):
Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
INFO: rcu detected stall in security_file_open (6) tomoyo C error 18 1d15h 305d 0/26 closed as dup on 2023/06/27 10:07
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [tomoyo?] [fs?] INFO: rcu detected stall in newfstatat (3) 4 (7) 2024/03/07 11:13
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream INFO: rcu detected stall in newfstatat (2) kernfs 2 706d 740d 0/26 auto-closed as invalid on 2022/08/20 09:41
upstream INFO: rcu detected stall in newfstatat fs 2 835d 851d 0/26 closed as invalid on 2022/02/08 09:50
Last patch testing requests (6)
Created Duration User Patch Repo Result
2024/04/08 17:40 17m retest repro https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing error OK
2024/03/24 07:01 22m retest repro upstream error OK
2024/03/07 10:49 23m hdanton@sina.com patch https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master OK log
2024/01/29 15:28 12m retest repro https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing report log
2023/11/20 15:04 16m retest repro https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing report log
2023/08/25 05:43 1h12m retest repro https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing report log

Sample crash report:
rcu: INFO: rcu_preempt detected expedited stalls on CPUs/tasks: {
 P5125
 1-....
 } 2683 jiffies s: 2581 root: 0x2/T
rcu: blocking rcu_node structures (internal RCU debug):

Sending NMI from CPU 0 to CPUs 1:
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
NMI backtrace for cpu 1
CPU: 1 PID: 5137 Comm: udevd Not tainted 6.8.0-rc7-syzkaller-00017-g29cd507cbec2 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024
RIP: 0010:printk_get_next_message+0x257/0x7c0 kernel/printk/printk.c:2820
Code: 7e 13 48 89 fa 48 c1 ea 03 0f b6 04 02 48 89 fa 83 e2 07 38 d0 7f 08 84 c0 0f 85 98 04 00 00 45 0f b6 76 13 8b 05 29 25 0c 0c <41> c0 ee 05 45 0f b6 f6 89 c6 89 04 24 44 89 f7 e8 c4 c0 1d 00 8b
RSP: 0018:ffffc900001f03f0 EFLAGS: 00000046
RAX: 0000000000000007 RBX: 1ffff9200003e082 RCX: ffffffff816d882e
RDX: 0000000000000003 RSI: ffffffff816d883c RDI: ffffc900001f0483
RBP: ffffc900001f05f8 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000033a20 R12: 0000000000000000
R13: 0000000000000001 R14: 00000000000000c2 R15: ffffc900001f0430
FS:  00007f8a9afbcc80(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555557251ca8 CR3: 0000000079e62000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <NMI>
 </NMI>
 <IRQ>
 console_emit_next_record kernel/printk/printk.c:2868 [inline]
 console_flush_all+0x3b3/0xd70 kernel/printk/printk.c:2967
 console_unlock+0x10c/0x260 kernel/printk/printk.c:3036
 vprintk_emit+0x183/0x5f0 kernel/printk/printk.c:2303
 dev_vprintk_emit drivers/base/core.c:4864 [inline]
 dev_printk_emit+0xfb/0x140 drivers/base/core.c:4875
 __dev_printk+0xf5/0x270 drivers/base/core.c:4887
 _dev_warn+0xe5/0x120 drivers/base/core.c:4931
 usb_rx_callback_intf0+0x11c/0x1a0 drivers/media/rc/imon.c:1771
 __usb_hcd_giveback_urb+0x364/0x5c0 drivers/usb/core/hcd.c:1650
 usb_hcd_giveback_urb+0x389/0x430 drivers/usb/core/hcd.c:1733
 dummy_timer+0x1415/0x3600 drivers/usb/gadget/udc/dummy_hcd.c:1987
 call_timer_fn+0x193/0x5a0 kernel/time/timer.c:1700
 expire_timers kernel/time/timer.c:1751 [inline]
 __run_timers+0x75d/0xaa0 kernel/time/timer.c:2038
 run_timer_softirq+0x58/0xd0 kernel/time/timer.c:2051
 __do_softirq+0x21c/0x8e7 kernel/softirq.c:553
 invoke_softirq kernel/softirq.c:427 [inline]
 __irq_exit_rcu kernel/softirq.c:632 [inline]
 irq_exit_rcu+0xbb/0x120 kernel/softirq.c:644
 sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1076
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:649
RIP: 0010:rcu_read_unlock include/linux/rcupdate.h:779 [inline]
RIP: 0010:mntput_no_expire+0x11e/0xaf0 fs/namespace.c:1305
Code: 08 05 8d ff 48 8d 7b 50 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 cf 08 00 00 48 8b 43 50 65 ff 08 <e8> 0d e7 c5 08 31 ff 89 c3 89 c6 e8 b2 ff 8c ff 85 db 0f 85 e9 00
RSP: 0018:ffffc9000344fbf0 EFLAGS: 00000202
RAX: 0000607f4681b648 RBX: ffff8880290aa380 RCX: ffffffff81fe4ade
RDX: 1ffff1100521547a RSI: ffffffff81fe4a28 RDI: ffff8880290aa3d0
RBP: 1ffff92000689f84 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000000 R12: ffffc9000344fc40
R13: 0000000000000001 R14: 1ffff92000689fa0 R15: ffff88805c781780
 mntput+0x6b/0x90 fs/namespace.c:1363
 vfs_statx+0x346/0x550 fs/stat.c:270
 vfs_fstatat+0xb3/0x150 fs/stat.c:304
 __do_sys_newfstatat+0x98/0x120 fs/stat.c:468
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xd5/0x270 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x6f/0x77
RIP: 0033:0x7f8a9ab165f4
Code: 64 c7 00 09 00 00 00 83 c8 ff c3 48 89 f2 b9 00 01 00 00 48 89 fe bf 9c ff ff ff e9 00 00 00 00 41 89 ca b8 06 01 00 00 0f 05 <45> 31 c0 3d 00 f0 ff ff 76 10 48 8b 15 03 a8 0d 00 f7 d8 41 83 c8
RSP: 002b:00007ffcaccd36e8 EFLAGS: 00000202 ORIG_RAX: 0000000000000106
RAX: ffffffffffffffda RBX: 000055c2186ca890 RCX: 00007f8a9ab165f4
RDX: 00007ffcaccd36f8 RSI: 00007ffcaccd3788 RDI: 00000000ffffff9c
RBP: 000055c217eec7ac R08: 000055c217eec7ac R09: 0000000000000000
R10: 0000000000000100 R11: 0000000000000202 R12: 0000000000000000
R13: 000055c2186ca980 R14: 00007ffcaccd3788 R15: 000055c2186e78b0
 </TASK>
INFO: NMI handler (nmi_cpu_backtrace_handler) took too long to run: 3.642 msecs
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
usb 5-1: USB disconnect, device number 10
imon 5-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 1-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 3-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 4-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
imon 2-1:0.0: imon usb_rx_callback_intf0: status(-71): ignored
usb 5-1: new high-speed USB device number 11 using dummy_hcd
usb 5-1: Using ep0 maxpacket: 16
usb 5-1: config 0 interface 0 altsetting 0 endpoint 0x8B has an invalid bInterval 0, changing to 7
usb 5-1: New USB device found, idVendor=15c2, idProduct=0040, bcdDevice= 7.f3
usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 5-1: Product: syz
usb 5-1: Manufacturer: syz
usb 5-1: SerialNumber: syz
usb 5-1: config 0 descriptor??
input: iMON Panel, Knob and Mouse(15c2:0040) as /devices/platform/dummy_hcd.4/usb5/5-1/5-1:0.0/input/input99
rc_core: IR keymap rc-imon-pad not found
Registered IR keymap rc-empty
imon 5-1:0.0: Looks like you're trying to use an IR protocol this device does not support
imon 5-1:0.0: Unsupported IR protocol specified, overriding to iMON IR protocol
rc rc0: iMON Remote (15c2:0040) as /devices/platform/dummy_hcd.4/usb5/5-1/5-1:0.0/rc/rc0
input: iMON Remote (15c2:0040) as /devices/platform/dummy_hcd.4/usb5/5-1/5-1:0.0/rc/rc0/input100
imon 5-1:0.0: iMON device (15c2:0040, intf0) on usb<5:11> initialized

Crashes (31):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/03/06 13:03 upstream 29cd507cbec2 f39a7eed .config console log report syz C [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root INFO: rcu detected stall in newfstatat
2023/06/06 08:55 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing d37537a1f7cf a4ae4f42 .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/12/03 02:49 upstream 1b8af6552cb7 f819d6f7 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2023/09/24 00:33 upstream 3aba70aed91f 0b6a67ac .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2023/07/20 21:41 upstream 46670259519f 7b630fdb .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2023/07/11 17:53 upstream 3f01e9fed845 2f19aa4f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: rcu detected stall in newfstatat
2023/07/03 06:08 upstream a901a3568fd2 bfc47836 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root INFO: rcu detected stall in newfstatat
2023/06/28 09:19 upstream e8f75c0270d9 4cd5bb25 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2023/06/28 00:25 upstream e8f75c0270d9 4cd5bb25 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2023/02/26 14:24 upstream 2fcd07b7ccd5 ee50e71c .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-selinux-root INFO: rcu detected stall in newfstatat
2023/02/13 01:19 upstream ceaa837f96ad 93e26d60 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2022/12/27 09:02 upstream 1b929c02afd3 9da18ae8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce INFO: rcu detected stall in newfstatat
2023/08/02 15:33 upstream 5d0c230f1de8 39a91c18 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: rcu detected stall in newfstatat
2023/07/20 13:42 upstream bfa3037d8280 7b630fdb .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-386 INFO: rcu detected stall in newfstatat
2024/04/26 03:24 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing a160e1202ca3 8bdc0f22 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/12/17 03:18 linux-next 17cb8a20bde6 3222d10c .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root INFO: rcu detected stall in newfstatat
2023/12/13 08:06 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 51920207674e ebcad15c .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/12/12 18:09 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 51920207674e ebcad15c .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/12/09 12:56 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 522c35e08b53 28b24332 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/11/27 16:29 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 3396b3372e61 7ec6c044 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/11/25 06:21 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 6acba0345b68 5b429f39 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/11/06 14:40 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing d2f51b3516da 78fae24e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/11/01 04:22 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing c70793fb7632 69904c9f .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/09/11 18:02 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 0bb80ecc33a8 59da8366 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/09/07 21:25 linux-next cd04b2fab5ee 72324844 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root INFO: rcu detected stall in newfstatat
2023/09/03 09:46 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 0468be89b3fa 696ea0d2 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/06/05 17:19 linux-next 715abedee4cd a4ae4f42 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root INFO: rcu detected stall in newfstatat
2023/05/24 00:11 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing ee4d21aa4a22 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2023/04/25 14:01 linux-next 3b85b9b39960 65320f8e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root INFO: rcu detected stall in newfstatat
2022/10/22 03:04 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing a6afa4199d3d 63e790dd .config console log report info [disk image] [vmlinux] ci2-upstream-usb INFO: rcu detected stall in newfstatat
2022/10/19 13:21 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing a6afa4199d3d b31320fc .config console log report info [disk image] [vmlinux] ci2-upstream-usb INFO: rcu detected stall in newfstatat
* Struck through repros no longer work on HEAD.