Index: sys/x86/x86/msi.c =================================================================== --- sys/x86/x86/msi.c +++ sys/x86/x86/msi.c @@ -630,6 +630,10 @@ mtx_unlock(&msi_lock); error = EOPNOTSUPP; #endif + if (error == EOPNOTSUPP && msi->msi_cpu > 0xff) { + printf("%s: invalid msi_cpu %u\n", __func__, msi->msi_cpu); + error = EINVAL; + } if (error == EOPNOTSUPP) { *addr = INTEL_ADDR(msi); *data = INTEL_DATA(msi);