summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorDavid S. Miller <davem@picasso.davemloft.net>2005-03-05 04:48:01 -0800
committerDavid S. Miller <davem@picasso.davemloft.net>2005-03-05 04:48:01 -0800
commitaa02c666ed857ef288db07cfa146d0da867645a5 (patch)
tree26f1dfff2c3756d9090a048834140fe3855b4f5e /kernel
parent9ebe3d6ea6848ed70c224ca33cd581a5ea1772be (diff)
parent58a96a605ee4e5d573bec35c73bb6d015171cc16 (diff)
Merge davem@nuts:/disk1/BK/set_pte-2.6
into picasso.davemloft.net:/home/davem/src/BK/set_pte-2.6
Diffstat (limited to 'kernel')
-rw-r--r--kernel/acct.c4
-rw-r--r--kernel/audit.c6
-rw-r--r--kernel/exit.c4
-rw-r--r--kernel/sched.c5
-rw-r--r--kernel/sysctl.c11
5 files changed, 22 insertions, 8 deletions
diff --git a/kernel/acct.c b/kernel/acct.c
index 32e39accbb86..78ed87b13de6 100644
--- a/kernel/acct.c
+++ b/kernel/acct.c
@@ -534,10 +534,8 @@ void acct_process(long exitcode)
* acct_update_integrals
* - update mm integral fields in task_struct
*/
-void acct_update_integrals(void)
+void acct_update_integrals(struct task_struct *tsk)
{
- struct task_struct *tsk = current;
-
if (likely(tsk->mm)) {
long delta = tsk->stime - tsk->acct_stimexpd;
diff --git a/kernel/audit.c b/kernel/audit.c
index 9b48512a4cf5..9e9471002eae 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -360,7 +360,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
status_set.backlog_limit = audit_backlog_limit;
status_set.lost = atomic_read(&audit_lost);
status_set.backlog = atomic_read(&audit_backlog);
- audit_send_reply(pid, seq, AUDIT_GET, 0, 0,
+ audit_send_reply(NETLINK_CB(skb).pid, seq, AUDIT_GET, 0, 0,
&status_set, sizeof(status_set));
break;
case AUDIT_SET:
@@ -407,8 +407,8 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
/* fallthrough */
case AUDIT_LIST:
#ifdef CONFIG_AUDITSYSCALL
- err = audit_receive_filter(nlh->nlmsg_type, pid, uid, seq,
- data);
+ err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid,
+ uid, seq, data);
#else
err = -EOPNOTSUPP;
#endif
diff --git a/kernel/exit.c b/kernel/exit.c
index f40a50f69850..4173fa7536dc 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -806,8 +806,8 @@ fastcall NORET_TYPE void do_exit(long code)
current->comm, current->pid,
preempt_count());
- acct_update_integrals();
- update_mem_hiwater();
+ acct_update_integrals(tsk);
+ update_mem_hiwater(tsk);
group_dead = atomic_dec_and_test(&tsk->signal->live);
if (group_dead)
acct_process(code);
diff --git a/kernel/sched.c b/kernel/sched.c
index 95042b27d30c..f32101f5e31a 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -45,6 +45,7 @@
#include <linux/seq_file.h>
#include <linux/syscalls.h>
#include <linux/times.h>
+#include <linux/acct.h>
#include <asm/tlb.h>
#include <asm/unistd.h>
@@ -2379,6 +2380,10 @@ void account_system_time(struct task_struct *p, int hardirq_offset,
cpustat->iowait = cputime64_add(cpustat->iowait, tmp);
else
cpustat->idle = cputime64_add(cpustat->idle, tmp);
+ /* Account for system time used */
+ acct_update_integrals(p);
+ /* Update rss highwater mark */
+ update_mem_hiwater(p);
}
/*
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index a72dd5677c8f..cc93403f27a7 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -121,6 +121,8 @@ extern int sysctl_hz_timer;
extern int acct_parm[];
#endif
+int randomize_va_space = 1;
+
static int parse_table(int __user *, int, void __user *, size_t __user *, void __user *, size_t,
ctl_table *, void **);
static int proc_doutsstring(ctl_table *table, int write, struct file *filp,
@@ -632,6 +634,15 @@ static ctl_table kern_table[] = {
.proc_handler = &proc_dointvec,
},
#endif
+ {
+ .ctl_name = KERN_RANDOMIZE,
+ .procname = "randomize_va_space",
+ .data = &randomize_va_space,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
+
{ .ctl_name = 0 }
};