mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
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.
This commit is contained in:
parent
d11bbab85d
commit
0e56140a1b
14 changed files with 28 additions and 40 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 *ah, u_int mask, const char* fmt, ...)
|
|||
__printflike(3,4);
|
||||
#else
|
||||
#define HALDEBUG(_ah, __m, ...)
|
||||
#define HALDEBUG_G(_ah, __m, ...)
|
||||
#endif /* AH_DEBUG */
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -182,14 +182,14 @@ ar5210Attach(uint16_t devid, HAL_SOFTC sc, HAL_BUS_TAG st, HAL_BUS_HANDLE sh,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -201,13 +201,13 @@ ar5211Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -611,7 +611,7 @@ getFullPwrTable(uint16_t numPcdacs, uint16_t *pcdacs, int16_t *power, int16_t ma
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -319,13 +319,13 @@ ar5212Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -71,13 +71,13 @@ ar5312Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -246,7 +246,7 @@ ar5416Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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 sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -78,13 +78,13 @@ ar9130Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -123,13 +123,13 @@ ar9160Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -153,13 +153,13 @@ ar9280Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -118,13 +118,13 @@ ar9285Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
|
|
@ -119,13 +119,13 @@ ar9287Attach(uint16_t devid, HAL_SOFTC sc,
|
|||
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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue