Hi Jiang,
If I tell qemu to use PCI pass-through for a PCI adapter and next load the
lpfc driver for an lpfc adapter that has not been passed through to any VM
a kernel bug is hit. Do you perhaps know whether it should be possible to
a load kernel driver in this scenario? If so, do you know what should change
to avoid that this kernel bug is hit? Should the iommu code be modified or
should the lpfc code be modified? I'm asking you because I think that you
introduced the BUG() statement that was hit. See also commit ab8dfe251571
("iommu/vt-d: Introduce helper functions to improve code readability"; v3.17).Thank you, Bart. ------------[ cut here ]------------ kernel BUG at drivers/iommu/intel-iommu.c:608! invalid opcode: 0000 [#1] SMP CPU: 7 PID: 7842 Comm: modprobe Not tainted 5.0.7+ #2 Hardware name: Gigabyte Technology Co., Ltd. Z97X-UD5H/Z97X-UD5H, BIOS F10 08/03/2015 RIP: 0010:domain_get_iommu+0x50/0x60 Code: c2 01 eb 0b 48 83 c0 01 8b 34 87 85 f6 75 0b 48 39 c2 48 63 c8 75 ed 31 c0 c3 48 c1 e1 03 48 8b 05 15 9b cd 00 48 8b 04 08 c3 <0f> 0b 31 c9 eb ee 66 2e 0f 1f 84 00 00 00 00 00 41 55 8b 05 d0 9a RSP: 0018:ffffa7884024ba60 EFLAGS: 00010202 RAX: ffff96c8897c60c0 RBX: 00000004046c2000 RCX: ffff96c88edab000 RDX: 00000000fffffff0 RSI: ffff96c88e08de80 RDI: ffff96c8897c60c0 RBP: 0000000000000000 R08: ffff96c88b806b40 R09: ffff96c88f802f50 R10: 0000000000000000 R11: 0000000000000001 R12: ffff96c88edab0b0 R13: ffffffffffffffff R14: 0000000000001000 R15: ffff96c8897c60c0 FS: 00007fec74c05b80(0000) GS:ffff96c89fbc0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fec74c5dc80 CR3: 0000000404686004 CR4: 00000000001626e0 Call Trace: __intel_map_page+0x7e/0x150 intel_alloc_coherent+0xa7/0x130 dma_alloc_attrs+0x6b/0xc0 dma_pool_alloc+0xb8/0x1a0 lpfc_mem_alloc+0x109/0x3e0 [lpfc] lpfc_pci_probe_one+0xdac/0x2060 [lpfc] pci_device_probe+0xc3/0x140 really_probe+0xd2/0x380 driver_probe_device+0xae/0xf0 __driver_attach+0xd5/0x100 ? driver_probe_device+0xf0/0xf0 bus_for_each_dev+0x5b/0x90 bus_add_driver+0x208/0x220 ? 0xffffffffc0ad9000 driver_register+0x66/0xb0 ? 0xffffffffc0ad9000 lpfc_init+0xd5/0x1000 [lpfc] do_one_initcall+0x2e/0x181 ? __vunmap+0x75/0xb0 do_init_module+0x55/0x1e0 load_module+0x2438/0x2560 ? __do_sys_finit_module+0x8f/0xd0 __do_sys_finit_module+0x8f/0xd0 do_syscall_64+0x44/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7fec74d212f9 Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 6f 4b 0c 00 f7 d8 64 89 01 48 RSP: 002b:00007ffea26c1458 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 000055eeaf1669c0 RCX: 00007fec74d212f9 RDX: 0000000000000000 RSI: 000055eeaf0ee3c8 RDI: 0000000000000004 RBP: 0000000000000000 R08: 0000000000000000 R09: 000055eeaf166400 R10: 0000000000000004 R11: 0000000000000246 R12: 000055eeaf0ee3c8 R13: 0000000000040000 R14: 000055eeaf16eb90 R15: 000055eeaf1669c0Modules linked in: lpfc(+) scsi_transport_fc mlx4_ib ib_uverbs ib_core mlx4_en mlx4_core pci_stub af_packet vhost_net vhost tun vfio_pci vfio_virqfd vfio_iommu_type1 vfio fuse dm_crypt algif_skcipher af_alg loop devlink bridge stp llc xt_tcpudp ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_conntrack ebtable_nat ip6table_nat nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat_ipv4 nf_nat iptable_mangle iptable_raw iptable_security nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 scsi_transport_iscsi ip_set nfnetlink ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter ip_tables x_tables bpfilter coretemp hwmon intel_rapl x86_pkg_temp_thermal intel_powerclamp kvm_intel kvm irqbypass crct10dif_pclmul snd_hda_codec_hdmi crc32_pclmul ghash_clmulni_intel snd_hda_codec_realtek snd_hda_codec_generic aesni_intel aes_x86_64 crypto_simd cryptd snd_hda_intel iTCO_wdt mei_me iTCO_vendor_support joydev mxm_wmi glue_helper e1000e alx mdio intel_rapl_perf snd_hda_codec mei ptp lpc_ich pcspkr i2c_i801 snd_hda_core pps_core mfd_core fan thermal wmi pcc_cpufreq acpi_pad button snd_usb_audio snd_usbmidi_lib snd_hwdep snd_rawmidi snd_seq_device snd_pcm snd_timer snd soundcore ext4 crc16 mbcache jbd2 hid_generic usbhid sd_mod i915 intel_gtt i2c_algo_bit iosf_mbi drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ahci libahci drm drm_panel_orientation_quirks xhci_pci libata ehci_pci agpgart ehci_hcd xhci_hcd i2c_core video usbcore usb_common sg dm_multipath dm_mod scsi_dh_rdac scsi_dh_emc scsi_dh_alua scsi_mod unix ipv6 autofs4 [last unloaded: scsi_transport_fc]
---[ end trace cc531c0d02c790cc ]--- _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
