[PATCH] lmb: Correctly unmap memory after notifications
Ilias Apalodimas
ilias.apalodimas at linaro.org
Tue Oct 29 09:00:09 CET 2024
Hi Heinrich
On Mon, 28 Oct 2024 at 08:37, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 10/24/24 12:46, Ilias Apalodimas wrote:
> > We never unmap the memory used to update the EFI memory map after
> > notifications
> >
> > Fixes: commit 2f6191526a13 ("lmb: notify of any changes to the LMB memory map")
> > Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> > ---
> > lib/lmb.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/lib/lmb.c b/lib/lmb.c
> > index 890e2cbfdf6b..38c6e1d5ba8d 100644
> > --- a/lib/lmb.c
> > +++ b/lib/lmb.c
> > @@ -65,6 +65,7 @@ static int __maybe_unused lmb_map_update_notify(phys_addr_t addr,
> > status & ~EFI_ERROR_MASK);
> > return -1;
> > }
> > + unmap_sysmem((void *)(uintptr_t)efi_addr);
>
> If PCI memory was ever mapped via pci_map_physmem(), I don't think that
> we want to unmap it here.
Ok, so looking at it again, not calling unmap_sysmem() here won't
break anything, so I guess we can drop this patch.
>
> Why do we map the memory in this notification function first hand?
Because the memory was added as such in efi_allocate_pages(). So for
sandbox we need to find the correct virtual memory that was added.
> Can't
> we use len = 0 when calling map_sysmem()?
We are using len = 0. But I am not following up on how could this
help. All you will get is a warning for sanbox if a pci device mapped
more that 0.
Thanks
/Ilias
>
> I guess we have to critically review all map_sysmem() calls.
>
> Best regards
>
> Heinrich
>
> >
> > return 0;
> > }
>
More information about the U-Boot
mailing list