diff options
author | Zhang Yanfei <zhangyanfei@cn.fujitsu.com> | 2013-03-14 17:33:10 +0800 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2013-03-14 10:59:44 +0100 |
commit | bb3f9f58427d1089b6429c8f8265a2838193a322 (patch) | |
tree | 6a2930e10ad6570f32e3b58cb9534e4cbff7dd6a | |
parent | f36d32064cc1aa9997c528e1ae5e73b43f5422ef (diff) |
kexec: ppc: use _ALIGN* to make the logic clear
By replacing all the explicit align opertion with marco _ALIGN*,
the code logic could be more clear.
Besides, remove the duplicate _ALIGN_* definition in file
kexec/arch/ppc/crashdump-powerpc.h.
Signed-off-by: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r-- | kexec/arch/ppc/crashdump-powerpc.c | 2 | ||||
-rw-r--r-- | kexec/arch/ppc/crashdump-powerpc.h | 2 | ||||
-rw-r--r-- | kexec/arch/ppc/fs2dt.c | 5 | ||||
-rw-r--r-- | kexec/arch/ppc/kexec-dol-ppc.c | 10 | ||||
-rw-r--r-- | kexec/arch/ppc/kexec-elf-ppc.c | 8 |
5 files changed, 12 insertions, 15 deletions
diff --git a/kexec/arch/ppc/crashdump-powerpc.c b/kexec/arch/ppc/crashdump-powerpc.c index d367643..eee5b37 100644 --- a/kexec/arch/ppc/crashdump-powerpc.c +++ b/kexec/arch/ppc/crashdump-powerpc.c @@ -329,7 +329,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline, info->backup_src_size = BACKUP_SRC_SIZE; #ifndef CONFIG_BOOKE /* Create a backup region segment to store backup data*/ - sz = (BACKUP_SRC_SIZE + align - 1) & ~(align - 1); + sz = _ALIGN(BACKUP_SRC_SIZE, align); tmp = xmalloc(sz); memset(tmp, 0, sz); info->backup_start = add_buffer(info, tmp, sz, sz, align, diff --git a/kexec/arch/ppc/crashdump-powerpc.h b/kexec/arch/ppc/crashdump-powerpc.h index 84a73aa..efdc7e3 100644 --- a/kexec/arch/ppc/crashdump-powerpc.h +++ b/kexec/arch/ppc/crashdump-powerpc.h @@ -35,8 +35,6 @@ extern struct arch_options_t arch_options; #endif #define KDUMP_BACKUP_LIMIT BACKUP_SRC_SIZE -#define _ALIGN_UP(addr, size) (((addr)+((size)-1))&(~((size)-1))) -#define _ALIGN_DOWN(addr, size) ((addr)&(~((size)-1))) extern unsigned long long crash_base; extern unsigned long long crash_size; diff --git a/kexec/arch/ppc/fs2dt.c b/kexec/arch/ppc/fs2dt.c index cdae69e..a49f85e 100644 --- a/kexec/arch/ppc/fs2dt.c +++ b/kexec/arch/ppc/fs2dt.c @@ -407,8 +407,7 @@ int create_flatten_tree(struct kexec_info *info, unsigned char **bufp, putnode(); *dt++ = 9; - len = sizeof(bb[0]); - len += 7; len &= ~7; + len = _ALIGN(sizeof(bb[0]), 8); bb->off_mem_rsvmap = len; @@ -426,7 +425,7 @@ int create_flatten_tree(struct kexec_info *info, unsigned char **bufp, len = propnum(""); bb->dt_strings_size = len; - len += 3; len &= ~3; + len = _ALIGN(len, 4); bb->totalsize = bb->off_dt_strings + len; bb->magic = 0xd00dfeed; diff --git a/kexec/arch/ppc/kexec-dol-ppc.c b/kexec/arch/ppc/kexec-dol-ppc.c index 5fc5e06..8d0d1a0 100644 --- a/kexec/arch/ppc/kexec-dol-ppc.c +++ b/kexec/arch/ppc/kexec-dol-ppc.c @@ -87,11 +87,11 @@ typedef struct { #define PAGE_SHIFT 12 #define PAGE_SIZE (1UL << PAGE_SHIFT) #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) -#define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) +#define PAGE_ALIGN(addr) _ALIGN(addr, PAGE_SIZE) #define MAX_COMMAND_LINE 256 -#define UPSZ(X) ((sizeof(X) + 3) & ~3) +#define UPSZ(X) _ALIGN_UP(sizeof(X), 4) static struct boot_notes { Elf_Bhdr hdr; Elf_Nhdr bl_hdr; @@ -442,14 +442,14 @@ int dol_ppc_load(int argc, char **argv, const char *buf, off_t UNUSED(len), } /* build the setup glue and argument segment (segment 0) */ - note_bytes = sizeof(elf_boot_notes) + ((command_line_len + 3) & ~3); - arg_bytes = note_bytes + ((setup_dol_size + 3) & ~3); + note_bytes = sizeof(elf_boot_notes) + _ALIGN(command_line_len, 4); + arg_bytes = note_bytes + _ALIGN(setup_dol_size, 4); arg_buf = xmalloc(arg_bytes); arg_base = add_buffer(info, arg_buf, arg_bytes, arg_bytes, 4, 0, 0xFFFFFFFFUL, 1); - notes = (struct boot_notes *)(arg_buf + ((setup_dol_size + 3) & ~3)); + notes = (struct boot_notes *)(arg_buf + _ALIGN(setup_dol_size, 4)); notes->hdr.b_size = note_bytes; notes->cmd_hdr.n_descsz = command_line_len; diff --git a/kexec/arch/ppc/kexec-elf-ppc.c b/kexec/arch/ppc/kexec-elf-ppc.c index 5f63a64..65a65cc 100644 --- a/kexec/arch/ppc/kexec-elf-ppc.c +++ b/kexec/arch/ppc/kexec-elf-ppc.c @@ -37,7 +37,7 @@ const char *ramdisk; int create_flatten_tree(struct kexec_info *, unsigned char **, unsigned long *, char *); -#define UPSZ(X) ((sizeof(X) + 3) & ~3) +#define UPSZ(X) _ALIGN_UP(sizeof(X), 4); #ifdef WITH_GAMECUBE static struct boot_notes { Elf_Bhdr hdr; @@ -327,14 +327,14 @@ int elf_ppc_load(int argc, char **argv, const char *buf, off_t len, setup_size = setup_simple_size; setup_simple_regs.spr8 = ehdr.e_entry; /* Link Register */ } - note_bytes = sizeof(elf_boot_notes) + ((command_line_len + 3) & ~3); - arg_bytes = note_bytes + ((setup_size + 3) & ~3); + note_bytes = sizeof(elf_boot_notes) + _ALIGN(command_line_len, 4); + arg_bytes = note_bytes + _ALIGN(setup_size, 4); arg_buf = xmalloc(arg_bytes); arg_base = add_buffer(info, arg_buf, arg_bytes, arg_bytes, 4, 0, elf_max_addr(&ehdr), 1); - notes = (struct boot_notes *)(arg_buf + ((setup_size + 3) & ~3)); + notes = (struct boot_notes *)(arg_buf + _ALIGN(setup_size, 4)); memcpy(arg_buf, setup_start, setup_size); memcpy(notes, &elf_boot_notes, sizeof(elf_boot_notes)); |