]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Fix 2 incorrect vaddr_offsets
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 8 May 2011 12:33:30 +0000 (14:33 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sun, 8 May 2011 12:33:30 +0000 (14:33 +0200)
util/grub-mkimagexx.c

index 6f68bf1afbc4095d4ec3c92ec9bfd375916ad492..9bfb5de7540d20e257fe465944cbb36e13c7b11c 100644 (file)
@@ -446,8 +446,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections,
                    grub_uint64_t noff;
                    make_trampoline (tr, addend + sym_addr);
                    noff = ((char *) tr - (char *) pe_target
-                           - target_section_addr - (offset & ~3)
-                           - image_target->vaddr_offset) >> 4;
+                           - target_section_addr - (offset & ~3)) >> 4;
                    tr++;
                    if (noff & ~MASK19)
                      grub_util_error ("trampoline offset too big (%lx)",
@@ -461,7 +460,8 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections,
                case R_IA64_LTOFF22:
                  *gpptr = grub_host_to_target64 (addend + sym_addr);
                  add_value_to_slot_21 ((grub_addr_t) target,
-                                       (char *) gpptr - (char *) pe_target);
+                                       (char *) gpptr - (char *) pe_target
+                                       + image_target->vaddr_offset);
                  gpptr++;
                  break;