diff --git a/drivers/staging/brcm80211/sys/wlc_event.c b/drivers/staging/brcm80211/sys/wlc_event.c
index 7c17e5f67c5f19779eebd750f7253d5c01cc1dbf..7e1bf0e2ecddbb87f26dd1c5b4eeca45f4c7f86a 100644
--- a/drivers/staging/brcm80211/sys/wlc_event.c
+++ b/drivers/staging/brcm80211/sys/wlc_event.c
@@ -47,7 +47,7 @@ struct wlc_eventq {
 	bool workpending;
 	struct wl_timer *timer;
 	wlc_eventq_cb_t cb;
-	u8 event_inds_mask[roundup(WLC_E_LAST, NBBY) / NBBY];
+	u8 event_inds_mask[broken_roundup(WLC_E_LAST, NBBY) / NBBY];
 };
 
 /*
diff --git a/drivers/staging/brcm80211/sys/wlc_key.h b/drivers/staging/brcm80211/sys/wlc_key.h
index d4f1b91f4dee6d51a22d1b2caa3d0a68243c8049..6678c69f1e1c3e383e168d6032b3e4a699911615 100644
--- a/drivers/staging/brcm80211/sys/wlc_key.h
+++ b/drivers/staging/brcm80211/sys/wlc_key.h
@@ -105,8 +105,9 @@ typedef struct wsec_key {
 
 } wsec_key_t;
 
+#define broken_roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
 typedef struct {
-	u8 vec[roundup(WSEC_MAX_KEYS, NBBY) / NBBY];	/* bitvec of wsec_key indexes */
+	u8 vec[broken_roundup(WSEC_MAX_KEYS, NBBY) / NBBY];	/* bitvec of wsec_key indexes */
 } wsec_key_vec_t;
 
 /* For use with wsec_key_t.flags */