--- zzzz-none-000/linux-3.10.107/include/linux/rculist.h 2017-06-27 09:49:32.000000000 +0000 +++ vr9-7490-729/linux-3.10.107/include/linux/rculist.h 2021-11-10 11:53:56.000000000 +0000 @@ -18,6 +18,24 @@ * be used anywhere you would want to use a list_empty_rcu(). */ +/* +++ + * AVM: backport from 3.15 */ +/* + * INIT_LIST_HEAD_RCU - Initialize a list_head visible to RCU readers + * @list: list to be initialized + * + * You should instead use INIT_LIST_HEAD() for normal initialization and + * cleanup tasks, when readers have no access to the list being initialized. + * However, if the list being initialized is visible to readers, you + * need to keep the compiler from being too mischievous. + */ +static inline void INIT_LIST_HEAD_RCU(struct list_head *list) +{ + ACCESS_ONCE(list->next) = list; + ACCESS_ONCE(list->prev) = list; +} +/* +++ */ + /* * return the ->next pointer of a list_head in an rcu safe * way, we must not access it directly