From fd5d8bf03a9843ec3cdb10c820f409aa04048b52 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 21 May 2007 11:25:20 +0200 Subject: [S390] Wire up sys_utimensat. Wire up sys_utimensat, reserve syscall number for sys_fallocate and add a couple of syscalls to the ignore list to get rid of warings. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/compat_wrapper.S | 8 ++++++++ arch/s390/kernel/syscalls.S | 2 ++ 2 files changed, 10 insertions(+) (limited to 'arch/s390') diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 32a69a18a79..5c7b4b6ab2b 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S @@ -1682,3 +1682,11 @@ compat_sys_utimes_wrapper: llgtr %r2,%r2 # char * llgtr %r3,%r3 # struct compat_timeval * jg compat_sys_utimes + + .globl compat_sys_utimensat_wrapper +compat_sys_utimensat_wrapper: + llgfr %r2,%r2 # unsigned int + llgtr %r3,%r3 # char * + llgtr %r4,%r4 # struct compat_timespec * + lgfr %r5,%r5 # int + jg compat_sys_utimensat diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index cd8d321cd0c..1aeae6d8394 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S @@ -322,3 +322,5 @@ NI_SYSCALL /* 310 sys_move_pages */ SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) +NI_SYSCALL /* 314 sys_fallocate */ +SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ -- cgit v1.2.3 From 913f11ee48edfa78b531e0db9385b640fbf9f6d7 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 21 May 2007 11:25:21 +0200 Subject: [S390] Wire up signald, timerfd and eventfd syscalls. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/compat_wrapper.S | 20 ++++++++++++++++++++ arch/s390/kernel/syscalls.S | 3 +++ 2 files changed, 23 insertions(+) (limited to 'arch/s390') diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 5c7b4b6ab2b..acc415457b4 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S @@ -1690,3 +1690,23 @@ compat_sys_utimensat_wrapper: llgtr %r4,%r4 # struct compat_timespec * lgfr %r5,%r5 # int jg compat_sys_utimensat + + .globl compat_sys_signalfd_wrapper +compat_sys_signalfd_wrapper: + lgfr %r2,%r2 # int + llgtr %r3,%r3 # compat_sigset_t * + llgfr %r4,%r4 # compat_size_t + jg compat_sys_signalfd + + .globl compat_sys_timerfd_wrapper +compat_sys_timerfd_wrapper: + lgfr %r2,%r2 # int + lgfr %r3,%r3 # int + lgfr %r4,%r4 # int + llgtr %r5,%r5 # struct compat_itimerspec * + jg compat_sys_timerfd + + .globl sys_eventfd_wrapper +sys_eventfd_wrapper: + llgfr %r2,%r2 # unsigned int + jg sys_eventfd diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 1aeae6d8394..738feb4a0aa 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S @@ -324,3 +324,6 @@ SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) NI_SYSCALL /* 314 sys_fallocate */ SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ +SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) +SYSCALL(sys_timerfd,sys_timerfd,compat_sys_timerfd_wrapper) +SYSCALL(sys_eventfd,sys_eventfd,sys_eventfd_wrapper) -- cgit v1.2.3 From a5a60a2beea07c23e242ad8e7398e761935d669a Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 21 May 2007 11:25:22 +0200 Subject: [S390] Make use of kretprobe_assert. s390 change for git commit 0f95b7fc839bc3272b1bf2325d8748a649bd3534. That is print kprobes debug data before BUG(). Cc: Ananth N Mavinakayanahalli Cc: Maneesh Soni Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- arch/s390/kernel/kprobes.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/s390') diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index e39333ae0fc..358d2bbbc48 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c @@ -413,7 +413,7 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p, break; } } - BUG_ON(!orig_ret_address || (orig_ret_address == trampoline_address)); + kretprobe_assert(ri, orig_ret_address, trampoline_address); regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE; reset_current_kprobe(); -- cgit v1.2.3 From be2864b5ee46e0d5ed626de6cbfeb9abbd9c2e6f Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Mon, 21 May 2007 11:25:23 +0200 Subject: [S390] More verbose show_mem() like other architectures. Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky --- arch/s390/mm/init.c | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'arch/s390') diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 916b72a8cde..9098531a267 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c @@ -61,30 +61,38 @@ void diag10(unsigned long addr) void show_mem(void) { - int i, total = 0, reserved = 0; - int shared = 0, cached = 0; + int i, total = 0, reserved = 0; + int shared = 0, cached = 0; struct page *page; - printk("Mem-info:\n"); - show_free_areas(); - printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); - i = max_mapnr; - while (i-- > 0) { + printk("Mem-info:\n"); + show_free_areas(); + printk("Free swap: %6ldkB\n", nr_swap_pages << (PAGE_SHIFT - 10)); + i = max_mapnr; + while (i-- > 0) { if (!pfn_valid(i)) continue; page = pfn_to_page(i); - total++; + total++; if (PageReserved(page)) - reserved++; + reserved++; else if (PageSwapCache(page)) - cached++; + cached++; else if (page_count(page)) shared += page_count(page) - 1; - } - printk("%d pages of RAM\n",total); - printk("%d reserved pages\n",reserved); - printk("%d pages shared\n",shared); - printk("%d pages swap cached\n",cached); + } + printk("%d pages of RAM\n", total); + printk("%d reserved pages\n", reserved); + printk("%d pages shared\n", shared); + printk("%d pages swap cached\n", cached); + + printk("%lu pages dirty\n", global_page_state(NR_FILE_DIRTY)); + printk("%lu pages writeback\n", global_page_state(NR_WRITEBACK)); + printk("%lu pages mapped\n", global_page_state(NR_FILE_MAPPED)); + printk("%lu pages slab\n", + global_page_state(NR_SLAB_RECLAIMABLE) + + global_page_state(NR_SLAB_UNRECLAIMABLE)); + printk("%lu pages pagetables\n", global_page_state(NR_PAGETABLE)); } static void __init setup_ro_region(void) -- cgit v1.2.3