|
|
@@ -3189,16 +3189,16 @@ struct element {
|
|
|
u8 id;
|
|
|
u8 datalen;
|
|
|
u8 data[];
|
|
|
-};
|
|
|
+} __packed;
|
|
|
|
|
|
/* element iteration helpers */
|
|
|
-#define for_each_element(element, _data, _datalen) \
|
|
|
- for (element = (void *)(_data); \
|
|
|
- (u8 *)(_data) + (_datalen) - (u8 *)element >= \
|
|
|
- sizeof(*element) && \
|
|
|
- (u8 *)(_data) + (_datalen) - (u8 *)element >= \
|
|
|
- sizeof(*element) + element->datalen; \
|
|
|
- element = (void *)(element->data + element->datalen))
|
|
|
+#define for_each_element(_elem, _data, _datalen) \
|
|
|
+ for (_elem = (const struct element *)(_data); \
|
|
|
+ (const u8 *)(_data) + (_datalen) - (const u8 *)_elem >= \
|
|
|
+ (int)sizeof(*_elem) && \
|
|
|
+ (const u8 *)(_data) + (_datalen) - (const u8 *)_elem >= \
|
|
|
+ (int)sizeof(*_elem) + _elem->datalen; \
|
|
|
+ _elem = (const struct element *)(_elem->data + _elem->datalen))
|
|
|
|
|
|
#define for_each_element_id(element, _id, data, datalen) \
|
|
|
for_each_element(element, data, datalen) \
|
|
|
@@ -3235,7 +3235,7 @@ struct element {
|
|
|
static inline bool for_each_element_completed(const struct element *element,
|
|
|
const void *data, size_t datalen)
|
|
|
{
|
|
|
- return (u8 *)element == (u8 *)data + datalen;
|
|
|
+ return (const u8 *)element == (const u8 *)data + datalen;
|
|
|
}
|
|
|
|
|
|
#endif /* LINUX_IEEE80211_H */
|