|
@@ -52,12 +52,16 @@ void sort_extable(struct exception_table_entry *start,
|
|
int i;
|
|
int i;
|
|
|
|
|
|
/* Normalize entries to being relative to the start of the section */
|
|
/* Normalize entries to being relative to the start of the section */
|
|
- for (p = start, i = 0; p < finish; p++, i += 8)
|
|
|
|
|
|
+ for (p = start, i = 0; p < finish; p++, i += 8) {
|
|
p->insn += i;
|
|
p->insn += i;
|
|
|
|
+ p->fixup += i + 4;
|
|
|
|
+ }
|
|
sort(start, finish - start, sizeof(*start), cmp_ex, NULL);
|
|
sort(start, finish - start, sizeof(*start), cmp_ex, NULL);
|
|
/* Denormalize all entries */
|
|
/* Denormalize all entries */
|
|
- for (p = start, i = 0; p < finish; p++, i += 8)
|
|
|
|
|
|
+ for (p = start, i = 0; p < finish; p++, i += 8) {
|
|
p->insn -= i;
|
|
p->insn -= i;
|
|
|
|
+ p->fixup -= i + 4;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_MODULES
|
|
#ifdef CONFIG_MODULES
|