diff options
author | NeilBrown <neilb@suse.de> | 2008-11-07 14:46:30 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2008-11-07 14:46:30 +1100 |
commit | 97f734fde22e64affd46c957d9184e536bcc1026 (patch) | |
tree | cc0066d4088c9467c42464eee2796e123b8e834b | |
parent | 1679bef2eeb641b77d72bf20e9fbbd555cc0a1cb (diff) | |
download | mdadm-97f734fde22e64affd46c957d9184e536bcc1026.tar.gz |
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 <neilb@suse.de>
-rw-r--r-- | mdmon.c | 14 | ||||
-rw-r--r-- | super-intel.c | 6 |
2 files changed, 17 insertions, 3 deletions
@@ -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); } |