[PATCH 1/2] staging: brcm80211: replaced static ASSERTs with BUILD_BUG_ON

Roland Vossen rvossen at broadcom.com
Thu Mar 24 14:44:29 UTC 2011


Code cleanup. ASSERTs that check static (compile time) conditions
have been replaced by the Linux macro BUILD_BUG_ON, so violations
are detected compile time rather than run time.

Signed-off-by: Roland Vossen <rvossen at broadcom.com>
Reviewed-by: Arend van Spriel <arend at broadcom.com>
---
 drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c |    6 ++--
 drivers/staging/brcm80211/brcmsmac/wlc_bmac.c  |   20 ++++++------
 drivers/staging/brcm80211/brcmsmac/wlc_main.c  |   40 +++++++++++-------------
 3 files changed, 31 insertions(+), 35 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
index c6cdcd9..7939868 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_ampdu.c
@@ -165,9 +165,9 @@ struct ampdu_info *wlc_ampdu_attach(struct wlc_info *wlc)
 	int i;
 
 	/* some code depends on packed structures */
-	ASSERT(DOT11_MAXNUMFRAGS == NBITS(u16));
-	ASSERT(ISPOWEROF2(AMPDU_TX_BA_MAX_WSIZE));
-	ASSERT(ISPOWEROF2(AMPDU_RX_BA_MAX_WSIZE));
+	BUILD_BUG_ON(DOT11_MAXNUMFRAGS != NBITS(u16));
+	BUILD_BUG_ON(!ISPOWEROF2(AMPDU_TX_BA_MAX_WSIZE));
+	BUILD_BUG_ON(!ISPOWEROF2(AMPDU_RX_BA_MAX_WSIZE));
 	ASSERT(wlc->pub->tunables->ampdunummpdu <= AMPDU_MAX_MPDU);
 	ASSERT(wlc->pub->tunables->ampdunummpdu > 0);
 
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
index 5a96dc3..fc162dc 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_bmac.c
@@ -547,8 +547,8 @@ static bool wlc_bmac_attach_dmapio(struct wlc_info *wlc, uint j, bool wme)
 		 * TX: TX_AC_BK_FIFO (TX AC Background data packets)
 		 * RX: RX_FIFO (RX data packets)
 		 */
-		ASSERT(TX_AC_BK_FIFO == 0);
-		ASSERT(RX_FIFO == 0);
+		BUILD_BUG_ON(TX_AC_BK_FIFO != 0);
+		BUILD_BUG_ON(RX_FIFO != 0);
 		wlc_hw->di[0] = dma_attach(name, wlc_hw->sih,
 					   (wme ? DMAREG(wlc_hw, DMA_TX, 0) :
 					    NULL), DMAREG(wlc_hw, DMA_RX, 0),
@@ -563,8 +563,8 @@ static bool wlc_bmac_attach_dmapio(struct wlc_info *wlc, uint j, bool wme)
 		 *   (legacy) TX_DATA_FIFO (TX data packets)
 		 * RX: UNUSED
 		 */
-		ASSERT(TX_AC_BE_FIFO == 1);
-		ASSERT(TX_DATA_FIFO == 1);
+		BUILD_BUG_ON(TX_AC_BE_FIFO != 1);
+		BUILD_BUG_ON(TX_DATA_FIFO != 1);
 		wlc_hw->di[1] = dma_attach(name, wlc_hw->sih,
 					   DMAREG(wlc_hw, DMA_TX, 1), NULL,
 					   tune->ntxd, 0, 0, -1, 0, 0,
@@ -576,7 +576,7 @@ static bool wlc_bmac_attach_dmapio(struct wlc_info *wlc, uint j, bool wme)
 		 * TX: TX_AC_VI_FIFO (TX AC Video data packets)
 		 * RX: UNUSED
 		 */
-		ASSERT(TX_AC_VI_FIFO == 2);
+		BUILD_BUG_ON(TX_AC_VI_FIFO != 2);
 		wlc_hw->di[2] = dma_attach(name, wlc_hw->sih,
 					   DMAREG(wlc_hw, DMA_TX, 2), NULL,
 					   tune->ntxd, 0, 0, -1, 0, 0,
@@ -587,8 +587,8 @@ static bool wlc_bmac_attach_dmapio(struct wlc_info *wlc, uint j, bool wme)
 		 * TX: TX_AC_VO_FIFO (TX AC Voice data packets)
 		 *   (legacy) TX_CTL_FIFO (TX control & mgmt packets)
 		 */
-		ASSERT(TX_AC_VO_FIFO == 3);
-		ASSERT(TX_CTL_FIFO == 3);
+		BUILD_BUG_ON(TX_AC_VO_FIFO != 3);
+		BUILD_BUG_ON(TX_CTL_FIFO != 3);
 		wlc_hw->di[3] = dma_attach(name, wlc_hw->sih,
 					   DMAREG(wlc_hw, DMA_TX, 3),
 					   NULL, tune->ntxd, 0, 0, -1,
@@ -648,7 +648,7 @@ int wlc_bmac_attach(struct wlc_info *wlc, u16 vendor, u16 device, uint unit,
 	WL_TRACE("wl%d: wlc_bmac_attach: vendor 0x%x device 0x%x\n",
 		 unit, vendor, device);
 
-	ASSERT(sizeof(wlc_d11rxhdr_t) <= WL_HWRXOFF);
+	BUILD_BUG_ON(sizeof(wlc_d11rxhdr_t) > WL_HWRXOFF);
 
 	wme = true;
 
@@ -1384,7 +1384,7 @@ wlc_bmac_mhf(struct wlc_hw_info *wlc_hw, u8 idx, u16 mask, u16 val,
 
 	ASSERT((val & ~mask) == 0);
 	ASSERT(idx < MHFMAX);
-	ASSERT(ARRAY_SIZE(addr) == MHFMAX);
+	BUILD_BUG_ON(ARRAY_SIZE(addr) != MHFMAX);
 
 	switch (bands) {
 		/* Current band only or all bands,
@@ -1460,7 +1460,7 @@ static void wlc_write_mhf(struct wlc_hw_info *wlc_hw, u16 *mhfs)
 		M_HOST_FLAGS5
 	};
 
-	ASSERT(ARRAY_SIZE(addr) == MHFMAX);
+	BUILD_BUG_ON(ARRAY_SIZE(addr) != MHFMAX);
 
 	for (idx = 0; idx < MHFMAX; idx++) {
 		wlc_bmac_write_shm(wlc_hw, addr[idx], mhfs[idx]);
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_main.c b/drivers/staging/brcm80211/brcmsmac/wlc_main.c
index 639b5d7..98a5466 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_main.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_main.c
@@ -1356,7 +1356,7 @@ void wlc_wme_initparams_sta(struct wlc_info *wlc, wme_param_ie_t *pe)
 		 }
 	};
 
-	ASSERT(sizeof(*pe) == WME_PARAM_IE_LEN);
+	BUILD_BUG_ON(sizeof(*pe) != WME_PARAM_IE_LEN);
 	memcpy(pe, &stadef, sizeof(*pe));
 }
 
@@ -1733,35 +1733,31 @@ void *wlc_attach(void *wl, u16 vendor, u16 device, uint unit, bool piomode,
 	WL_NONE("wl%d: %s: vendor 0x%x device 0x%x\n",
 		unit, __func__, vendor, device);
 
-	ASSERT(WSEC_MAX_RCMTA_KEYS <= WSEC_MAX_KEYS);
-	ASSERT(WSEC_MAX_DEFAULT_KEYS == WLC_DEFAULT_KEYS);
+	BUILD_BUG_ON(WSEC_MAX_RCMTA_KEYS > WSEC_MAX_KEYS);
+	BUILD_BUG_ON(WSEC_MAX_DEFAULT_KEYS != WLC_DEFAULT_KEYS);
 
 	/* some code depends on packed structures */
-	ASSERT(sizeof(struct ethhdr) == ETH_HLEN);
-	ASSERT(sizeof(d11regs_t) == SI_CORE_SIZE);
-	ASSERT(sizeof(ofdm_phy_hdr_t) == D11_PHY_HDR_LEN);
-	ASSERT(sizeof(cck_phy_hdr_t) == D11_PHY_HDR_LEN);
-	ASSERT(sizeof(d11txh_t) == D11_TXH_LEN);
-	ASSERT(sizeof(d11rxhdr_t) == RXHDR_LEN);
-	ASSERT(sizeof(struct ieee80211_hdr) == DOT11_A4_HDR_LEN);
-	ASSERT(sizeof(struct ieee80211_rts) == DOT11_RTS_LEN);
-	ASSERT(sizeof(tx_status_t) == TXSTATUS_LEN);
-	ASSERT(sizeof(struct ieee80211_ht_cap) == HT_CAP_IE_LEN);
-#ifdef BRCM_FULLMAC
-	ASSERT(offsetof(wl_scan_params_t, channel_list) ==
-	       WL_SCAN_PARAMS_FIXED_SIZE);
-#endif
-	ASSERT(IS_ALIGNED(offsetof(wsec_key_t, data), sizeof(u32)));
-	ASSERT(ISPOWEROF2(MA_WINDOW_SZ));
-
-	ASSERT(sizeof(wlc_d11rxhdr_t) <= WL_HWRXOFF);
+	BUILD_BUG_ON(sizeof(struct ethhdr) != ETH_HLEN);
+	BUILD_BUG_ON(sizeof(d11regs_t) != SI_CORE_SIZE);
+	BUILD_BUG_ON(sizeof(ofdm_phy_hdr_t) != D11_PHY_HDR_LEN);
+	BUILD_BUG_ON(sizeof(cck_phy_hdr_t) != D11_PHY_HDR_LEN);
+	BUILD_BUG_ON(sizeof(d11txh_t) != D11_TXH_LEN);
+	BUILD_BUG_ON(sizeof(d11rxhdr_t) != RXHDR_LEN);
+	BUILD_BUG_ON(sizeof(struct ieee80211_hdr) != DOT11_A4_HDR_LEN);
+	BUILD_BUG_ON(sizeof(struct ieee80211_rts) != DOT11_RTS_LEN);
+	BUILD_BUG_ON(sizeof(tx_status_t) != TXSTATUS_LEN);
+	BUILD_BUG_ON(sizeof(struct ieee80211_ht_cap) != HT_CAP_IE_LEN);
+	BUILD_BUG_ON(!IS_ALIGNED(offsetof(wsec_key_t, data), sizeof(u32)));
+	BUILD_BUG_ON(!ISPOWEROF2(MA_WINDOW_SZ));
+
+	BUILD_BUG_ON(sizeof(wlc_d11rxhdr_t) > WL_HWRXOFF);
 
 	/*
 	 * Number of replay counters value used in WPA IE must match # rxivs
 	 * supported in wsec_key_t struct. See 802.11i/D3.0 sect. 7.3.2.17
 	 * 'RSN Information Element' figure 8 for this mapping.
 	 */
-	ASSERT((WPA_CAP_16_REPLAY_CNTRS == WLC_REPLAY_CNTRS_VALUE
+	BUILD_BUG_ON(!(WPA_CAP_16_REPLAY_CNTRS == WLC_REPLAY_CNTRS_VALUE
 		&& 16 == WLC_NUMRXIVS)
 	       || (WPA_CAP_4_REPLAY_CNTRS == WLC_REPLAY_CNTRS_VALUE
 		   && 4 == WLC_NUMRXIVS));
-- 
1.7.1





More information about the devel mailing list