IB/ipath - print better error messages if kernel is misconfigured

From: Bryan O'Sullivan <bryan.osullivan@qlogic.com>

diff -r 4205c1727391 drivers/infiniband/hw/ipath/ipath_driver.c
--- a/drivers/infiniband/hw/ipath/ipath_driver.c	Thu Mar 08 13:36:22 2007 -0800
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c	Thu Mar 08 13:46:34 2007 -0800
@@ -438,15 +438,23 @@ static int __devinit ipath_init_one(stru
 
 	/* setup the chip-specific functions, as early as possible. */
 	switch (ent->device) {
+	case PCI_DEVICE_ID_INFINIPATH_HT:
 #ifdef CONFIG_HT_IRQ
-	case PCI_DEVICE_ID_INFINIPATH_HT:
 		ipath_init_iba6110_funcs(dd);
 		break;
+#else
+		ipath_dev_err(dd, "QLogic HT device 0x%x cannot work if "
+			      "CONFIG_HT_IRQ is not enabled\n", ent->device);
+		return -ENODEV;
 #endif
+	case PCI_DEVICE_ID_INFINIPATH_PE800:
 #ifdef CONFIG_PCI_MSI
-	case PCI_DEVICE_ID_INFINIPATH_PE800:
 		ipath_init_iba6120_funcs(dd);
 		break;
+#else
+		ipath_dev_err(dd, "QLogic PCIE device 0x%x cannot work if "
+			      "CONFIG_PCI_MSI is not enabled\n", ent->device);
+		return -ENODEV;
 #endif
 	default:
 		ipath_dev_err(dd, "Found unknown QLogic deviceid 0x%x, "
