git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] replace cad_pid by a struct pid
[pandora-kernel.git]
/
kernel
/
sys.c
diff --git
a/kernel/sys.c
b/kernel/sys.c
index
3f89477
..
2314867
100644
(file)
--- a/
kernel/sys.c
+++ b/
kernel/sys.c
@@
-92,7
+92,8
@@
EXPORT_SYMBOL(fs_overflowgid);
*/
int C_A_D = 1;
*/
int C_A_D = 1;
-int cad_pid = 1;
+struct pid *cad_pid;
+EXPORT_SYMBOL(cad_pid);
/*
* Notifier list for kernel code which wants to be called
/*
* Notifier list for kernel code which wants to be called
@@
-221,7
+222,7
@@
EXPORT_SYMBOL_GPL(atomic_notifier_chain_unregister);
* of the last notifier function called.
*/
* of the last notifier function called.
*/
-int atomic_notifier_call_chain(struct atomic_notifier_head *nh,
+int
__kprobes
atomic_notifier_call_chain(struct atomic_notifier_head *nh,
unsigned long val, void *v)
{
int ret;
unsigned long val, void *v)
{
int ret;
@@
-607,12
+608,10
@@
static void kernel_restart_prepare(char *cmd)
void kernel_restart(char *cmd)
{
kernel_restart_prepare(cmd);
void kernel_restart(char *cmd)
{
kernel_restart_prepare(cmd);
- if (!cmd)
{
+ if (!cmd)
printk(KERN_EMERG "Restarting system.\n");
printk(KERN_EMERG "Restarting system.\n");
- } else {
+ else
printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd);
printk(KERN_EMERG "Restarting system with command '%s'.\n", cmd);
- }
- printk(".\n");
machine_restart(cmd);
}
EXPORT_SYMBOL_GPL(kernel_restart);
machine_restart(cmd);
}
EXPORT_SYMBOL_GPL(kernel_restart);
@@
-628,9
+627,8
@@
static void kernel_kexec(void)
#ifdef CONFIG_KEXEC
struct kimage *image;
image = xchg(&kexec_image, NULL);
#ifdef CONFIG_KEXEC
struct kimage *image;
image = xchg(&kexec_image, NULL);
- if (!image)
{
+ if (!image)
return;
return;
- }
kernel_restart_prepare(NULL);
printk(KERN_EMERG "Starting new kernel\n");
machine_shutdown();
kernel_restart_prepare(NULL);
printk(KERN_EMERG "Starting new kernel\n");
machine_shutdown();
@@
-776,10
+774,9
@@
void ctrl_alt_del(void)
if (C_A_D)
schedule_work(&cad_work);
else
if (C_A_D)
schedule_work(&cad_work);
else
- kill_
proc(cad_pid,
SIGINT, 1);
+ kill_
cad_pid(
SIGINT, 1);
}
}
-
/*
* Unprivileged users may change the real gid to the effective gid
* or vice versa. (BSD-style)
/*
* Unprivileged users may change the real gid to the effective gid
* or vice versa. (BSD-style)
@@
-824,12
+821,10
@@
asmlinkage long sys_setregid(gid_t rgid, gid_t egid)
(current->sgid == egid) ||
capable(CAP_SETGID))
new_egid = egid;
(current->sgid == egid) ||
capable(CAP_SETGID))
new_egid = egid;
- else
{
+ else
return -EPERM;
return -EPERM;
- }
}
}
- if (new_egid != old_egid)
- {
+ if (new_egid != old_egid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-858,19
+853,14
@@
asmlinkage long sys_setgid(gid_t gid)
if (retval)
return retval;
if (retval)
return retval;
- if (capable(CAP_SETGID))
- {
- if(old_egid != gid)
- {
+ if (capable(CAP_SETGID)) {
+ if (old_egid != gid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->gid = current->egid = current->sgid = current->fsgid = gid;
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->gid = current->egid = current->sgid = current->fsgid = gid;
- }
- else if ((gid == current->gid) || (gid == current->sgid))
- {
- if(old_egid != gid)
- {
+ } else if ((gid == current->gid) || (gid == current->sgid)) {
+ if (old_egid != gid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-901,8
+891,7
@@
static int set_user(uid_t new_ruid, int dumpclear)
switch_uid(new_user);
switch_uid(new_user);
- if(dumpclear)
- {
+ if (dumpclear) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-958,8
+947,7
@@
asmlinkage long sys_setreuid(uid_t ruid, uid_t euid)
if (new_ruid != old_ruid && set_user(new_ruid, new_euid != old_euid) < 0)
return -EAGAIN;
if (new_ruid != old_ruid && set_user(new_ruid, new_euid != old_euid) < 0)
return -EAGAIN;
- if (new_euid != old_euid)
- {
+ if (new_euid != old_euid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-1009,8
+997,7
@@
asmlinkage long sys_setuid(uid_t uid)
} else if ((uid != current->uid) && (uid != new_suid))
return -EPERM;
} else if ((uid != current->uid) && (uid != new_suid))
return -EPERM;
- if (old_euid != uid)
- {
+ if (old_euid != uid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-1055,8
+1042,7
@@
asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid)
return -EAGAIN;
}
if (euid != (uid_t) -1) {
return -EAGAIN;
}
if (euid != (uid_t) -1) {
- if (euid != current->euid)
- {
+ if (euid != current->euid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-1106,8
+1092,7
@@
asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid)
return -EPERM;
}
if (egid != (gid_t) -1) {
return -EPERM;
}
if (egid != (gid_t) -1) {
- if (egid != current->egid)
- {
+ if (egid != current->egid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-1152,10
+1137,8
@@
asmlinkage long sys_setfsuid(uid_t uid)
if (uid == current->uid || uid == current->euid ||
uid == current->suid || uid == current->fsuid ||
if (uid == current->uid || uid == current->euid ||
uid == current->suid || uid == current->fsuid ||
- capable(CAP_SETUID))
- {
- if (uid != old_fsuid)
- {
+ capable(CAP_SETUID)) {
+ if (uid != old_fsuid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-1183,10
+1166,8
@@
asmlinkage long sys_setfsgid(gid_t gid)
if (gid == current->gid || gid == current->egid ||
gid == current->sgid || gid == current->fsgid ||
if (gid == current->gid || gid == current->egid ||
gid == current->sgid || gid == current->fsgid ||
- capable(CAP_SETGID))
- {
- if (gid != old_fsgid)
- {
+ capable(CAP_SETGID)) {
+ if (gid != old_fsgid) {
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
current->mm->dumpable = suid_dumpable;
smp_wmb();
}
@@
-1322,9
+1303,9
@@
out:
asmlinkage long sys_getpgid(pid_t pid)
{
asmlinkage long sys_getpgid(pid_t pid)
{
- if (!pid)
{
+ if (!pid)
return process_group(current);
return process_group(current);
-
}
else {
+ else {
int retval;
struct task_struct *p;
int retval;
struct task_struct *p;
@@
-1354,9
+1335,9
@@
asmlinkage long sys_getpgrp(void)
asmlinkage long sys_getsid(pid_t pid)
{
asmlinkage long sys_getsid(pid_t pid)
{
- if (!pid)
{
+ if (!pid)
return current->signal->session;
return current->signal->session;
-
}
else {
+ else {
int retval;
struct task_struct *p;
int retval;
struct task_struct *p;
@@
-1364,7
+1345,7
@@
asmlinkage long sys_getsid(pid_t pid)
p = find_task_by_pid(pid);
retval = -ESRCH;
p = find_task_by_pid(pid);
retval = -ESRCH;
- if(p) {
+ if
(p) {
retval = security_task_getsid(p);
if (!retval)
retval = p->signal->session;
retval = security_task_getsid(p);
if (!retval)
retval = p->signal->session;
@@
-1432,9
+1413,9
@@
struct group_info *groups_alloc(int gidsetsize)
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);
group_info->nblocks = nblocks;
atomic_set(&group_info->usage, 1);
- if (gidsetsize <= NGROUPS_SMALL)
{
+ if (gidsetsize <= NGROUPS_SMALL)
group_info->blocks[0] = group_info->small_block;
group_info->blocks[0] = group_info->small_block;
-
}
else {
+ else {
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
for (i = 0; i < nblocks; i++) {
gid_t *b;
b = (void *)__get_free_page(GFP_USER);
@@
-1490,7
+1471,7
@@
static int groups_to_user(gid_t __user *grouplist,
/* fill a group_info from a user-space array - it must be allocated already */
static int groups_from_user(struct group_info *group_info,
gid_t __user *grouplist)
/* fill a group_info from a user-space array - it must be allocated already */
static int groups_from_user(struct group_info *group_info,
gid_t __user *grouplist)
-
{
+{
int i;
int count = group_info->ngroups;
int i;
int count = group_info->ngroups;
@@
-1648,9
+1629,8
@@
asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist)
int in_group_p(gid_t grp)
{
int retval = 1;
int in_group_p(gid_t grp)
{
int retval = 1;
- if (grp != current->fsgid)
{
+ if (grp != current->fsgid)
retval = groups_search(current->group_info, grp);
retval = groups_search(current->group_info, grp);
- }
return retval;
}
return retval;
}
@@
-1659,9
+1639,8
@@
EXPORT_SYMBOL(in_group_p);
int in_egroup_p(gid_t grp)
{
int retval = 1;
int in_egroup_p(gid_t grp)
{
int retval = 1;
- if (grp != current->egid)
{
+ if (grp != current->egid)
retval = groups_search(current->group_info, grp);
retval = groups_search(current->group_info, grp);
- }
return retval;
}
return retval;
}
@@
-1676,7
+1655,7
@@
asmlinkage long sys_newuname(struct new_utsname __user * name)
int errno = 0;
down_read(&uts_sem);
int errno = 0;
down_read(&uts_sem);
- if (copy_to_user(name,
&system_utsname,
sizeof *name))
+ if (copy_to_user(name,
utsname(),
sizeof *name))
errno = -EFAULT;
up_read(&uts_sem);
return errno;
errno = -EFAULT;
up_read(&uts_sem);
return errno;
@@
-1694,8
+1673,8
@@
asmlinkage long sys_sethostname(char __user *name, int len)
down_write(&uts_sem);
errno = -EFAULT;
if (!copy_from_user(tmp, name, len)) {
down_write(&uts_sem);
errno = -EFAULT;
if (!copy_from_user(tmp, name, len)) {
- memcpy(
system_utsname.
nodename, tmp, len);
-
system_utsname.
nodename[len] = 0;
+ memcpy(
utsname()->
nodename, tmp, len);
+
utsname()->
nodename[len] = 0;
errno = 0;
}
up_write(&uts_sem);
errno = 0;
}
up_write(&uts_sem);
@@
-1711,11
+1690,11
@@
asmlinkage long sys_gethostname(char __user *name, int len)
if (len < 0)
return -EINVAL;
down_read(&uts_sem);
if (len < 0)
return -EINVAL;
down_read(&uts_sem);
- i = 1 + strlen(
system_utsname.
nodename);
+ i = 1 + strlen(
utsname()->
nodename);
if (i > len)
i = len;
errno = 0;
if (i > len)
i = len;
errno = 0;
- if (copy_to_user(name,
system_utsname.
nodename, i))
+ if (copy_to_user(name,
utsname()->
nodename, i))
errno = -EFAULT;
up_read(&uts_sem);
return errno;
errno = -EFAULT;
up_read(&uts_sem);
return errno;
@@
-1740,8
+1719,8
@@
asmlinkage long sys_setdomainname(char __user *name, int len)
down_write(&uts_sem);
errno = -EFAULT;
if (!copy_from_user(tmp, name, len)) {
down_write(&uts_sem);
errno = -EFAULT;
if (!copy_from_user(tmp, name, len)) {
- memcpy(
system_utsname.
domainname, tmp, len);
-
system_utsname.
domainname[len] = 0;
+ memcpy(
utsname()->
domainname, tmp, len);
+
utsname()->
domainname[len] = 0;
errno = 0;
}
up_write(&uts_sem);
errno = 0;
}
up_write(&uts_sem);
@@
-1776,9
+1755,9
@@
asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *r
task_lock(current->group_leader);
x = current->signal->rlim[resource];
task_unlock(current->group_leader);
task_lock(current->group_leader);
x = current->signal->rlim[resource];
task_unlock(current->group_leader);
- if(x.rlim_cur > 0x7FFFFFFF)
+ if
(x.rlim_cur > 0x7FFFFFFF)
x.rlim_cur = 0x7FFFFFFF;
x.rlim_cur = 0x7FFFFFFF;
- if(x.rlim_max > 0x7FFFFFFF)
+ if
(x.rlim_max > 0x7FFFFFFF)
x.rlim_max = 0x7FFFFFFF;
return copy_to_user(rlim, &x, sizeof(x))?-EFAULT:0;
}
x.rlim_max = 0x7FFFFFFF;
return copy_to_user(rlim, &x, sizeof(x))?-EFAULT:0;
}
@@
-2084,12
+2063,12
@@
asmlinkage long sys_getcpu(unsigned __user *cpup, unsigned __user *nodep,
* padding
*/
unsigned long t0, t1;
* padding
*/
unsigned long t0, t1;
- get_user(t0, &cache->
t0
);
- get_user(t1, &cache->
t1
);
+ get_user(t0, &cache->
blob[0]
);
+ get_user(t1, &cache->
blob[1]
);
t0++;
t1++;
t0++;
t1++;
- put_user(t0, &cache->
t0
);
- put_user(t1, &cache->
t1
);
+ put_user(t0, &cache->
blob[0]
);
+ put_user(t1, &cache->
blob[1]
);
}
return err ? -EFAULT : 0;
}
}
return err ? -EFAULT : 0;
}