[PATCH] use smp_mb/wmb/rmb where possible
Replace a number of memory barriers with smp_ variants. This means we won't take the unnecessary hit on UP machines. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:

committed by
Linus Torvalds

parent
0d8d4d42f2
commit
d59dd4620f
20
kernel/sys.c
20
kernel/sys.c
@@ -525,7 +525,7 @@ asmlinkage long sys_setregid(gid_t rgid, gid_t egid)
|
||||
if (new_egid != old_egid)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
if (rgid != (gid_t) -1 ||
|
||||
(egid != (gid_t) -1 && egid != old_rgid))
|
||||
@@ -556,7 +556,7 @@ asmlinkage long sys_setgid(gid_t gid)
|
||||
if(old_egid != gid)
|
||||
{
|
||||
current->mm->dumpable=0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->gid = current->egid = current->sgid = current->fsgid = gid;
|
||||
}
|
||||
@@ -565,7 +565,7 @@ asmlinkage long sys_setgid(gid_t gid)
|
||||
if(old_egid != gid)
|
||||
{
|
||||
current->mm->dumpable=0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->egid = current->fsgid = gid;
|
||||
}
|
||||
@@ -596,7 +596,7 @@ static int set_user(uid_t new_ruid, int dumpclear)
|
||||
if(dumpclear)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->uid = new_ruid;
|
||||
return 0;
|
||||
@@ -653,7 +653,7 @@ asmlinkage long sys_setreuid(uid_t ruid, uid_t euid)
|
||||
if (new_euid != old_euid)
|
||||
{
|
||||
current->mm->dumpable=0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->fsuid = current->euid = new_euid;
|
||||
if (ruid != (uid_t) -1 ||
|
||||
@@ -703,7 +703,7 @@ asmlinkage long sys_setuid(uid_t uid)
|
||||
if (old_euid != uid)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->fsuid = current->euid = uid;
|
||||
current->suid = new_suid;
|
||||
@@ -748,7 +748,7 @@ asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid)
|
||||
if (euid != current->euid)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->euid = euid;
|
||||
}
|
||||
@@ -798,7 +798,7 @@ asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid)
|
||||
if (egid != current->egid)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->egid = egid;
|
||||
}
|
||||
@@ -845,7 +845,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
|
||||
if (uid != old_fsuid)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->fsuid = uid;
|
||||
}
|
||||
@@ -875,7 +875,7 @@ asmlinkage long sys_setfsgid(gid_t gid)
|
||||
if (gid != old_fsgid)
|
||||
{
|
||||
current->mm->dumpable = 0;
|
||||
wmb();
|
||||
smp_wmb();
|
||||
}
|
||||
current->fsgid = gid;
|
||||
key_fsgid_changed(current);
|
||||
|
Reference in New Issue
Block a user