X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2Fpie.c;h=c266a61bad72146eee2ec438f0a99721cfc683ff;hb=58594a804233d863ee344adf7554571d831f6c23;hp=c0190dd1b554b13c6ccca45f92b0173b83cc558c;hpb=aea1f7c03c2a14f4c1a3f75e5c1bf8752ec66f13;p=firefly-linux-kernel-4.4.55.git diff --git a/lib/pie.c b/lib/pie.c index c0190dd1b554..c266a61bad72 100644 --- a/lib/pie.c +++ b/lib/pie.c @@ -26,7 +26,8 @@ extern char __pie_common_end[]; extern char __pie_overlay_start[]; int __weak pie_arch_fill_tail(void *tail, void *common_start, void *common_end, - void *overlay_start, void *code_start, void *code_end) + void *overlay_start, void *code_start, void *code_end, + void *rel_start, void *rel_end) { return 0; } @@ -37,8 +38,9 @@ int __weak pie_arch_fixup(struct pie_chunk *chunk, void *base, void *tail, return 0; } -struct pie_chunk *__pie_load_data(struct gen_pool *pool, void *code_start, - void *code_end, bool phys) +struct pie_chunk *__pie_load_data(struct gen_pool *pool, bool phys, + void *code_start, void *code_end, + void *rel_start, void *rel_end) { struct pie_chunk *chunk; unsigned long offset; @@ -50,7 +52,8 @@ struct pie_chunk *__pie_load_data(struct gen_pool *pool, void *code_start, /* Calculate the tail size */ ret = pie_arch_fill_tail(NULL, __pie_common_start, __pie_common_end, - __pie_overlay_start, code_start, code_end); + __pie_overlay_start, code_start, code_end, + rel_start, rel_end); if (ret < 0) goto err; tail_sz = ret; @@ -84,7 +87,8 @@ struct pie_chunk *__pie_load_data(struct gen_pool *pool, void *code_start, /* Fill in tail data */ ret = pie_arch_fill_tail(tail, __pie_common_start, __pie_common_end, - __pie_overlay_start, code_start, code_end); + __pie_overlay_start, code_start, code_end, + rel_start, rel_end); if (ret < 0) goto err_alloc;