[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] EFI: Fix relocating ESRT for dom0



On Wed, Feb 11, 2026 at 12:58:25AM +0000, Andrew Cooper wrote:
> On 11/02/2026 12:16 am, Marek Marczykowski-Górecki wrote:
> > Fix calculating the table size - it consists of a header + entries, not
> > just entries.
> > This bug caused the last entry to have garbage in its final fields,
> > including LowestSupportedFwVersion and CapsuleFlags, which (usually)
> > made fwupd to detect firmware update availability, but refuse actually
> 
> "made fwupd able to"
> 
> > installing it.
> >
> > Fixes: dc7da0874ba4 ("EFI: preserve the System Resource Table for dom0")
> > Signed-off-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
> > ---
> >  xen/common/efi/boot.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/xen/common/efi/boot.c b/xen/common/efi/boot.c
> > index 5b84dbf26e5e..45015a0dd583 100644
> > --- a/xen/common/efi/boot.c
> > +++ b/xen/common/efi/boot.c
> > @@ -675,7 +675,8 @@ static size_t __init get_esrt_size(const 
> > EFI_MEMORY_DESCRIPTOR *desc)
> >      if ( esrt_ptr->FwResourceCount > available_len / 
> > sizeof(esrt_ptr->Entries[0]) )
> >          return 0;
> >  
> > -    return esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
> > +    return offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries) +
> > +        esrt_ptr->FwResourceCount * sizeof(esrt_ptr->Entries[0]);
> 
> offsetof(EFI_SYSTEM_RESOURCE_TABLE, Entries[esrt_ptr->FwResourceCount])
> 
> is a shorter expression with the same answer, and a pattern we use
> elsewhere.  I can fix on commit if you're happy.

Fine with me, thanks.

-- 
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab

Attachment: signature.asc
Description: PGP signature


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.