diff --git a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
index e9db4495c626..a0395af74c2d 100644
--- a/drivers/net/wireless/p54/p54pci.c
+++ b/drivers/net/wireless/p54/p54pci.c
@@ -301,9 +301,11 @@ static void p54p_check_rx_ring(struct ieee80211_hw *dev, u32 *index,
 		len = le16_to_cpu(desc->len);
 		skb = rx_buf[i];
 
-		if (!skb)
+		if (!skb) {
+			i++;
+			i %= ring_limit;
 			continue;
-
+		}
 		skb_put(skb, len);
 
 		if (p54_rx(dev, skb)) {