mt76: redefine mt76_for_each_q_rx to adapt mt7986 changes
authorBo Jiao <Bo.Jiao@mediatek.com>
Fri, 14 Jan 2022 02:53:21 +0000 (10:53 +0800)
committerFelix Fietkau <nbd@nbd.name>
Fri, 4 Feb 2022 10:28:36 +0000 (11:28 +0100)
Check ndesc of q_rx to avoid potential hole in iteration.
This is an intermediate patch to add mt7986 support.

Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
Reviewed-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76.h

index 8d5c484eee5893a5c40a2533594f541df7c57b48..5e10fe1569260607c7105f3b4626902e549a193b 100644 (file)
@@ -908,8 +908,8 @@ static inline u16 mt76_rev(struct mt76_dev *dev)
 #define mt76_queue_reset(dev, ...)     (dev)->mt76.queue_ops->reset_q(&((dev)->mt76), __VA_ARGS__)
 
 #define mt76_for_each_q_rx(dev, i)     \
-       for (i = 0; i < ARRAY_SIZE((dev)->q_rx) && \
-                   (dev)->q_rx[i].ndesc; i++)
+       for (i = 0; i < ARRAY_SIZE((dev)->q_rx); i++)   \
+               if ((dev)->q_rx[i].ndesc)
 
 struct mt76_dev *mt76_alloc_device(struct device *pdev, unsigned int size,
                                   const struct ieee80211_ops *ops,