Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Aug 2013 19:14:02 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r254005 - head/sys/dev/aac
Message-ID:  <201308061914.r76JE2cR024426@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Tue Aug  6 19:14:02 2013
New Revision: 254005
URL: http://svnweb.freebsd.org/changeset/base/254005

Log:
  - Fix a bug in the MSI allocation logic so an MSI is also employed if a
    controller supports only a single message. I haven't seen such an adapter
    out in the wild, though, so this change likely is a NOP.
    While at it, further simplify the MSI allocation logic; there's no need
    to check the number of available messages on our own as pci_alloc_msi(9)
    will just fail if it can't provide us with the single message we want.
  - Nuke the unused softc of aacch(4).
  
  MFC after:	1 month

Modified:
  head/sys/dev/aac/aac_pci.c

Modified: head/sys/dev/aac/aac_pci.c
==============================================================================
--- head/sys/dev/aac/aac_pci.c	Tue Aug  6 18:55:59 2013	(r254004)
+++ head/sys/dev/aac/aac_pci.c	Tue Aug  6 19:14:02 2013	(r254005)
@@ -425,18 +425,13 @@ aac_pci_attach(device_t dev)
 	 * Allocate the interrupt.
 	 */
 	rid = 0;
-	count = 0;
-	if (aac_enable_msi != 0 && (sc->flags & AAC_FLAGS_NOMSI) == 0 &&
-	    (count = pci_msi_count(dev)) != 0) {
-		if (count > 1)
-			count = 1;
-		else
-			count = 0;
-		if (count == 1 && pci_alloc_msi(dev, &count) == 0)
+	if (aac_enable_msi != 0 && (sc->flags & AAC_FLAGS_NOMSI) == 0) {
+		count = 1;
+		if (pci_alloc_msi(dev, &count) == 0)
 			rid = 1;
 	}
 	if ((sc->aac_irq = bus_alloc_resource_any(sc->aac_dev, SYS_RES_IRQ,
-	    &rid, RF_ACTIVE | (count != 0 ? 0 : RF_SHAREABLE))) == NULL) {
+	    &rid, RF_ACTIVE | (rid != 0 ? 0 : RF_SHAREABLE))) == NULL) {
 		device_printf(dev, "can't allocate interrupt\n");
 		goto out;
 	}
@@ -489,14 +484,10 @@ static device_method_t aacch_methods[] =
 	DEVMETHOD_END
 };
 
-struct aacch_softc {
-	device_t	dev;
-};
-
 static driver_t aacch_driver = {
 	"aacch",
 	aacch_methods,
-	sizeof(struct aacch_softc)
+	1	/* no softc */
 };
 
 static devclass_t	aacch_devclass;
@@ -515,19 +506,14 @@ aacch_probe(device_t dev)
 }
 
 static int
-aacch_attach(device_t dev)
+aacch_attach(device_t dev __unused)
 {
-	struct aacch_softc *sc;
-
-	sc = device_get_softc(dev);
-
-	sc->dev = dev;
 
 	return (0);
 }
 
 static int
-aacch_detach(device_t dev)
+aacch_detach(device_t dev __unused)
 {
 
 	return (0);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308061914.r76JE2cR024426>