|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 17/28] xsplice: Add support for exception tables.
>>> On 24.03.16 at 21:00, <konrad.wilk@xxxxxxxxxx> wrote:
> --- a/xen/common/xsplice.c
> +++ b/xen/common/xsplice.c
> @@ -573,6 +573,25 @@ static int prepare_payload(struct payload *payload,
> region->frame[i].n_bugs = sec->sec->sh_size / sizeof(struct
> bug_frame);
> }
>
> +#ifdef CONFIG_X86
> + sec = xsplice_elf_sec_by_name(elf, ".ex_table");
> + if ( sec )
> + {
> + if ( !sec->sec->sh_size ||
> + (sec->sec->sh_size % sizeof (struct exception_table_entry)) )
> + {
> + dprintk(XENLOG_DEBUG, "%s%s: Wrong size of .ex_table (exp:%lu vs
> %lu)!\n",
> + XSPLICE, elf->name, sizeof (struct
> exception_table_entry),
> + sec->sec->sh_size);
> + return -EINVAL;
> + }
> +
> + region->ex = (struct exception_table_entry *)sec->load_addr;
> + region->ex_end = (struct exception_table_entry *)(sec->load_addr +
> sec->sec->sh_size);
> +
> + sort_exception_table(region->ex, region->ex_end);
> + }
> +#endif
Nothing here is really x86-specific, so the earlier comment on the
conditionals better going away applies here too.
> --- a/xen/include/asm-x86/uaccess.h
> +++ b/xen/include/asm-x86/uaccess.h
> @@ -276,6 +276,11 @@ extern struct exception_table_entry
> __start___pre_ex_table[];
> extern struct exception_table_entry __stop___pre_ex_table[];
>
> extern unsigned long search_exception_table(unsigned long);
> +extern unsigned long search_one_extable(const struct exception_table_entry
> *first,
> + const struct exception_table_entry
> *last,
> + unsigned long value);
I can't seem to find a use of the outside its defining file. Why is
this being made global?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |