aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/list.h4
-rw-r--r--include/linux/list_bl.h2
-rw-r--r--include/linux/list_nulls.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/list.h b/include/linux/list.h
index d7e31fe398b3..06c2d887a918 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -186,7 +186,7 @@ static inline int list_is_last(const struct list_head *list,
186 */ 186 */
187static inline int list_empty(const struct list_head *head) 187static inline int list_empty(const struct list_head *head)
188{ 188{
189 return head->next == head; 189 return READ_ONCE(head->next) == head;
190} 190}
191 191
192/** 192/**
@@ -608,7 +608,7 @@ static inline int hlist_unhashed(const struct hlist_node *h)
608 608
609static inline int hlist_empty(const struct hlist_head *h) 609static inline int hlist_empty(const struct hlist_head *h)
610{ 610{
611 return !h->first; 611 return !READ_ONCE(h->first);
612} 612}
613 613
614static inline void __hlist_del(struct hlist_node *n) 614static inline void __hlist_del(struct hlist_node *n)
diff --git a/include/linux/list_bl.h b/include/linux/list_bl.h
index 8132214e8efd..ee7229a6c06a 100644
--- a/include/linux/list_bl.h
+++ b/include/linux/list_bl.h
@@ -70,7 +70,7 @@ static inline void hlist_bl_set_first(struct hlist_bl_head *h,
70 70
71static inline int hlist_bl_empty(const struct hlist_bl_head *h) 71static inline int hlist_bl_empty(const struct hlist_bl_head *h)
72{ 72{
73 return !((unsigned long)h->first & ~LIST_BL_LOCKMASK); 73 return !((unsigned long)READ_ONCE(h->first) & ~LIST_BL_LOCKMASK);
74} 74}
75 75
76static inline void hlist_bl_add_head(struct hlist_bl_node *n, 76static inline void hlist_bl_add_head(struct hlist_bl_node *n,
diff --git a/include/linux/list_nulls.h b/include/linux/list_nulls.h
index 444d2b1313bd..b01fe1009084 100644
--- a/include/linux/list_nulls.h
+++ b/include/linux/list_nulls.h
@@ -57,7 +57,7 @@ static inline int hlist_nulls_unhashed(const struct hlist_nulls_node *h)
57 57
58static inline int hlist_nulls_empty(const struct hlist_nulls_head *h) 58static inline int hlist_nulls_empty(const struct hlist_nulls_head *h)
59{ 59{
60 return is_a_nulls(h->first); 60 return is_a_nulls(READ_ONCE(h->first));
61} 61}
62 62
63static inline void hlist_nulls_add_head(struct hlist_nulls_node *n, 63static inline void hlist_nulls_add_head(struct hlist_nulls_node *n,