Messages in this thread | | | Date | Fri, 29 Apr 2022 11:17:45 +0800 | Subject | Re: [PATCH v4] ARM: module: Add all unwind tables when load module | From | Chen Zhongjin <> |
| |
Added, 9204/1 module: Add all unwind tables when load module
Thanks! Chen
On 2022/4/29 6:45, Linus Walleij wrote: > On Fri, Apr 1, 2022 at 3:16 PM Chen Zhongjin <chenzhongjin@huawei.com> wrote: > >> For EABI stack unwinding, when loading .ko module >> the EXIDX sections will be added to a unwind_table list. >> >> However not all EXIDX sections are added because EXIDX >> sections are searched by hardcoded section names. >> >> For functions in other sections such as .ref.text >> or .kprobes.text, gcc generates seprated EXIDX sections >> (such as .ARM.exidx.ref.text or .ARM.exidx.kprobes.text). >> >> These extra EXIDX sections are not loaded, so when unwinding >> functions in these sections, we will failed with: >> >> unwind: Index not found xxx >> >> To fix that, I refactor the code for searching and adding >> EXIDX sections: >> >> - Check section type to search EXIDX tables (0x70000001) >> instead of strcmp() the hardcoded names. Then find the >> corresponding text sections by their section names. >> >> - Add a unwind_table list in module->arch to save their own >> unwind_table instead of the fixed-lenth array. >> >> - Save .ARM.exidx.init.text section ptr, because it should >> be cleaned after module init. >> >> Now all EXIDX sections of .ko can be added correctly. >> >> Signed-off-by: Chen Zhongjin <chenzhongjin@huawei.com> > > This looks reasonable to me: > Acked-by: Linus Walleij <linus.walleij@linaro.org> > > If no one else comments I would say you should put this > into Russell's patch tracker for consideration. > > Yours, > Linus Walleij > .
| |