|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 7/9] livepatch: ARM64: Ignore mapping symbols: $[a, d, x, p]
On Wed, Aug 17, 2016 at 06:21:03AM -0600, Jan Beulich wrote:
> >>> On 15.08.16 at 01:07, <konrad.wilk@xxxxxxxxxx> wrote:
>
> According to the code you mean $t instead of $p in the subject.
Yes! Thanks for noticing that.
>
> > --- a/xen/arch/arm/livepatch.c
> > +++ b/xen/arch/arm/livepatch.c
> > @@ -90,6 +90,35 @@ void arch_livepatch_unmask(void)
> > local_abort_enable();
> > }
> >
> > +int arch_is_payload_symbol(const struct livepatch_elf *elf,
> > + const struct livepatch_elf_sym *sym)
> > +{
> > + /*
> > + * - Mapping symbols - denote the "start of a sequence of bytes of the
> > + * appropiate type" to mark certain features - such as start of
> > region
> > + * containing A64 ($x), ARM ($a), or Thumb instructions ($t); or
> > data ($d)
> > + *
> > + * The format is either short: '$x' or long: '$x.<any>'. We do not
> > + * need this and more importantly - each payload will contain this
> > + * resulting in symbol collisions.
> > + */
> > + if ( *sym->name == '$' && sym->name[1] != '\0' )
> > + {
> > + char p = sym->name[1];
> > + size_t len = strlen(sym->name);
> > +
> > + if ( (len >= 3 && ( sym->name[2] == '.' )) || (len == 2) )
> > + if ( p == 'd' ||
>
> May I suggest not nesting two if()-s like this?
>
> > --- a/xen/common/livepatch.c
> > +++ b/xen/common/livepatch.c
> > @@ -780,7 +780,7 @@ static bool_t is_payload_symbol(const struct
> > livepatch_elf *elf,
> > !strncmp(sym->name, ".L", 2) )
> > return 0;
> >
> > - return 1;
> > + return arch_is_payload_symbol(elf, sym);
> > }
>
> Taking into consideration what's still visible as context here - are .L
> prefixed symbols really architecture independent? If not, checking
They are architecture independent and even the ARM ELF document mentions
it:
"Note: Multiple conventions exist for the names of compiler temporary symbols
(for example, ARMCC uses Lxxx.yyy, while GNU uses .Lxxx)."
(pg 23)
> for them should probably be moved.
>
> Jan
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |