diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/Makefile STABLE/linux-2.4.22-vs1.20/Makefile --- DEVEL/linux-2.4.22-vs1.1.6/Makefile Mon Dec 1 16:29:33 2003 +++ STABLE/linux-2.4.22-vs1.20/Makefile Thu Dec 4 20:06:13 2003 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 22 -EXTRAVERSION = -vs1.1.6 +EXTRAVERSION = -vs1.20 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/arch/parisc/kernel/sys_parisc32.c STABLE/linux-2.4.22-vs1.20/arch/parisc/kernel/sys_parisc32.c --- DEVEL/linux-2.4.22-vs1.1.6/arch/parisc/kernel/sys_parisc32.c Mon Dec 1 16:29:37 2003 +++ STABLE/linux-2.4.22-vs1.20/arch/parisc/kernel/sys_parisc32.c Fri Jun 13 16:51:31 2003 @@ -3046,18 +3046,13 @@ asmlinkage int sys32_sysinfo(struct sysi */ cli(); - if (vx_check(0, VX_ADMIN|VX_WATCH)) { - val.uptime = jiffies / HZ; - val.procs = nr_threads-1; - } else { - struct context_info *si = current->s_info; - val.uptime = (jiffies - si->bias_jiffies) / HZ; - val.procs = si->nr_threads; - } + val.uptime = jiffies / HZ; val.loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT); val.loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT); val.loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT); + + val.procs = nr_threads-1; sti(); si_meminfo(&val); diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/fs/proc/proc_misc.c STABLE/linux-2.4.22-vs1.20/fs/proc/proc_misc.c --- DEVEL/linux-2.4.22-vs1.1.6/fs/proc/proc_misc.c Mon Dec 1 16:29:37 2003 +++ STABLE/linux-2.4.22-vs1.20/fs/proc/proc_misc.c Mon Aug 25 13:44:43 2003 @@ -124,12 +124,6 @@ static int uptime_read_proc(char *page, uptime = jiffies; idle = init_tasks[0]->times.tms_utime + init_tasks[0]->times.tms_stime; - if (!vx_check(0, VX_ADMIN|VX_WATCH)) { - struct context_info *si = current->s_info; - - uptime -= si->bias_jiffies; - idle -= si->bias_idle; - } /* The formula for the fraction parts really is ((t * 100) / HZ) % 100, but that would overflow about every five days at HZ == 100. @@ -377,25 +371,14 @@ static int kstat_read_proc(char *page, c } } - if (vx_check(0, VX_ADMIN|VX_WATCH)) { - proc_sprintf(page, &off, &len, - "\nctxt %u\n" - "btime %lu\n" - "processes %lu\n", - kstat.context_swtch, - xtime.tv_sec - jif / HZ, - total_forks); - } else { - struct context_info *si = current->s_info; + proc_sprintf(page, &off, &len, + "\nctxt %u\n" + "btime %lu\n" + "processes %lu\n", + kstat.context_swtch, + xtime.tv_sec - jif / HZ, + total_forks); - proc_sprintf(page, &off, &len, - "\nctxt %u\n" - "btime %lu\n" - "processes %lu\n", - kstat.context_swtch - si->bias_cswtch, - xtime.tv_sec - jif / HZ + si->bias_jiffies / HZ, - si->total_forks); - } return proc_calc_metrics(page, start, off, count, eof, len); } diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/include/linux/sched.h STABLE/linux-2.4.22-vs1.20/include/linux/sched.h --- DEVEL/linux-2.4.22-vs1.1.6/include/linux/sched.h Mon Dec 1 16:29:37 2003 +++ STABLE/linux-2.4.22-vs1.20/include/linux/sched.h Thu Dec 4 20:08:15 2003 @@ -920,8 +920,6 @@ static inline void unhash_process(struct out_of_line_bug(); write_lock_irq(&tasklist_lock); nr_threads--; - if (p->s_info) - p->s_info->nr_threads--; unhash_pid(p); REMOVE_LINKS(p); list_del(&p->thread_group); diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/include/linux/vswitch.h STABLE/linux-2.4.22-vs1.20/include/linux/vswitch.h --- DEVEL/linux-2.4.22-vs1.1.6/include/linux/vswitch.h Mon Dec 1 16:29:34 2003 +++ STABLE/linux-2.4.22-vs1.20/include/linux/vswitch.h Thu Dec 4 20:08:26 2003 @@ -57,7 +57,7 @@ /* interface version */ -#define VCI_VERSION 0x00010003 +#define VCI_VERSION 0x00010004 diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/kernel/fork.c STABLE/linux-2.4.22-vs1.20/kernel/fork.c --- DEVEL/linux-2.4.22-vs1.1.6/kernel/fork.c Mon Dec 1 16:29:37 2003 +++ STABLE/linux-2.4.22-vs1.20/kernel/fork.c Thu Dec 4 20:06:16 2003 @@ -812,8 +812,6 @@ int do_fork(unsigned long clone_flags, u SET_LINKS(p); hash_pid(p); nr_threads++; - if (p->s_info) - p->s_info->nr_threads++; write_unlock_irq(&tasklist_lock); if (p->ptrace & PT_PTRACED) @@ -821,8 +819,6 @@ int do_fork(unsigned long clone_flags, u wake_up_process(p); /* do this last */ ++total_forks; - if (p->s_info) - p->s_info->total_forks++; if (clone_flags & CLONE_VFORK) wait_for_completion(&vfork); diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/kernel/info.c STABLE/linux-2.4.22-vs1.20/kernel/info.c --- DEVEL/linux-2.4.22-vs1.1.6/kernel/info.c Mon Dec 1 16:29:37 2003 +++ STABLE/linux-2.4.22-vs1.20/kernel/info.c Sat Apr 21 01:15:40 2001 @@ -20,19 +20,13 @@ asmlinkage long sys_sysinfo(struct sysin memset((char *)&val, 0, sizeof(struct sysinfo)); cli(); - if (vx_check(0, VX_ADMIN|VX_WATCH)) { - val.uptime = jiffies / HZ; - val.procs = nr_threads-1; - } else { - struct context_info *si = current->s_info; - - val.uptime = (jiffies - si->bias_jiffies) / HZ; - val.procs = si->nr_threads; - } + val.uptime = jiffies / HZ; val.loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT); val.loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT); val.loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT); + + val.procs = nr_threads-1; sti(); si_meminfo(&val); diff -NurpP --minimal DEVEL/linux-2.4.22-vs1.1.6/kernel/vcontext.c STABLE/linux-2.4.22-vs1.20/kernel/vcontext.c --- DEVEL/linux-2.4.22-vs1.1.6/kernel/vcontext.c Mon Dec 1 16:29:34 2003 +++ STABLE/linux-2.4.22-vs1.20/kernel/vcontext.c Thu Dec 4 20:06:16 2003 @@ -71,7 +71,7 @@ int vc_ctx_kill(uint32_t id, void *data) if (tg) p = tg; } - if (p->vx_id == id) + if ((id == -1) || (p->vx_id == id)) retval = send_sig_info(vc_data.sig, &info, p); } break;