aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/list_bl.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/list_bl.h')
-rw-r--r--include/linux/list_bl.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/list_bl.h b/include/linux/list_bl.h
index 2eb88556c5c5..8132214e8efd 100644
--- a/include/linux/list_bl.h
+++ b/include/linux/list_bl.h
@@ -93,9 +93,10 @@ static inline void __hlist_bl_del(struct hlist_bl_node *n)
93 LIST_BL_BUG_ON((unsigned long)n & LIST_BL_LOCKMASK); 93 LIST_BL_BUG_ON((unsigned long)n & LIST_BL_LOCKMASK);
94 94
95 /* pprev may be `first`, so be careful not to lose the lock bit */ 95 /* pprev may be `first`, so be careful not to lose the lock bit */
96 *pprev = (struct hlist_bl_node *) 96 WRITE_ONCE(*pprev,
97 (struct hlist_bl_node *)
97 ((unsigned long)next | 98 ((unsigned long)next |
98 ((unsigned long)*pprev & LIST_BL_LOCKMASK)); 99 ((unsigned long)*pprev & LIST_BL_LOCKMASK)));
99 if (next) 100 if (next)
100 next->pprev = pprev; 101 next->pprev = pprev;
101} 102}