diff --git a/list.h b/list.h index db6e6bc81..065ab3dc9 100644 --- a/list.h +++ b/list.h @@ -411,6 +411,12 @@ static inline void list_move_tail(struct list_head *node, for (entry = list_entry((head)->next, typeof(*entry), member); \ &entry->member != (head); \ entry = list_entry(entry->member.next, typeof(*entry), member)) +#else +/* The negative width bit-field makes a compile-time error for use of this. It + * works in the same way as BUILD_BUG_ON_ZERO macro of Linux kernel. + */ +#define list_for_each_entry(entry, head, member) \ + for (entry = (void *) 1; sizeof(struct { int : -1; }); ++(entry)) #endif /** @@ -450,6 +456,10 @@ static inline void list_move_tail(struct list_head *node, safe = list_entry(entry->member.next, typeof(*entry), member); \ &entry->member != (head); entry = safe, \ safe = list_entry(safe->member.next, typeof(*entry), member)) +#else +#define list_for_each_entry_safe(entry, safe, head, member) \ + for (entry = safe = (void *) 1; sizeof(struct { int : -1; }); \ + ++(entry), ++(safe)) #endif #undef __LIST_HAVE_TYPEOF diff --git a/scripts/checksums b/scripts/checksums index 85657218d..3495f023a 100644 --- a/scripts/checksums +++ b/scripts/checksums @@ -1,3 +1,3 @@ db6784ff3917888db4d1dceaa0570d99ed40e762 queue.h -a35ff719849dbe38d903576a332989c5ba7242bf list.h +27d7a57c6bab59beda9178f240db1aa7c0062361 list.h 3bb0192cee08d165fd597a9f6fbb404533e28fcf scripts/check-commitlog.sh