|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2] libelf: improve PVH elfnote parsing
On 18.05.2021 16:47, Roger Pau Monne wrote:
> @@ -425,8 +425,11 @@ static elf_errorstatus elf_xen_addr_calc_check(struct
> elf_binary *elf,
> return -1;
> }
>
> - /* Initial guess for virt_base is 0 if it is not explicitly defined. */
> - if ( parms->virt_base == UNSET_ADDR )
> + /*
> + * Initial guess for virt_base is 0 if it is not explicitly defined in
> the
> + * PV case. For PVH virt_base is forced to 0 because paging is disabled.
> + */
> + if ( parms->virt_base == UNSET_ADDR || hvm )
> {
> parms->virt_base = 0;
> elf_msg(elf, "ELF: VIRT_BASE unset, using %#" PRIx64 "\n",
This message is wrong now if hvm is true but parms->virt_base != UNSET_ADDR.
Best perhaps is to avoid emitting the message altogether when hvm is true.
(Since you'll be touching it anyway, perhaps a good opportunity to do away
with passing parms->virt_base to elf_msg(), and instead simply use a literal
zero.)
> @@ -441,8 +444,10 @@ static elf_errorstatus elf_xen_addr_calc_check(struct
> elf_binary *elf,
> *
> * If we are using the modern ELF notes interface then the default
> * is 0.
> + *
> + * For PVH this is forced to 0, as it's already a legacy option for PV.
> */
> - if ( parms->elf_paddr_offset == UNSET_ADDR )
> + if ( parms->elf_paddr_offset == UNSET_ADDR || hvm )
> {
> if ( parms->elf_note_start )
Don't you want "|| hvm" here as well, or alternatively suppress the
fallback to the __xen_guest section in the PVH case (near the end of
elf_xen_parse())?
> parms->elf_paddr_offset = 0;
Similar remark as further up for the elf_msg() down below here.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |