Messages in this thread | | | Date | Thu, 19 Apr 2012 21:49:05 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH v1 1/5] scripts: Add sortextable to sort the kernel's exception table. |
| |
On 04/19/2012 08:42 PM, H. Peter Anvin wrote: > > I don't think we can get _ASM_EXTABLE() to do that work for us, because > we'd need to subtract symbols from two different sections. We would > need the postprocessing tool to take care this, but guess what, we can > do exactly that (and then, as I mentioned, just zero out the relocation > section.) >
Ah, apparently it is possible to generate relocations relative to the start of the current section:
# define _ASM_EXTABLE(from,to) \ __ASM_EX_SEC ; \ _ASM_ALIGN ; \ .long (from)-__ex_table,(to)-__ex_table ; \ .previous
Then all the postprocessor would have to do is to zero out the relocation section, and we would always just add the base of the particular __ex_table section.
We need to make sure the module loader works, too, and not to break the __{get,put}_user_ex macros (which would need to use a new variant of _ASM_EXTABLE()).
There is still a disturbing number of open-coded __ex_table instances too; those all need to be converted.
Looks like a worthwhile project but not for tonight.
All of this is for x86... other architectures would need to be converted in whatever way is appropriate.
-hpa
| |