From 97f734fde22e64affd46c957d9184e536bcc1026 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Fri, 7 Nov 2008 14:46:30 +1100 Subject: [PATCH] A couple of bugfixes found by suse autobuilding: 1/ ia64 appear to have __clone2, not clone. 2/ Including "++" in the arg to a macro is a bad thing to do. Signed-off-by: NeilBrown --- mdmon.c | 14 +++++++++++++- super-intel.c | 6 ++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/mdmon.c b/mdmon.c index fa5a0df..5ee8346 100644 --- a/mdmon.c +++ b/mdmon.c @@ -79,13 +79,25 @@ int run_child(void *v) return 0; } -int clone_monitor(struct supertype *container) +#ifdef __ia64__ +int __clone2(int (*fn)(void *), + void *child_stack_base, size_t stack_size, + int flags, void *arg, ... + /* pid_t *pid, struct user_desc *tls, pid_t *ctid */ ); +#endif + int clone_monitor(struct supertype *container) { static char stack[4096]; +#ifdef __ia64__ + mon_tid = __clone2(run_child, stack, sizeof(stack), + CLONE_FS|CLONE_FILES|CLONE_VM|CLONE_SIGHAND|CLONE_THREAD, + container); +#else mon_tid = clone(run_child, stack+4096-64, CLONE_FS|CLONE_FILES|CLONE_VM|CLONE_SIGHAND|CLONE_THREAD, container); +#endif mgr_tid = syscall(SYS_gettid); diff --git a/super-intel.c b/super-intel.c index 34dfb8f..a2b9bd2 100644 --- a/super-intel.c +++ b/super-intel.c @@ -271,8 +271,10 @@ static __u32 __gen_imsm_checksum(struct imsm_super *mpb) __u32 *p = (__u32 *) mpb; __u32 sum = 0; - while (end--) - sum += __le32_to_cpu(*p++); + while (end--) { + sum += __le32_to_cpu(*p); + p++; + } return sum - __le32_to_cpu(mpb->check_sum); }