git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cpumask: fix compat getaffinity
[safe/jmp/linux-2.6]
/
kernel
/
user-return-notifier.c
diff --git
a/kernel/user-return-notifier.c
b/kernel/user-return-notifier.c
index
530ccb8
..
eb27fd3
100644
(file)
--- a/
kernel/user-return-notifier.c
+++ b/
kernel/user-return-notifier.c
@@
-6,8
+6,6
@@
static DEFINE_PER_CPU(struct hlist_head, return_notifier_list);
static DEFINE_PER_CPU(struct hlist_head, return_notifier_list);
-#define URN_LIST_HEAD per_cpu(return_notifier_list, raw_smp_processor_id())
-
/*
* Request a notification when the current cpu returns to userspace. Must be
* called in atomic context. The notifier will also be called in atomic
/*
* Request a notification when the current cpu returns to userspace. Must be
* called in atomic context. The notifier will also be called in atomic
@@
-16,7
+14,7
@@
static DEFINE_PER_CPU(struct hlist_head, return_notifier_list);
void user_return_notifier_register(struct user_return_notifier *urn)
{
set_tsk_thread_flag(current, TIF_USER_RETURN_NOTIFY);
void user_return_notifier_register(struct user_return_notifier *urn)
{
set_tsk_thread_flag(current, TIF_USER_RETURN_NOTIFY);
- hlist_add_head(&urn->link, &
URN_LIST_HEAD
);
+ hlist_add_head(&urn->link, &
__get_cpu_var(return_notifier_list)
);
}
EXPORT_SYMBOL_GPL(user_return_notifier_register);
}
EXPORT_SYMBOL_GPL(user_return_notifier_register);
@@
-27,7
+25,7
@@
EXPORT_SYMBOL_GPL(user_return_notifier_register);
void user_return_notifier_unregister(struct user_return_notifier *urn)
{
hlist_del(&urn->link);
void user_return_notifier_unregister(struct user_return_notifier *urn)
{
hlist_del(&urn->link);
- if (hlist_empty(&
URN_LIST_HEAD
))
+ if (hlist_empty(&
__get_cpu_var(return_notifier_list)
))
clear_tsk_thread_flag(current, TIF_USER_RETURN_NOTIFY);
}
EXPORT_SYMBOL_GPL(user_return_notifier_unregister);
clear_tsk_thread_flag(current, TIF_USER_RETURN_NOTIFY);
}
EXPORT_SYMBOL_GPL(user_return_notifier_unregister);
@@
-42,5
+40,5
@@
void fire_user_return_notifiers(void)
head = &get_cpu_var(return_notifier_list);
hlist_for_each_entry_safe(urn, tmp1, tmp2, head, link)
urn->on_user_return(urn);
head = &get_cpu_var(return_notifier_list);
hlist_for_each_entry_safe(urn, tmp1, tmp2, head, link)
urn->on_user_return(urn);
- put_cpu_var();
+ put_cpu_var(
return_notifier_list
);
}
}