On Fri, Feb 14, 2020 at 02:19:18PM +0000, Marc Zyngier wrote: > On 2020-02-14 11:40, Mark Brown wrote: > > On Thu, Feb 13, 2020 at 09:36:56PM +0000, Marc Zyngier wrote: > > > On 2020-02-13 15:38, Mark Brown wrote: > > > > .align 11 > > > > -ENTRY(__bp_harden_hyp_vecs_start) > > > > +SYM_CODE_START_NOALIGN(__bp_harden_hyp_vecs) > > > > +SYM_INNER_LABEL(__bp_harden_hyp_vecs_start, SYM_L_GLOBAL) > > > Why isn't SYM_CODE_START_NOALIGN enough? And what is the rational for > > The _start and _end labels that were there before are explicitly > > referenced by code, removing them would break the build. > But if we're going to clean things up, I'd rather we actually do that. > The only time __bp_harden_hyp_vecs_end is used is when computing the > size of the vectors, and that'd better be BP_HARDEN_EL2_SLOTS * 2kB > (which can be statically asserted at compile time). OK, I'll drop this bit of the patch and send a separate change for this since it's more than a direct substitution. For reference the underlying goal here is to be able to use SYM_FUNC_START to add BTI annotations to assembly functions for in-kernel BTI, the cleanup is just a byproduct. > > > the _NOALIGN, btw? I'd expect an alignment of 2kB to be more than > > > enough. > > So that the explicit .align above takes effect rather than anything the > > macro decides to do, I'm trying to err on the side of caution here. > I don't think we need this. The macros should do the right thing, and > be fixed if they don't. OK, I'll just use a regular annotation - the explicit .align isn't documented so I don't really know what it's supposed to be doing.