svn commit: r233996 - in stable/8/sys: dev/mpt i386/conf

Marius Strobl marius at FreeBSD.org
Sat Apr 7 12:46:54 UTC 2012


Author: marius
Date: Sat Apr  7 12:46:53 2012
New Revision: 233996
URL: http://svn.freebsd.org/changeset/base/233996

Log:
  MFC: r233827
  
  Fix probing of SAS1068E with a device ID of 0x0059 after r232411 (MFC'ed
  to stable/8 in r232563).
  Reported by: infofarmer
  
  MFC: r233886
  
  Refine r233827; as it turns out, controllers with a device ID of 0x0059
  can be upgraded to MegaRAID mode, in which case mfi(4) should attach to
  these based on the sub-vendor and -device ID instead (not currently done).
  Therefore, let mpt_pci_probe() return BUS_PROBE_LOW_PRIORITY.
  While it, let mpt_pci_probe() return BUS_PROBE_DEFAULT instead of 0 in
  the default case.

Modified:
  stable/8/sys/dev/mpt/mpt_pci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/boot/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/e1000/   (props changed)
  stable/8/sys/i386/conf/XENHVM   (props changed)

Modified: stable/8/sys/dev/mpt/mpt_pci.c
==============================================================================
--- stable/8/sys/dev/mpt/mpt_pci.c	Sat Apr  7 12:46:27 2012	(r233995)
+++ stable/8/sys/dev/mpt/mpt_pci.c	Sat Apr  7 12:46:53 2012	(r233996)
@@ -141,6 +141,10 @@ __FBSDID("$FreeBSD$");
 #define MPI_MANUFACTPAGE_DEVID_SAS1068A_FB	0x0055
 #endif
 
+#ifndef	MPI_MANUFACTPAGE_DEVID_SAS1068E_FB
+#define	MPI_MANUFACTPAGE_DEVID_SAS1068E_FB	0x0059
+#endif
+
 #ifndef	MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB
 #define	MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB	0x007C
 #endif
@@ -183,10 +187,12 @@ static int
 mpt_pci_probe(device_t dev)
 {
 	const char *desc;
+	int rval;
 
 	if (pci_get_vendor(dev) != MPI_MANUFACTPAGE_VENDORID_LSILOGIC)
 		return (ENXIO);
 
+	rval = BUS_PROBE_DEFAULT;
 	switch (pci_get_device(dev)) {
 	case MPI_MANUFACTPAGE_DEVICEID_FC909_FB:
 		desc = "LSILogic FC909 FC Adapter";
@@ -228,6 +234,13 @@ mpt_pci_probe(device_t dev)
 	case MPI_MANUFACTPAGE_DEVID_53C1030ZC:
 		desc = "LSILogic 1030 Ultra4 Adapter";
 		break;
+	case MPI_MANUFACTPAGE_DEVID_SAS1068E_FB:
+		/*
+		 * Allow mfi(4) to claim this device in case it's in MegaRAID
+		 * mode.
+		 */
+		rval = BUS_PROBE_LOW_PRIORITY;
+		/* FALLTHROUGH */
 	case MPI_MANUFACTPAGE_DEVID_SAS1064:
 	case MPI_MANUFACTPAGE_DEVID_SAS1064A:
 	case MPI_MANUFACTPAGE_DEVID_SAS1064E:
@@ -245,7 +258,7 @@ mpt_pci_probe(device_t dev)
 	}
 
 	device_set_desc(dev, desc);
-	return (0);
+	return (rval);
 }
 
 #if	__FreeBSD_version < 500000  
@@ -419,6 +432,7 @@ mpt_pci_attach(device_t dev)
 	case MPI_MANUFACTPAGE_DEVID_SAS1068:
 	case MPI_MANUFACTPAGE_DEVID_SAS1068A_FB:
 	case MPI_MANUFACTPAGE_DEVID_SAS1068E:
+	case MPI_MANUFACTPAGE_DEVID_SAS1068E_FB:
 		mpt->is_sas = 1;
 		break;
 	default:


More information about the svn-src-stable-8 mailing list