2006-08-16 09:01:12

by Roland McGrath

[permalink] [raw]
Subject: [PATCH] kexec warning fix


This fixes a couple of compiler warnings, and adds paranoia checks to boot.

Signed-off-by: Roland McGrath <[email protected]>
---
kernel/kexec.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/kexec.c b/kernel/kexec.c
index 50087ec..989c7cd 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -995,7 +995,8 @@ asmlinkage long sys_kexec_load(unsigned
image = xchg(dest_image, image);

out:
- xchg(&kexec_lock, 0); /* Release the mutex */
+ locked = xchg(&kexec_lock, 0); /* Release the mutex */
+ BUG_ON(!locked);
kimage_free(image);

return result;
@@ -1061,7 +1062,8 @@ void crash_kexec(struct pt_regs *regs)
machine_crash_shutdown(&fixed_regs);
machine_kexec(kexec_crash_image);
}
- xchg(&kexec_lock, 0);
+ locked = xchg(&kexec_lock, 0);
+ BUG_ON(!locked);
}
}


2006-08-16 10:26:11

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH] kexec warning fix

On Wed, Aug 16, 2006 at 02:01:05AM -0700, Roland McGrath wrote:
>
> This fixes a couple of compiler warnings, and adds paranoia checks to boot.
>
> Signed-off-by: Roland McGrath <[email protected]>
> ---
> kernel/kexec.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/kexec.c b/kernel/kexec.c
> index 50087ec..989c7cd 100644
> --- a/kernel/kexec.c
> +++ b/kernel/kexec.c
> @@ -995,7 +995,8 @@ asmlinkage long sys_kexec_load(unsigned
> image = xchg(dest_image, image);
>
> out:
> - xchg(&kexec_lock, 0); /* Release the mutex */
> + locked = xchg(&kexec_lock, 0); /* Release the mutex */
> + BUG_ON(!locked);
> kimage_free(image);
>
> return result;
> @@ -1061,7 +1062,8 @@ void crash_kexec(struct pt_regs *regs)
> machine_crash_shutdown(&fixed_regs);
> machine_kexec(kexec_crash_image);
> }
> - xchg(&kexec_lock, 0);
> + locked = xchg(&kexec_lock, 0);
> + BUG_ON(!locked);
> }
> }

On s390 I changed the xchg macro, so gcc 4.x doesn't warn anymore about unused
return values. Maybe something similar would be needed on other architectures
as well?
See commit 5a651c93d3a823af63b1b15bb94fdc951670fb2f .