diff options
author | Matthew Wilcox <matthew@wil.cx> | 2009-05-22 16:49:49 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2009-06-17 12:33:49 -0400 |
commit | e088a4ad7fa53c3dc3c29f930025f41ccf01953e (patch) | |
tree | 07b012952bbbaccfe4ef3bb44b1ea0a3a3bb3868 /arch/ia64/kernel/module.c | |
parent | e56e2dcd381d9ec35379328f332221581eda4787 (diff) |
[IA64] Convert ia64 to use int-ll64.h
It is generally agreed that it would be beneficial for u64 to be an
unsigned long long on all architectures. ia64 (in common with several
other 64-bit architectures) currently uses unsigned long. Migrating
piecemeal is too painful; this giant patch fixes all compilation warnings
and errors that come as a result of switching to use int-ll64.h.
Note that userspace will still see __u64 defined as unsigned long. This
is important as it affects C++ name mangling.
[Updated by Tony Luck to change efi.h:efi_freemem_callback_t to use
u64 for start/end rather than unsigned long]
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/module.c')
-rw-r--r-- | arch/ia64/kernel/module.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index da3b0cf495a3..1481b0a28ca0 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
@@ -171,7 +171,8 @@ apply_imm60 (struct module *mod, struct insn *insn, uint64_t val) | |||
171 | return 0; | 171 | return 0; |
172 | } | 172 | } |
173 | if (val + ((uint64_t) 1 << 59) >= (1UL << 60)) { | 173 | if (val + ((uint64_t) 1 << 59) >= (1UL << 60)) { |
174 | printk(KERN_ERR "%s: value %ld out of IMM60 range\n", mod->name, (int64_t) val); | 174 | printk(KERN_ERR "%s: value %ld out of IMM60 range\n", |
175 | mod->name, (long) val); | ||
175 | return 0; | 176 | return 0; |
176 | } | 177 | } |
177 | ia64_patch_imm60((u64) insn, val); | 178 | ia64_patch_imm60((u64) insn, val); |
@@ -182,7 +183,8 @@ static int | |||
182 | apply_imm22 (struct module *mod, struct insn *insn, uint64_t val) | 183 | apply_imm22 (struct module *mod, struct insn *insn, uint64_t val) |
183 | { | 184 | { |
184 | if (val + (1 << 21) >= (1 << 22)) { | 185 | if (val + (1 << 21) >= (1 << 22)) { |
185 | printk(KERN_ERR "%s: value %li out of IMM22 range\n", mod->name, (int64_t)val); | 186 | printk(KERN_ERR "%s: value %li out of IMM22 range\n", |
187 | mod->name, (long)val); | ||
186 | return 0; | 188 | return 0; |
187 | } | 189 | } |
188 | ia64_patch((u64) insn, 0x01fffcfe000UL, ( ((val & 0x200000UL) << 15) /* bit 21 -> 36 */ | 190 | ia64_patch((u64) insn, 0x01fffcfe000UL, ( ((val & 0x200000UL) << 15) /* bit 21 -> 36 */ |
@@ -196,7 +198,8 @@ static int | |||
196 | apply_imm21b (struct module *mod, struct insn *insn, uint64_t val) | 198 | apply_imm21b (struct module *mod, struct insn *insn, uint64_t val) |
197 | { | 199 | { |
198 | if (val + (1 << 20) >= (1 << 21)) { | 200 | if (val + (1 << 20) >= (1 << 21)) { |
199 | printk(KERN_ERR "%s: value %li out of IMM21b range\n", mod->name, (int64_t)val); | 201 | printk(KERN_ERR "%s: value %li out of IMM21b range\n", |
202 | mod->name, (long)val); | ||
200 | return 0; | 203 | return 0; |
201 | } | 204 | } |
202 | ia64_patch((u64) insn, 0x11ffffe000UL, ( ((val & 0x100000UL) << 16) /* bit 20 -> 36 */ | 205 | ia64_patch((u64) insn, 0x11ffffe000UL, ( ((val & 0x100000UL) << 16) /* bit 20 -> 36 */ |
@@ -701,8 +704,9 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend, | |||
701 | case RV_PCREL2: | 704 | case RV_PCREL2: |
702 | if (r_type == R_IA64_PCREL21BI) { | 705 | if (r_type == R_IA64_PCREL21BI) { |
703 | if (!is_internal(mod, val)) { | 706 | if (!is_internal(mod, val)) { |
704 | printk(KERN_ERR "%s: %s reloc against non-local symbol (%lx)\n", | 707 | printk(KERN_ERR "%s: %s reloc against " |
705 | __func__, reloc_name[r_type], val); | 708 | "non-local symbol (%lx)\n", __func__, |
709 | reloc_name[r_type], (unsigned long)val); | ||
706 | return -ENOEXEC; | 710 | return -ENOEXEC; |
707 | } | 711 | } |
708 | format = RF_INSN21B; | 712 | format = RF_INSN21B; |