diff options
Diffstat (limited to 'include/linux/list_bl.h')
-rw-r--r-- | include/linux/list_bl.h | 5 |
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 | } |