diff -ruN a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
--- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c	2012-11-17 16:21:23.000000000 -0500
+++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c	2012-11-18 14:58:27.000000000 -0500
@@ -52,11 +52,11 @@
 	s32 i;
 
 	pstapriv->pallocated_stainfo_buf = _malloc(sizeof(struct sta_info) *
-						   NUM_STA + 4);
+						   NUM_STA + 8);
 	if (pstapriv->pallocated_stainfo_buf == NULL)
 		return _FAIL;
-	pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 4 -
-		((addr_t)(pstapriv->pallocated_stainfo_buf) & 3);
+	pstapriv->pstainfo_buf = pstapriv->pallocated_stainfo_buf + 8 -
+		((addr_t)(pstapriv->pallocated_stainfo_buf) & 7);
 	_init_queue(&pstapriv->free_sta_queue);
 	spin_lock_init(&pstapriv->sta_hash_lock);
 	pstapriv->asoc_sta_count = 0;