특정 호스트의 USB 하위 시스템과 충돌하는 특정 장치가 있습니다. 동일한 패치 수준을 사용하여 동일한 시스템에 연결하면 장치가 충돌하지 않습니다. 다른 USB 장치는 실패한 호스트에서 제대로 작동합니다. 로그를 확인한 결과 NULL 포인터 역참조로 인해 커널 스레드가 충돌한 것으로 나타났습니다. 이 오류는 USB 하위 시스템에서 오류 71이 발생하여 활성화된 것 같습니다. 이전에 커널을 디버깅한 적이 없으므로 어디서부터 시작해야 할지에 대한 안내를 받고 싶습니다. 관련 일지 항목은 다음과 같습니다.
Apr 24 11:20:47 maendeleo kernel: usb 1-2.3: new full-speed USB device number 5 using xhci_hcd
Apr 24 11:20:47 maendeleo kernel: usb 1-2.3: device descriptor read/64, error -32
Apr 24 11:20:47 maendeleo kernel: usb 1-2.3: device descriptor read/64, error -32
Apr 24 11:20:47 maendeleo kernel: usb 1-2.3: new full-speed USB device number 6 using xhci_hcd
Apr 24 11:20:47 maendeleo kernel: usb 1-2.3: device descriptor read/64, error -32
Apr 24 11:20:48 maendeleo kernel: usb 1-2.3: device descriptor read/64, error -32
Apr 24 11:20:48 maendeleo kernel: usb 1-2-port3: attempt power cycle
Apr 24 11:20:49 maendeleo kernel: usb 1-2.3: new full-speed USB device number 7 using xhci_hcd
Apr 24 11:20:49 maendeleo kernel: usb 1-2.3: Device not responding to setup address.
Apr 24 11:20:49 maendeleo kernel: usb 1-2.3: Device not responding to setup address.
Apr 24 11:20:49 maendeleo kernel: usb 1-2.3: device not accepting address 7, error -71
Apr 24 11:20:49 maendeleo kernel: BUG: kernel NULL pointer dereference, address: 0000000000000020
Apr 24 11:20:49 maendeleo kernel: #PF: supervisor read access in kernel mode
Apr 24 11:20:49 maendeleo kernel: #PF: error_code(0x0000) - not-present page
Apr 24 11:20:49 maendeleo kernel: PGD 0 P4D 0
Apr 24 11:20:49 maendeleo kernel: Oops: 0000 [#1] PREEMPT SMP PTI
Apr 24 11:20:49 maendeleo kernel: CPU: 2 PID: 134 Comm: kworker/2:4 Tainted: G OE 6.8.6-200.fc39.x86_64 #1
Apr 24 11:20:49 maendeleo kernel: Hardware name: Hewlett-Packard HP Compaq Elite 8300 SFF/3397, BIOS K01 v02.83 10/29/2012
Apr 24 11:20:49 maendeleo kernel: Workqueue: usb_hub_wq hub_event
Apr 24 11:20:49 maendeleo kernel: RIP: 0010:xhci_reserve_bandwidth+0x29f/0x640
Apr 24 11:20:49 maendeleo kernel: Code: 8b 4a 10 44 8b 42 14 48 c7 c6 30 1f c3 81 4c 89 ef 48 c7 c2 50 bb bb 82 e8 7e 42 01 00 48 8b 3c 24 8b 74 24 18 31 d2 8d 46 ff <44> 8b 7f 20 44 8b 77 08 41 89 c3 03 07 f7 f6 ba 80 00 00 00 45 85
Apr 24 11:20:49 maendeleo kernel: RSP: 0018:ffffb84d40587920 EFLAGS: 00010046
Apr 24 11:20:49 maendeleo kernel: RAX: 0000000000000000 RBX: ffff88d1b69a5000 RCX: ffffb84d405878d0
Apr 24 11:20:49 maendeleo kernel: RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
Apr 24 11:20:49 maendeleo kernel: RBP: ffff88d14b76c000 R08: ffff88d14b76c020 R09: 0000000000000000
Apr 24 11:20:49 maendeleo kernel: R10: ffff88d17770a6e0 R11: 00000000000000aa R12: ffffb84d40587960
Apr 24 11:20:49 maendeleo kernel: R13: ffff88d0c7a6e260 R14: 000000000000001f R15: 0000000000000001
Apr 24 11:20:49 maendeleo kernel: FS: 0000000000000000(0000) GS:ffff88d1d6b00000(0000) knlGS:0000000000000000
Apr 24 11:20:49 maendeleo kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Apr 24 11:20:49 maendeleo kernel: CR2: 0000000000000020 CR3: 0000000010422001 CR4: 00000000001706f0
Apr 24 11:20:49 maendeleo kernel: Call Trace:
Apr 24 11:20:49 maendeleo kernel: <TASK>
Apr 24 11:20:49 maendeleo kernel: ? __die+0x23/0x70
Apr 24 11:20:49 maendeleo kernel: ? page_fault_oops+0x171/0x4e0
Apr 24 11:20:49 maendeleo kernel: ? exc_page_fault+0x7f/0x180
Apr 24 11:20:49 maendeleo kernel: ? asm_exc_page_fault+0x26/0x30
Apr 24 11:20:49 maendeleo kernel: ? xhci_reserve_bandwidth+0x29f/0x640
Apr 24 11:20:49 maendeleo kernel: ? metadata_update_state+0x7d/0xf0
Apr 24 11:20:49 maendeleo kernel: xhci_configure_endpoint+0x9c/0x720
Apr 24 11:20:49 maendeleo kernel: xhci_endpoint_reset+0x35c/0x630
Apr 24 11:20:49 maendeleo kernel: ? hub_port_init+0x498/0xf80
Apr 24 11:20:49 maendeleo kernel: usb_enable_endpoint+0x7d/0x80
Apr 24 11:20:49 maendeleo kernel: hub_event+0x147f/0x1c70
Apr 24 11:20:49 maendeleo kernel: process_one_work+0x174/0x340
Apr 24 11:20:49 maendeleo kernel: worker_thread+0x27b/0x3a0
Apr 24 11:20:49 maendeleo kernel: ? __pfx_worker_thread+0x10/0x10
Apr 24 11:20:49 maendeleo kernel: kthread+0xe8/0x120
Apr 24 11:20:49 maendeleo kernel: ? __pfx_kthread+0x10/0x10
Apr 24 11:20:49 maendeleo kernel: ret_from_fork+0x34/0x50
Apr 24 11:20:49 maendeleo kernel: ? __pfx_kthread+0x10/0x10
Apr 24 11:20:49 maendeleo kernel: ret_from_fork_asm+0x1b/0x30
Apr 24 11:20:49 maendeleo kernel: </TASK>
Apr 24 11:20:49 maendeleo kernel: Modules linked in: xt_conntrack xt_MASQUERADE nf_conntrack_netlink xt_addrtype nft_compat br_netfilter bridge stp llc snd_seq_dummy snd_hrtimer nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 overlay ip_set nf_tables nfnetlink vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) sunrpc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_intel_dspcfg binfmt_misc snd_intel_sdw_acpi snd_hda_codec snd_hda_core snd_hwdep joydev snd_seq intel_rapl_msr snd_seq_device snd_pcm intel_rapl_common x86_pkg_temp_thermal intel_powerclamp snd_timer coretemp kvm_intel snd kvm soundcore iTCO_wdt irqbypass rapl intel_cstate at24 mei_hdcp intel_pmc_bxt mei_pxp mei_wdt mei_me mei iTCO_vendor_support pcspkr i2c_i801 lpc_ich i2c_smbus intel_uncore hp_wmi sparse_keymap platform_profile rfkill tpm_infineon wmi_bmof loop zram i915
Apr 24 11:20:49 maendeleo kernel: hid_logitech_hidpp crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic ghash_clmulni_intel i2c_algo_bit drm_buddy sha512_ssse3 ttm sha256_ssse3 drm_display_helper e1000e sha1_ssse3 serio_raw cec video wmi hid_logitech_dj scsi_dh_rdac scsi_dh_emc scsi_dh_alua ip6_tables ip_tables dm_multipath fuse
Apr 24 11:20:49 maendeleo kernel: CR2: 0000000000000020
Apr 24 11:20:49 maendeleo kernel: ---[ end trace 0000000000000000 ]---
Apr 24 11:20:49 maendeleo kernel: RIP: 0010:xhci_reserve_bandwidth+0x29f/0x640
Apr 24 11:20:49 maendeleo kernel: Code: 8b 4a 10 44 8b 42 14 48 c7 c6 30 1f c3 81 4c 89 ef 48 c7 c2 50 bb bb 82 e8 7e 42 01 00 48 8b 3c 24 8b 74 24 18 31 d2 8d 46 ff <44> 8b 7f 20 44 8b 77 08 41 89 c3 03 07 f7 f6 ba 80 00 00 00 45 85
Apr 24 11:20:49 maendeleo kernel: RSP: 0018:ffffb84d40587920 EFLAGS: 00010046
Apr 24 11:20:49 maendeleo kernel: RAX: 0000000000000000 RBX: ffff88d1b69a5000 RCX: ffffb84d405878d0
Apr 24 11:20:49 maendeleo kernel: RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
Apr 24 11:20:49 maendeleo kernel: RBP: ffff88d14b76c000 R08: ffff88d14b76c020 R09: 0000000000000000
Apr 24 11:20:49 maendeleo kernel: R10: ffff88d17770a6e0 R11: 00000000000000aa R12: ffffb84d40587960
Apr 24 11:20:49 maendeleo kernel: R13: ffff88d0c7a6e260 R14: 000000000000001f R15: 0000000000000001
Apr 24 11:20:49 maendeleo kernel: FS: 0000000000000000(0000) GS:ffff88d1d6b00000(0000) knlGS:0000000000000000
Apr 24 11:20:49 maendeleo kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Apr 24 11:20:49 maendeleo kernel: CR2: 0000000000000020 CR3: 0000000010422001 CR4: 00000000001706f0
Apr 24 11:20:49 maendeleo kernel: note: kworker/2:4[134] exited with irqs disabled
Apr 24 11:20:49 maendeleo kernel: note: kworker/2:4[134] exited with preempt_count 1
Apr 24 11:20:51 maendeleo abrt-dump-journal-oops[1239]: Reported 1 kernel oopses to Abrt
편집: 비교를 위해 동일한 장치가 다른 호스트에 연결되었을 때의 로그 출력은 다음과 같습니다.
Apr 24 16:04:40 burudani kernel: usb 2-1.8: new full-speed USB device number 7 using ehci-pci
Apr 24 16:04:40 burudani kernel: usb 2-1.8: device descriptor read/64, error -32
Apr 24 16:04:40 burudani kernel: usb 2-1.8: device descriptor read/64, error -32
Apr 24 16:04:40 burudani kernel: usb 2-1.8: new full-speed USB device number 8 using ehci-pci
Apr 24 16:04:40 burudani kernel: usb 2-1.8: device descriptor read/64, error -32
Apr 24 16:04:41 burudani kernel: usb 2-1.8: device descriptor read/64, error -32
Apr 24 16:04:41 burudani kernel: usb 2-1-port8: attempt power cycle
Apr 24 16:04:41 burudani kernel: usb 2-1.8: new full-speed USB device number 9 using ehci-pci
Apr 24 16:04:42 burudani kernel: usb 2-1.8: device not accepting address 9, error -32
Apr 24 16:04:42 burudani kernel: usb 2-1.8: new full-speed USB device number 10 using ehci-pci
Apr 24 16:04:42 burudani kernel: usb 2-1.8: device not accepting address 10, error -32
Apr 24 16:04:42 burudani kernel: usb 2-1-port8: unable to enumerate USB device