list barriers smp-only
PATCH 1/1 list barriers smp-only
This patch makes the list macros use smp-only version of the barriers, no need to hurt UP performance. It got dropped from my list of things to push long ago.
Thanks
Dipankar
include/linux/list.h +4 -4
@@ -84,7 +84,7 @@ { new->next = next; new->prev = prev; -wmb (); +smp_wmb (); next->prev = new; prev->next = new; }
@@ -303,11 +303,11 @@*/ #define list_for_each_rcu (pos, head) \ for (pos = (head)->next, prefetch(pos->next); pos != (head); \ - pos = pos->next, ({ read_barrier_depends(); 0;}), prefetch(pos->next)) + pos = pos->next, ({ smp_read_barrier_depends(); 0;}), prefetch(pos->next))#define __list_for_each_rcu (pos, head) \ for (pos = (head)->next; pos != (head); \ - pos = pos->next, ({ read_barrier_depends(); 0;})) + pos = pos->next, ({ smp_read_barrier_depends(); 0;}))/** * list_for_each_safe_rcu - iterate over an rcu-protected list safe
@@ -318,7 +318,7 @@*/ #define list_for_each_safe_rcu (pos, n, head) \ for (pos = (head)->next, n = pos->next; pos != (head); \ - pos = n, ({ read_barrier_depends(); 0;}), n = pos->next) + pos = n, ({ smp_read_barrier_depends(); 0;}), n = pos->next)/* * Double linked lists with a single pointer list head.