Debugging a WIP PCI/ACPI patch: Bad tailq NEXT(0xffffffff81cde660->tqh_last) != NULL

Neel Chauhan neel at
Wed Dec 30 16:43:23 UTC 2020

Hi all,

I'm writing a patch to support the VMD subsystem in Intel TigerLake 
systems such as the HP Spectre x360 13t-aw200. VMD is needed for NVMe 

The patch is as follows

--- a/sys/dev/vmd/vmd.c
+++ b/sys/dev/vmd/vmd.c
@@ -66,13 +66,20 @@ struct vmd_type {
  #define INTEL_VENDOR_ID                0x8086
  #define INTEL_DEVICE_ID_VMD    0x201d
  #define INTEL_DEVICE_ID_VMD2   0x28c0
+#define INTEL_DEVICE_ID_VMD3   0x9a0b

  static struct vmd_type vmd_devs[] = {
          { INTEL_VENDOR_ID, INTEL_DEVICE_ID_VMD,  "Intel Volume 
Management Device" },
          { INTEL_VENDOR_ID, INTEL_DEVICE_ID_VMD2, "Intel Volume 
Management Device" },
+        { INTEL_VENDOR_ID, INTEL_DEVICE_ID_VMD3, "Intel Volume 
Management Device" },
          { 0, 0, NULL }

However, when I use the patch, I get a kernel panic related to PCI: (sorry for the image)

It gives me the Bad tailq NEXT(0xffffffff81cde660->tqh_last) != NULL 

Could you please help me figure out why it's panicking?


More information about the freebsd-hackers mailing list