Date: Wed, 7 Apr 2010 12:49:43 GMT From: Sebastian Huber <sebastian.huber@embedded-brains.de> To: freebsd-gnats-submit@FreeBSD.org Subject: usb/145455: USB debug support cannot be disabled Message-ID: <201004071249.o37CnhT4020605@www.freebsd.org> Resent-Message-ID: <201004071250.o37Co5Mf095091@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 145455 >Category: usb >Synopsis: USB debug support cannot be disabled >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-usb >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Apr 07 12:50:05 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Sebastian Huber >Release: 9-current >Organization: embedded brains GmbH >Environment: >Description: You cannot disable the USB debug support completely (USB_DEBUG define) due to an intermix of #if and #ifdef handling. The header file usb_freebsd.h defines USB_DEBUG if it is undefined. So the USB_DEBUG pre-processor symbol is always defined. Thus you cannot use #ifdef and #ifndef to test if debugging support should be enabled or disabled. >How-To-Repeat: >Fix: Please have a look at the attached patch. Patch attached with submission follows: Index: dev/usb/controller/at91dci.c =================================================================== --- dev/usb/controller/at91dci.c (revision 206339) +++ dev/usb/controller/at91dci.c (working copy) @@ -89,7 +89,7 @@ #define AT9100_DCI_PC2SC(pc) \ AT9100_DCI_BUS2SC(USB_DMATAG_TO_XROOT((pc)->tag_parent)->bus) -#ifdef USB_DEBUG +#if USB_DEBUG static int at91dcidebug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, at91dci, CTLFLAG_RW, 0, "USB at91dci"); Index: dev/usb/controller/atmegadci.c =================================================================== --- dev/usb/controller/atmegadci.c (revision 206339) +++ dev/usb/controller/atmegadci.c (working copy) @@ -81,7 +81,7 @@ #define ATMEGA_PC2SC(pc) \ ATMEGA_BUS2SC(USB_DMATAG_TO_XROOT((pc)->tag_parent)->bus) -#ifdef USB_DEBUG +#if USB_DEBUG static int atmegadci_debug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, atmegadci, CTLFLAG_RW, 0, "USB ATMEGA DCI"); Index: dev/usb/controller/musb_otg.c =================================================================== --- dev/usb/controller/musb_otg.c (revision 206339) +++ dev/usb/controller/musb_otg.c (working copy) @@ -83,7 +83,7 @@ #define MUSBOTG_PC2SC(pc) \ MUSBOTG_BUS2SC(USB_DMATAG_TO_XROOT((pc)->tag_parent)->bus) -#ifdef USB_DEBUG +#if USB_DEBUG static int musbotgdebug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, musbotg, CTLFLAG_RW, 0, "USB musbotg"); Index: dev/usb/controller/uhci_pci.c =================================================================== --- dev/usb/controller/uhci_pci.c (revision 206339) +++ dev/usb/controller/uhci_pci.c (working copy) @@ -372,7 +372,7 @@ * that the BIOS won't touch the keyboard anymore if it is connected * to the ports of the root hub? */ -#ifdef USB_DEBUG +#if USB_DEBUG if (pci_read_config(self, PCI_LEGSUP, 2) != PCI_LEGSUP_USBPIRQDEN) { device_printf(self, "LegSup = 0x%04x\n", pci_read_config(self, PCI_LEGSUP, 2)); Index: dev/usb/controller/usb_controller.c =================================================================== --- dev/usb/controller/usb_controller.c (revision 206339) +++ dev/usb/controller/usb_controller.c (working copy) @@ -72,7 +72,7 @@ /* static variables */ -#ifdef USB_DEBUG +#if USB_DEBUG static int usb_ctrl_debug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, ctrl, CTLFLAG_RW, 0, "USB controller"); Index: dev/usb/controller/avr32dci.c =================================================================== --- dev/usb/controller/avr32dci.c (revision 206339) +++ dev/usb/controller/avr32dci.c (working copy) @@ -81,7 +81,7 @@ #define AVR32_PC2SC(pc) \ AVR32_BUS2SC(USB_DMATAG_TO_XROOT((pc)->tag_parent)->bus) -#ifdef USB_DEBUG +#if USB_DEBUG static int avr32dci_debug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, avr32dci, CTLFLAG_RW, 0, "USB AVR32 DCI"); Index: dev/usb/controller/ohci.c =================================================================== --- dev/usb/controller/ohci.c (revision 206339) +++ dev/usb/controller/ohci.c (working copy) @@ -78,7 +78,7 @@ ((ohci_softc_t *)(((uint8_t *)(bus)) - \ ((uint8_t *)&(((ohci_softc_t *)0)->sc_bus)))) -#ifdef USB_DEBUG +#if USB_DEBUG static int ohcidebug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, ohci, CTLFLAG_RW, 0, "USB ohci"); @@ -228,7 +228,7 @@ device_printf(sc->sc_bus.bdev, "reset timeout\n"); return (USB_ERR_IOERROR); } -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 15) { ohci_dumpregs(sc); } @@ -287,7 +287,7 @@ sc->sc_noport = OHCI_GET_NDP(OREAD4(sc, OHCI_RH_DESCRIPTOR_A)); } -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 5) { ohci_dumpregs(sc); } @@ -403,7 +403,7 @@ usb_callout_init_mtx(&sc->sc_tmo_rhsc, &sc->sc_bus.bus_mtx, 0); -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 15) { for (i = 0; i != OHCI_NO_EDS; i++) { printf("ed#%d ", i); @@ -456,7 +456,7 @@ USB_BUS_LOCK(&sc->sc_bus); -#ifdef USB_DEBUG +#if USB_DEBUG DPRINTF("\n"); if (ohcidebug > 2) { ohci_dumpregs(sc); @@ -486,7 +486,7 @@ { uint32_t ctl; -#ifdef USB_DEBUG +#if USB_DEBUG DPRINTF("\n"); if (ohcidebug > 2) { ohci_dumpregs(sc); @@ -520,7 +520,7 @@ ohci_do_poll(&sc->sc_bus); } -#ifdef USB_DEBUG +#if USB_DEBUG static void ohci_dumpregs(ohci_softc_t *sc) { @@ -767,7 +767,7 @@ panic("%s:%d: out of TD's\n", __FUNCTION__, __LINE__); } -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 5) { DPRINTF("isoc TD\n"); ohci_dump_itd(td); @@ -808,7 +808,7 @@ ohci_device_done(xfer, USB_ERR_NORMAL_COMPLETION); } -#ifdef USB_DEBUG +#if USB_DEBUG static const char *const ohci_cc_strs[] = { @@ -936,7 +936,7 @@ DPRINTFN(13, "xfer=%p endpoint=%p transfer done\n", xfer, xfer->endpoint); -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 10) { ohci_dump_tds(xfer->td_transfer_first); } @@ -1161,7 +1161,7 @@ DPRINTFN(16, "real interrupt\n"); -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 15) { ohci_dumpregs(sc); } @@ -1587,7 +1587,7 @@ xfer->td_transfer_last = td; -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 8) { DPRINTF("nexttog=%d; data before transfer:\n", xfer->endpoint->toggle_next); @@ -2018,7 +2018,7 @@ xfer->td_transfer_last = td_last; -#ifdef USB_DEBUG +#if USB_DEBUG if (ohcidebug > 8) { DPRINTF("data before transfer:\n"); ohci_dump_itds(xfer->td_transfer_first); Index: dev/usb/usb_debug.h =================================================================== --- dev/usb/usb_debug.h (revision 206339) +++ dev/usb/usb_debug.h (working copy) @@ -34,7 +34,7 @@ /* Check if USB debugging is enabled. */ #ifdef USB_DEBUG_VAR -#if (USB_DEBUG != 0) +#if USB_DEBUG #define DPRINTFN(n,fmt,...) do { \ if ((USB_DEBUG_VAR) >= (n)) { \ printf("%s: " fmt, \ Index: dev/usb/storage/umass.c =================================================================== --- dev/usb/storage/umass.c (revision 206339) +++ dev/usb/storage/umass.c (working copy) @@ -2147,7 +2147,7 @@ static void umass_cam_attach(struct umass_softc *sc) { -#ifndef USB_DEBUG +#if !USB_DEBUG if (bootverbose) #endif printf("%s:%d:%d:%d: Attached to scbus%d\n", Index: dev/usb/usb_busdma.c =================================================================== --- dev/usb/usb_busdma.c (revision 206339) +++ dev/usb/usb_busdma.c (working copy) @@ -440,7 +440,7 @@ pc->page_offset_buf = rem; pc->page_offset_end += rem; nseg--; -#ifdef USB_DEBUG +#if USB_DEBUG if (rem != (USB_P2U(pc->buffer) & (USB_PAGE_SIZE - 1))) { /* * This check verifies that the physical address is correct: Index: dev/usb/usb_hub.c =================================================================== --- dev/usb/usb_hub.c (revision 206339) +++ dev/usb/usb_hub.c (working copy) @@ -73,7 +73,7 @@ #define UHUB_INTR_INTERVAL 250 /* ms */ #define UHUB_N_TRANSFER 1 -#ifdef USB_DEBUG +#if USB_DEBUG static int uhub_debug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, uhub, CTLFLAG_RW, 0, "USB HUB"); Index: dev/usb/usb_dev.c =================================================================== --- dev/usb/usb_dev.c (revision 206339) +++ dev/usb/usb_dev.c (working copy) @@ -79,7 +79,7 @@ #if USB_HAVE_UGEN -#ifdef USB_DEBUG +#if USB_DEBUG static int usb_fifo_debug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, dev, CTLFLAG_RW, 0, "USB device"); Index: dev/usb/usb_freebsd.h =================================================================== --- dev/usb/usb_freebsd.h (revision 206339) +++ dev/usb/usb_freebsd.h (working copy) @@ -57,7 +57,7 @@ #define USB_HUB_MAX_DEPTH 5 #define USB_EP0_BUFSIZE 1024 /* bytes */ -#ifndef USB_DEBUG +#if USB_DEBUG #define USB_DEBUG 1 #endif Index: dev/usb/net/uhso.c =================================================================== --- dev/usb/net/uhso.c (revision 206339) +++ dev/usb/net/uhso.c (working copy) @@ -280,7 +280,7 @@ SYSCTL_INT(_hw_usb_uhso, OID_AUTO, auto_switch, CTLFLAG_RW, &uhso_autoswitch, 0, "Automatically switch to modem mode"); -#ifdef USB_DEBUG +#if USB_DEBUG #ifdef UHSO_DEBUG static int uhso_debug = UHSO_DEBUG; #else Index: dev/usb/usb_generic.c =================================================================== --- dev/usb/usb_generic.c (revision 206339) +++ dev/usb/usb_generic.c (working copy) @@ -124,7 +124,7 @@ .f_stop_write = &ugen_stop_io, }; -#ifdef USB_DEBUG +#if USB_DEBUG static int ugen_debug = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, ugen, CTLFLAG_RW, 0, "USB generic"); Index: dev/usb/usb_process.c =================================================================== --- dev/usb/usb_process.c (revision 206339) +++ dev/usb/usb_process.c (working copy) @@ -77,7 +77,7 @@ #define USB_THREAD_EXIT(err) kthread_exit(err) #endif -#ifdef USB_DEBUG +#if USB_DEBUG static int usb_proc_debug; SYSCTL_NODE(_hw_usb, OID_AUTO, proc, CTLFLAG_RW, 0, "USB process"); >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201004071249.o37CnhT4020605>