|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v8.1 17/27] xsplice: Add support for bug frames.
>>> Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> 04/14/16 12:02 AM >>>
>+bool_t is_patch(const void *ptr)
>+{
>+ struct payload *data;
You guess it: const.
>+ /*
>+ * No locking since this list is only ever changed during apply or revert
>+ * context.
>+ */
What if you crash while applying or reverting a patch? Is the list update at
least done such that the (then nested) traversal remains safe?
>@@ -482,6 +508,30 @@ static int prepare_payload(struct payload *payload,
>region->start = (unsigned long)payload->text_addr;
>region->end = (unsigned long)(payload->text_addr + payload->text_size);
>
>+ /* Optional sections. */
>+ for ( i = 0; i < BUGFRAME_NR; i++ )
>+ {
>+ char str[14];
>+
>+ snprintf(str, sizeof(str), ".bug_frames.%u", i);
>+ sec = xsplice_elf_sec_by_name(elf, str);
>+ if ( !sec )
>+ continue;
>+
>+ if ( sec->sec->sh_size &&
>+ (sec->sec->sh_size % sizeof(*region->frame[i].bugs)) )
The left side of the && seems pointless.
>+ {
>+ dprintk(XENLOG_ERR, XSPLICE "%s: Wrong size of .bug_frames.%u!\n",
>+ elf->name, i);
>+ return -EINVAL;
>+ }
>+
>+ region->frame[i].bugs = sec->load_addr;
>+ if ( sec->sec->sh_size)
>+ region->frame[i].n_bugs = sec->sec->sh_size /
>+ sizeof(*region->frame[i].bugs);
As does the conditional here.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |