This worked before, because we made all callers name their next pointer "next". But in trying to be more "drop-in" ready, the silliness here is revealed. This commit fixes the problem by making the macro argument and the member use different names.
Showing the changes to include/linux (1 of 1 file). Show all
Unified · Split
| @@ -1479,9 +1479,9 @@ static inline void skb_mark_not_on_list(struct sk_buff *skb) · 1478 unmodified lines | ||
| 1479 | 1479 | } |
| 1480 | 1480 | |
| 1481 | 1481 | /* Iterate through singly-linked GSO fragments of an skb. */ |
| 1482 | −#define skb_list_walk_safe(first, skb, next) \ | |
| 1483 | − for ((skb) = (first), (next) = (skb) ? (skb)->next : NULL; (skb); \ | |
| 1484 | − (skb) = (next), (next) = (skb) ? (skb)->next : NULL) | |
| 1482 | +#define skb_list_walk_safe(first, skb, next_skb) \ | |
| 1483 | + for ((skb) = (first), (next_skb) = (skb) ? (skb)->next : NULL; (skb); \ | |
| 1484 | + (skb) = (next_skb), (next_skb) = (skb) ? (skb)->next : NULL) | |
| 1485 | 1485 | |
| 1486 | 1486 | static inline void skb_list_del_init(struct sk_buff *skb) |
| 1487 | 1487 | { |