From: Magnus Damm <magnus@valinux.co.jp>
To: fastboot@lists.osdl.org, linux-kernel@vger.kernel.org
Cc: Magnus Damm <magnus@valinux.co.jp>, ebiederm@xmission.com
Subject: [PATCH] Kexec: Common alloc
Date: Wed, 12 Apr 2006 17:33:02 +0900 (JST) [thread overview]
Message-ID: <20060412083402.25911.56088.sendpatchset@cherry.local> (raw)
Kexec: Common alloc
This patch reduces code redundancy by introducing a new function called
kimage_common_alloc() which is used to set up image->control_code_page.
Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
---
Applies on top of linux-2.6.17-rc1-git5 + "Kexec: Remove duplicate rimage"
kexec.c | 51 ++++++++++++++++++++-------------------------------
1 files changed, 20 insertions(+), 31 deletions(-)
--- 0004/kernel/kexec.c
+++ work/kernel/kexec.c 2006-04-12 16:30:34.000000000 +0900
@@ -205,34 +205,36 @@ out:
}
-static int kimage_normal_alloc(struct kimage **rimage, unsigned long entry,
- unsigned long nr_segments,
- struct kexec_segment __user *segments)
+static int kimage_common_alloc(struct kimage *image)
{
- int result;
- struct kimage *image;
-
- /* Allocate and initialize a controlling structure */
- image = NULL;
- result = do_kimage_alloc(&image, entry, nr_segments, segments);
- if (result)
- goto out;
-
/*
- * Find a location for the control code buffer, and add it
+ * Find a location for the control code buffer, and add
* the vector of segments so that it's pages will also be
* counted as destination pages.
*/
- result = -ENOMEM;
image->control_code_page = kimage_alloc_control_pages(image,
get_order(KEXEC_CONTROL_CODE_SIZE));
if (!image->control_code_page) {
printk(KERN_ERR "Could not allocate control_code_buffer\n");
- goto out;
+ return -ENOMEM;
}
- result = 0;
- out:
+ return 0;
+}
+
+static int kimage_normal_alloc(struct kimage **rimage, unsigned long entry,
+ unsigned long nr_segments,
+ struct kexec_segment __user *segments)
+{
+ int result;
+ struct kimage *image;
+
+ /* Allocate and initialize a controlling structure */
+ image = NULL;
+ result = do_kimage_alloc(&image, entry, nr_segments, segments);
+ if (!result)
+ result = kimage_common_alloc(image);
+
if (result == 0)
*rimage = image;
else
@@ -287,20 +289,7 @@ static int kimage_crash_alloc(struct kim
goto out;
}
- /*
- * Find a location for the control code buffer, and add
- * the vector of segments so that it's pages will also be
- * counted as destination pages.
- */
- result = -ENOMEM;
- image->control_code_page = kimage_alloc_control_pages(image,
- get_order(KEXEC_CONTROL_CODE_SIZE));
- if (!image->control_code_page) {
- printk(KERN_ERR "Could not allocate control_code_buffer\n");
- goto out;
- }
-
- result = 0;
+ result = kimage_common_alloc(image);
out:
if (result == 0)
*rimage = image;
next reply other threads:[~2006-04-12 8:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-12 8:33 Magnus Damm [this message]
2006-04-12 14:18 ` [Fastboot] [PATCH] Kexec: Common alloc Vivek Goyal
2006-04-12 15:46 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060412083402.25911.56088.sendpatchset@cherry.local \
--to=magnus@valinux.co.jp \
--cc=ebiederm@xmission.com \
--cc=fastboot@lists.osdl.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox