kern/126924: [an] [patch] printf -> device_printf and simplify probe
Gavin Atkinson
gavin at FreeBSD.org
Thu Aug 28 20:10:02 UTC 2008
>Number: 126924
>Category: kern
>Synopsis: [an] [patch] printf -> device_printf and simplify probe
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Aug 28 20:10:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Gavin Atkinson
>Release: FreeBSD 7.0-STABLE amd64
>Organization:
>Environment:
System: FreeBSD buffy.york.ac.uk 7.0-STABLE FreeBSD 7.0-STABLE #3: Fri Jun 20 09:21:51 UTC 2008 root at buffy.york.ac.uk:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
There's an bit of duplicated code in thhe probe routine of if_an_pci.c
which is presumably left over from a previous version of this driver, but which
can simply be rolled into the existing probe code now.
While here, convert printf() to device_printf and add a couple of
extra messages to cover various failure modes.
Net change to driver size is ~20 bytes.
>How-To-Repeat:
N/A. Changes tested with an MPI350.
>Fix:
--- an-device_printf.diff begins here ---
Index: src/sys/dev/an/if_an_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/an/if_an_pci.c,v
retrieving revision 1.30
diff -u -r1.30 if_an_pci.c
--- src/sys/dev/an/if_an_pci.c 18 Jan 2008 16:34:18 -0000 1.30
+++ src/sys/dev/an/if_an_pci.c 28 Aug 2008 19:59:55 -0000
@@ -103,6 +103,7 @@
static struct an_type an_devs[] = {
{ AIRONET_VENDORID, AIRONET_DEVICEID_35x, "Cisco Aironet 350 Series" },
+ { AIRONET_VENDORID, AIRONET_DEVICEID_MPI350, "Cisco Aironet MPI350" },
{ AIRONET_VENDORID, AIRONET_DEVICEID_4500, "Aironet PCI4500" },
{ AIRONET_VENDORID, AIRONET_DEVICEID_4800, "Aironet PCI4800" },
{ AIRONET_VENDORID, AIRONET_DEVICEID_4xxx, "Aironet PCI4500/PCI4800" },
@@ -133,13 +134,6 @@
t++;
}
- if (pci_get_vendor(dev) == AIRONET_VENDORID &&
- pci_get_device(dev) == AIRONET_DEVICEID_MPI350) {
- device_set_desc(dev, "Cisco Aironet MPI350");
- an_pci_probe(dev);
- return(BUS_PROBE_DEFAULT);
- }
-
return(ENXIO);
}
@@ -169,7 +163,7 @@
command = pci_read_config(dev, PCIR_COMMAND, 4);
if (!(command & PCIM_CMD_PORTEN)) {
- printf("an%d: failed to enable I/O ports!\n", unit);
+ device_printf(dev, "failed to enable I/O ports!\n");
error = ENXIO;
goto fail;
}
@@ -178,7 +172,7 @@
error = an_alloc_port(dev, sc->port_rid, 1);
if (error) {
- printf("an%d: couldn't map ports\n", unit);
+ device_printf(dev, "couldn't map ports\n");
goto fail;
}
@@ -191,7 +185,7 @@
sc->mem_rid = PCIR_BAR(1);
error = an_alloc_memory(dev, sc->mem_rid, 1);
if (error) {
- printf("an%d: couldn't map memory\n", unit);
+ device_printf(dev, "couldn't map memory\n");
goto fail;
}
sc->an_mem_btag = rman_get_bustag(sc->mem_res);
@@ -202,7 +196,7 @@
error = an_alloc_aux_memory(dev, sc->mem_aux_rid,
AN_AUX_MEM_SIZE);
if (error) {
- printf("an%d: couldn't map aux memory\n", unit);
+ device_printf(dev, "couldn't map aux memory\n");
goto fail;
}
sc->an_mem_aux_btag = rman_get_bustag(sc->mem_aux_res);
@@ -222,7 +216,7 @@
NULL, /* lockarg */
&sc->an_dtag);
if (error) {
- printf("an%d: couldn't get DMA region\n", unit);
+ device_printf(dev, "couldn't get DMA region\n");
goto fail;
}
}
@@ -230,12 +224,14 @@
/* Allocate interrupt */
error = an_alloc_irq(dev, 0, RF_SHAREABLE);
if (error) {
+ device_printf(dev, "couldn't get interrupt\n");
goto fail;
}
sc->an_dev = dev;
error = an_attach(sc, device_get_unit(dev), flags);
if (error) {
+ device_printf(dev, "couldn't attach\n");
goto fail;
}
@@ -244,6 +240,8 @@
*/
error = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET,
NULL, an_intr, sc, &sc->irq_handle);
+ if (error)
+ device_printf(dev, "couldn't setup interrupt\n");
fail:
if (error)
--- an-device_printf.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list