Hi Raymond On Fri, 22 Dec 2023 at 23:31, Raymond Mao <raymond....@linaro.org> wrote: > > The current bloblist pointer and size can be retrieved from global > data, so we don't need to pass them from the function arguments. > This change also help to remove all external access of gd->bloblist > outside of bloblist module. > > Signed-off-by: Raymond Mao <raymond....@linaro.org> > --- > Changes in v2 > - New patch file created for v2. > Changes in v3 > - Check the space size before copying the bloblist. > - Add return code of bloblist_reloc(). > > common/bloblist.c | 10 ++++++++-- > common/board_f.c | 8 ++------ > include/bloblist.h | 8 ++++---- > test/bloblist.c | 6 ++---- > 4 files changed, 16 insertions(+), 16 deletions(-) > > diff --git a/common/bloblist.c b/common/bloblist.c > index db3fbb20cf..5ad1db137a 100644 > --- a/common/bloblist.c > +++ b/common/bloblist.c > @@ -472,13 +472,19 @@ void bloblist_show_list(void) > } > } > > -void bloblist_reloc(void *to, uint to_size, void *from, uint from_size) > +int bloblist_reloc(void *to, uint to_size) > { > struct bloblist_hdr *hdr; > > - memcpy(to, from, from_size); > + if (to_size < gd->bloblist->total_size) > + return -ENOSPC; > + > + memcpy(to, gd->bloblist, gd->bloblist->total_size); > hdr = to; > hdr->total_size = to_size; > + gd->bloblist = to; > + > + return 0; > } > > int bloblist_init(void) > diff --git a/common/board_f.c b/common/board_f.c > index d4d7d01f8f..00b0430889 100644 > --- a/common/board_f.c > +++ b/common/board_f.c > @@ -676,13 +676,9 @@ static int reloc_bloblist(void) > return 0; > } > if (gd->new_bloblist) { > - int size = CONFIG_BLOBLIST_SIZE; > - > debug("Copying bloblist from %p to %p, size %x\n", > - gd->bloblist, gd->new_bloblist, size); > - bloblist_reloc(gd->new_bloblist, CONFIG_BLOBLIST_SIZE_RELOC, > - gd->bloblist, size); > - gd->bloblist = gd->new_bloblist; > + gd->bloblist, gd->new_bloblist, > gd->bloblist->total_size); > + bloblist_reloc(gd->new_bloblist, CONFIG_BLOBLIST_SIZE_RELOC);
Why aren't we checking bloblist_reloc() for an error? > } > #endif > [...] Thanks /Ilias