Have you tested this patch? For example this change in libmthca/src/mthca.c: - sscanf(attr->value, "%i", &vendor); + sscanf(attr->value, "%u", &vendor); seems like it will break things, since this sscanf is reading the vendor attribute of a PCI device from sysfs, and that will be a string like "0x15b3" with current kernels. - R.