diff options
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; |