Files
kernel_google_wahoo/include/linux
Alexander Potapenko 3aae5d3671 UPSTREAM: llist: clang: introduce member_address_is_nonnull()
Currently llist_for_each_entry() and llist_for_each_entry_safe() iterate
until &pos->member != NULL.  But when building the kernel with Clang,
the compiler assumes &pos->member cannot be NULL if the member's offset
is greater than 0 (which would be equivalent to the object being
non-contiguous in memory).  Therefore the loop condition is always true,
and the loops become infinite.

To work around this, introduce the member_address_is_nonnull() macro,
which casts object pointer to uintptr_t, thus letting the member pointer
to be NULL.

Change-Id: I1f9541591bba1f2ca16ecbb0248555298df4bee5
Fixes: 64082472
Signed-off-by: Alexander Potapenko <glider@google.com>
Tested-by: Sodagudi Prasad <psodagud@codeaurora.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2017-08-29 01:36:36 +00:00
..
2015-10-17 21:22:08 -07:00
2015-10-07 18:08:15 +01:00
2016-03-23 21:23:46 -07:00
2016-03-09 15:34:52 -08:00
2015-11-07 10:40:47 -07:00
2016-03-01 13:00:24 -08:00
2017-05-22 23:19:33 -07:00
2015-10-18 10:14:39 -07:00
2016-03-22 11:10:20 -07:00
2016-04-13 11:11:51 -07:00
2016-02-16 13:50:55 -08:00
2016-04-13 11:11:30 -07:00
2016-04-20 15:42:02 +09:00
2015-10-23 05:44:28 -07:00
2016-03-22 11:04:03 -07:00
2017-01-23 11:03:24 +05:30
2015-10-13 19:01:25 +02:00
2017-05-04 16:43:06 +00:00
2015-11-23 09:44:58 +01:00
2015-10-27 18:55:31 -07:00
2017-07-19 23:03:01 -07:00
2015-10-20 22:10:45 +08:00
2016-03-22 11:10:25 -07:00
2016-03-23 21:25:09 -07:00
2016-03-03 15:07:28 -08:00
2016-03-22 11:03:30 -07:00
2016-12-08 07:15:24 +01:00
2017-02-14 16:12:56 -08:00
2016-03-23 21:19:04 -07:00
2016-04-08 11:24:28 +08:00
2015-10-09 17:00:32 -04:00
2015-10-06 17:08:19 +02:00
2016-03-22 11:08:08 -07:00
2016-03-23 20:11:01 -07:00
2017-01-05 13:05:14 -08:00
2016-09-30 10:18:37 +02:00
2016-11-08 10:23:45 -08:00
2016-03-23 21:19:04 -07:00
2015-10-19 01:01:21 +02:00
2017-06-30 23:36:54 -07:00
2015-11-23 09:44:58 +01:00
2015-12-04 08:38:42 -07:00
2015-12-13 14:30:59 -08:00
2015-11-13 20:34:33 -05:00
2016-05-31 15:26:37 -07:00