[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 06/16] ranges.h: add helpers to build and identify Linux section ranges
On Fri, Aug 19, 2016 at 02:55:43PM -0700, Kees Cook wrote: > On Fri, Aug 19, 2016 at 2:32 PM, <mcgrof@xxxxxxxxxx> wrote: > > From: "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx> > > > > Section ranges are on one of the types of custom sections > > types used in Linux. This provides a series of helpers for > > defining them and using them. Most importantly this also > > enables us to avoid modifying the linker script when we > > add a new section range. > > > > It turns out a lot of custom sections are actually section ranges, > > and these are typically spelled out in their architecture specific > > asm/sections.h file -- we anable architectures to override what asm > > Typo: anable -> enable Fixed. > > is used for section ranges but start by default trusting the > > asm-generic version all around. > > Can you explain the addition of the SORT() stuff in this patch? Its > purpose isn't clear to me and doesn't appear to be mentioned in the > commit log. Indeed, let me explain and I'll also add this to the commit log. We need to use SORT() in vmlinux.lds.S for section ranges for two reasons: a) By using SORT() and using "any" for cases where order does not matter we're able to extend section ranges without modifying the linker script. The special annotation used for the "order" for the first element of a section range is the empty string (see __SECTION_RANGE_BEGIN(), the ending element uses the character "~", see __SECTION_RANGE_END(). By default anything added in between uses the "any" order, when you use SORT() on this you end up stuffing all elements with the "any" order in between, and allowing you to have a beginning and end reference -- without modifying the linker script. b) Although explicit order is typically not required for section ranges there is one use case brought to my attention we wanted to support where order was desired -- to build synthetic functions. An example is provided in asm in tools in the last patch where the linker tables sandbox is provided. Refer to tools/linker-tables/drivers/synth/or.S > > diff --git a/include/asm-generic/ranges.h b/include/asm-generic/ranges.h > > new file mode 100644 > > index 000000000000..74cd941aa2f8 > > --- /dev/null > > +++ b/include/asm-generic/ranges.h > > @@ -0,0 +1,89 @@ > > +#ifndef _ASM_GENERIC_RANGES_H_ > > +#define _ASM_GENERIC_RANGES_H_ > > +/* > > + * Copyright (C) 2016 Luis R. Rodriguez <mcgrof@xxxxxxxxxx> > > + * > > + * This program is free software; you can redistribute it and/or modify it > > + * under the terms of copyleft-next (version 0.3.1 or later) as published > > + * at http://copyleft-next.org/. > > + */ > > +#include <asm/section-core.h> > > + > > +#define SECTION_RNG(section, name) \ > > I would really prefer to avoid shortening "range" to the acronym for > "random number generator". That's very confusing. :P It's only two > letters more... Speaking of, it'd be great if you could trim your reply to the hunks of interest :) but yes sure, more bike shedding -- I'm happy to go with that if that is the consensus. Luis _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |