From owner-freebsd-bugs@FreeBSD.ORG Thu Aug 28 20:10:02 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 127F8106569C for ; Thu, 28 Aug 2008 20:10:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id DCB208FC26 for ; Thu, 28 Aug 2008 20:10:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m7SKA1wt028800 for ; Thu, 28 Aug 2008 20:10:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m7SKA1Sg028799; Thu, 28 Aug 2008 20:10:01 GMT (envelope-from gnats) Resent-Date: Thu, 28 Aug 2008 20:10:01 GMT Resent-Message-Id: <200808282010.m7SKA1Sg028799@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Gavin Atkinson Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 304D6106567D for ; Thu, 28 Aug 2008 20:07:05 +0000 (UTC) (envelope-from ga9@buffy.york.ac.uk) Received: from buffy.york.ac.uk (buffy.york.ac.uk [144.32.226.160]) by mx1.freebsd.org (Postfix) with ESMTP id D056A8FC1B for ; Thu, 28 Aug 2008 20:07:04 +0000 (UTC) (envelope-from ga9@buffy.york.ac.uk) Received: from buffy.york.ac.uk (localhost [127.0.0.1]) by buffy.york.ac.uk (8.14.2/8.14.2) with ESMTP id m7SK73J1050147 for ; Thu, 28 Aug 2008 21:07:03 +0100 (BST) (envelope-from ga9@buffy.york.ac.uk) Received: (from ga9@localhost) by buffy.york.ac.uk (8.14.2/8.14.2/Submit) id m7SK73HZ050146; Thu, 28 Aug 2008 21:07:03 +0100 (BST) (envelope-from ga9) Message-Id: <200808282007.m7SK73HZ050146@buffy.york.ac.uk> Date: Thu, 28 Aug 2008 21:07:03 +0100 (BST) From: Gavin Atkinson To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: kern/126924: [an] [patch] printf -> device_printf and simplify probe X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Gavin Atkinson List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Aug 2008 20:10:02 -0000 >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@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: