patch-2.2.16 linux/fs/proc/array.c
Next file: linux/fs/proc/generic.c
Previous file: linux/fs/ntfs/support.c
Back to the patch index
Back to the overall index
- Lines: 56
- Date:
Wed Jun 7 14:26:44 2000
- Orig file:
v2.2.15/linux/fs/proc/array.c
- Orig date:
Wed May 3 17:16:46 2000
diff -urN v2.2.15/linux/fs/proc/array.c linux/fs/proc/array.c
@@ -276,7 +276,8 @@
"disk_wblk %u %u %u %u\n"
"page %u %u\n"
#ifdef CONFIG_ARCH_S390
- "swap %u %u\n",
+ "swap %u %u\n"
+ "intr 1 0",
#else
"swap %u %u\n"
"intr %u",
@@ -291,7 +292,8 @@
"disk_wblk %u %u %u %u\n"
"page %u %u\n"
#ifdef CONFIG_ARCH_S390
- "swap %u %u\n",
+ "swap %u %u\n"
+ "intr 1 0",
#else
"swap %u %u\n"
"intr %u",
@@ -649,6 +651,26 @@
fp = rw->ins[6] + bias;
} while (++count < 16);
}
+#elif defined (__s390__)
+ {
+ unsigned long ksp, backchain, ip;
+ unsigned long stack_page;
+ int count = 0;
+
+ stack_page = (unsigned long)p;
+ ksp = p->tss.ksp;
+ if (!stack_page || ksp < stack_page || ksp >= 8188+stack_page)
+ return 0;
+ backchain = (*(unsigned long *) ksp) & 0x7fffffff;
+ do {
+ if (backchain < stack_page || backchain >= 8188+stack_page)
+ return 0;
+ ip = (*(unsigned long *) (backchain+56)) & 0x7fffffff;
+ if (ip < first_sched || ip >= last_sched)
+ return ip;
+ backchain = (*(unsigned long *) backchain) & 0x7fffffff;
+ } while (count++ < 16);
+ }
#endif
return 0;
@@ -1464,7 +1486,7 @@
case PROC_PID_CPU:
return 0;
}
- if ((current->fsuid == euid && ok) || capable(CAP_DAC_OVERRIDE))
+ if(capable(CAP_DAC_OVERRIDE) || (current->fsuid == euid && ok))
return 0;
return 1;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)