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: 000055eeaf1669c0
Modules 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

Reply via email to