lkml.org 
[lkml]   [2018]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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.

\
 
 \ /
  Last update: 2018-01-15 20:00    [W:0.066 / U:3.176 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site