Messages in this thread | | | Date | Mon, 15 Jan 2018 19:59:37 +0100 | From | Borislav Petkov <> | Subject | Re: [PATCH 2/4] objtool: Implement jump_assert for _static_cpu_has() |
| |
Right,
I've been putting away extending struct alt_instr for a long time now, trying to be conservative about it but I guess this might be the right time to change that. How about:
struct alt_instr { s32 instr_offset; /* original instruction */ s32 repl_offset; /* offset to replacement instruction */ u16 cpuid; /* cpuid bit set for replacement */ u8 instrlen; /* length of original instruction */ u8 replacementlen; /* length of new instruction */ u8 padlen; /* length of build-time padding */ u64 flags; /* alternative flags, see <some enum> */ } __packed;
This way we have 64 settings. So we could do:
... .flags = ALT_FLAGS_STATIC_CPU_HAS,
or something like that and then we can do additional processing/matching for the alternatives.
Or, we can do
struct alt_instr { s32 instr_offset; /* original instruction */ s32 repl_offset; /* offset to replacement instruction */ u16 cpuid; /* cpuid bit set for replacement */ u8 instrlen; /* length of original instruction */ u8 replacementlen; /* length of new instruction */ u8 padlen; /* length of build-time padding */ u8 type; /* types */ } __packed;
and have 256 types but that would be limiting as we won't be able to set more than one.
Hmmm?
-- Regards/Gruss, Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
| |