svn commit: r255876 - stable/9/sys/dev/aac
Marius Strobl
marius at FreeBSD.org
Thu Sep 26 09:16:57 UTC 2013
Author: marius
Date: Thu Sep 26 09:16:57 2013
New Revision: 255876
URL: http://svnweb.freebsd.org/changeset/base/255876
Log:
MFC: r254005
- 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).
Modified:
stable/9/sys/dev/aac/aac_pci.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
Modified: stable/9/sys/dev/aac/aac_pci.c
==============================================================================
--- stable/9/sys/dev/aac/aac_pci.c Thu Sep 26 08:28:31 2013 (r255875)
+++ stable/9/sys/dev/aac/aac_pci.c Thu Sep 26 09:16:57 2013 (r255876)
@@ -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);
More information about the svn-src-stable-9
mailing list