From owner-svn-src-head@FreeBSD.ORG Fri Sep 30 05:17:58 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32050106566C; Fri, 30 Sep 2011 05:17:57 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D460B8FC08; Fri, 30 Sep 2011 05:17:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8U5Hv8p054059; Fri, 30 Sep 2011 05:17:57 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8U5Hvom054044; Fri, 30 Sep 2011 05:17:57 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201109300517.p8U5Hvom054044@svn.freebsd.org> From: Adrian Chadd Date: Fri, 30 Sep 2011 05:17:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225883 - in head/sys/dev/ath: . ath_hal ath_hal/ar5210 ath_hal/ar5211 ath_hal/ar5212 ath_hal/ar5312 ath_hal/ar5416 ath_hal/ar9001 ath_hal/ar9002 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Sep 2011 05:17:58 -0000 Author: adrian Date: Fri Sep 30 05:17:57 2011 New Revision: 225883 URL: http://svn.freebsd.org/changeset/base/225883 Log: Fix a corner case in the HAL debugging changes, where ah was NULL. Although I tried to fix this earlier by introducing HALDEBUG_G(), it turns out there seem to be other cases where the pointer value is still NULL. * Fix DO_HALDEBUG() and the HALDEBUG macro to check whether ah is NULL before deferencing it * Remove HALDEBUG_G() as it's no longer needed This is hopefully a merge candidate for 9.0-RELEASE as enabling debugging at startup could result in a kernel panic. Modified: head/sys/dev/ath/ah_osdep.c head/sys/dev/ath/ath_hal/ah_internal.h head/sys/dev/ath/ath_hal/ah_regdomain.c head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c head/sys/dev/ath/ath_hal/ar5212/ar5112.c head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c head/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c Modified: head/sys/dev/ath/ah_osdep.c ============================================================================== --- head/sys/dev/ath/ah_osdep.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ah_osdep.c Fri Sep 30 05:17:57 2011 (r225883) @@ -128,7 +128,7 @@ void DO_HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...) { if ((mask == HAL_DEBUG_UNMASKABLE) || - (ah->ah_config.ah_debug & mask) || + (ah != NULL && ah->ah_config.ah_debug & mask) || (ath_hal_debug & mask)) { __va_list ap; va_start(ap, fmt); Modified: head/sys/dev/ath/ath_hal/ah_internal.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah_internal.h Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ah_internal.h Fri Sep 30 05:17:57 2011 (r225883) @@ -503,26 +503,15 @@ extern void ath_hal_free(void *); extern int ath_hal_debug; /* Global debug flags */ /* - * This is used for global debugging, when ahp doesn't yet have the - * related debugging state. For example, during probe/attach. - */ -#define HALDEBUG_G(_ah, __m, ...) \ - do { \ - if ((__m) == HAL_DEBUG_UNMASKABLE || \ - ath_hal_debug & (__m)) { \ - DO_HALDEBUG((_ah), (__m), __VA_ARGS__); \ - } \ - } while (0); - -/* - * This is used for local debugging, when ahp isn't NULL and - * thus may have debug flags set. + * The typecast is purely because some callers will pass in + * AH_NULL directly rather than using a NULL ath_hal pointer. */ #define HALDEBUG(_ah, __m, ...) \ do { \ if ((__m) == HAL_DEBUG_UNMASKABLE || \ ath_hal_debug & (__m) || \ - (_ah)->ah_config.ah_debug & (__m)) { \ + ((_ah) != NULL && \ + ((struct ath_hal *) (_ah))->ah_config.ah_debug & (__m))) { \ DO_HALDEBUG((_ah), (__m), __VA_ARGS__); \ } \ } while(0); @@ -531,7 +520,6 @@ extern void DO_HALDEBUG(struct ath_hal * __printflike(3,4); #else #define HALDEBUG(_ah, __m, ...) -#define HALDEBUG_G(_ah, __m, ...) #endif /* AH_DEBUG */ /* Modified: head/sys/dev/ath/ath_hal/ah_regdomain.c ============================================================================== --- head/sys/dev/ath/ath_hal/ah_regdomain.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ah_regdomain.c Fri Sep 30 05:17:57 2011 (r225883) @@ -169,7 +169,7 @@ isEepromValid(struct ath_hal *ah) if (regDomainPairs[i].regDmnEnum == rd) return AH_TRUE; } - HALDEBUG_G(ah, HAL_DEBUG_REGDOMAIN, + HALDEBUG(ah, HAL_DEBUG_REGDOMAIN, "%s: invalid regulatory domain/country code 0x%x\n", __func__, rd); return AH_FALSE; } @@ -613,7 +613,7 @@ ath_hal_mapgsm(int sku, int freq) return 1544 + freq; if (sku == SKU_SR9) return 3344 - freq; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot map freq %u unknown gsm sku %u\n", __func__, freq, sku); return freq; Modified: head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -182,14 +182,14 @@ ar5210Attach(uint16_t devid, HAL_SOFTC s HAL_STATUS ecode; int i; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: devid 0x%x sc %p st %p sh %p\n", __func__, devid, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp = ath_hal_malloc(sizeof (struct ath_hal_5210)); if (ahp == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: no memory for state block\n", __func__); ecode = HAL_ENOMEM; goto bad; Modified: head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -201,13 +201,13 @@ ar5211Attach(uint16_t devid, HAL_SOFTC s uint16_t eeval; HAL_STATUS ecode; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp = ath_hal_malloc(sizeof (struct ath_hal_5211)); if (ahp == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); ecode = HAL_ENOMEM; goto bad; Modified: head/sys/dev/ath/ath_hal/ar5212/ar5112.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5212/ar5112.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar5212/ar5112.c Fri Sep 30 05:17:57 2011 (r225883) @@ -611,7 +611,7 @@ getFullPwrTable(uint16_t numPcdacs, uint uint16_t idxR = 1; if (numPcdacs < 2) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: at least 2 pcdac values needed [%d]\n", __func__, numPcdacs); return AH_FALSE; Modified: head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -319,13 +319,13 @@ ar5212Attach(uint16_t devid, HAL_SOFTC s uint16_t eeval; HAL_STATUS ecode; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp = ath_hal_malloc(sizeof (struct ath_hal_5212)); if (ahp == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar5312/ar5312_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -71,13 +71,13 @@ ar5312Attach(uint16_t devid, HAL_SOFTC s uint16_t eeval; HAL_STATUS ecode; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, st, (void*) sh); /* NB: memory is returned zero'd */ ahp = ath_hal_malloc(sizeof (struct ath_hal_5212)); if (ahp == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -246,7 +246,7 @@ ar5416Attach(uint16_t devid, HAL_SOFTC s HAL_STATUS ecode; HAL_BOOL rfStatus; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ @@ -255,7 +255,7 @@ ar5416Attach(uint16_t devid, HAL_SOFTC s sizeof(ar5416Addac) ); if (ahp5416 == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -78,13 +78,13 @@ ar9130Attach(uint16_t devid, HAL_SOFTC s HAL_STATUS ecode; HAL_BOOL rfStatus; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp5416 = ath_hal_malloc(sizeof (struct ath_hal_5416)); if (ahp5416 == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -123,13 +123,13 @@ ar9160Attach(uint16_t devid, HAL_SOFTC s HAL_STATUS ecode; HAL_BOOL rfStatus; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp5416 = ath_hal_malloc(sizeof (struct ath_hal_5416)); if (ahp5416 == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -153,13 +153,13 @@ ar9280Attach(uint16_t devid, HAL_SOFTC s int8_t pwr_table_offset; uint8_t pwr; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp9280 = ath_hal_malloc(sizeof (struct ath_hal_9280)); if (ahp9280 == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -118,13 +118,13 @@ ar9285Attach(uint16_t devid, HAL_SOFTC s HAL_STATUS ecode; HAL_BOOL rfStatus; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp9285 = ath_hal_malloc(sizeof (struct ath_hal_9285)); if (ahp9285 == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL; Modified: head/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c Fri Sep 30 04:55:23 2011 (r225882) +++ head/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c Fri Sep 30 05:17:57 2011 (r225883) @@ -119,13 +119,13 @@ ar9287Attach(uint16_t devid, HAL_SOFTC s HAL_BOOL rfStatus; int8_t pwr_table_offset; - HALDEBUG_G(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", + HALDEBUG(AH_NULL, HAL_DEBUG_ATTACH, "%s: sc %p st %p sh %p\n", __func__, sc, (void*) st, (void*) sh); /* NB: memory is returned zero'd */ ahp9287 = ath_hal_malloc(sizeof (struct ath_hal_9287)); if (ahp9287 == AH_NULL) { - HALDEBUG_G(AH_NULL, HAL_DEBUG_ANY, + HALDEBUG(AH_NULL, HAL_DEBUG_ANY, "%s: cannot allocate memory for state block\n", __func__); *status = HAL_ENOMEM; return AH_NULL;