From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chee, Tien Fong Date: Fri, 1 Feb 2019 03:52:09 +0000 Subject: [U-Boot] [PATCH v2 2/2] fs: fat: Reduce default max clustersize 64KiB from malloc pool In-Reply-To: <7e521ae6-8741-dff9-79ba-cb7b0237febc@denx.de> References: <1548938578-7414-1-git-send-email-tien.fong.chee@intel.com> <1548938578-7414-2-git-send-email-tien.fong.chee@intel.com> <7e521ae6-8741-dff9-79ba-cb7b0237febc@denx.de> Message-ID: <1548993128.11133.14.camel@intel.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de On Thu, 2019-01-31 at 15:23 +0100, Marek Vasut wrote: > On 1/31/19 1:42 PM, tien.fong.chee at intel.com wrote: > > > > From: Tien Fong Chee > > > > Release cluster block immediately when no longer use would help to > > reduce > > 64KiB memory allocated to the memory pool. > > > > Signed-off-by: Tien Fong Chee > > > > --- > > > > changes for v2 > > - Assigned NULL to itr after free. > > - Added NULL checking to itr, avoid freeing twice. > > --- > >  fs/fat/fat.c | 13 +++++++++++-- > >  1 file changed, 11 insertions(+), 2 deletions(-) > > > > diff --git a/fs/fat/fat.c b/fs/fat/fat.c > > index 347787e..fa846ff 100644 > > --- a/fs/fat/fat.c > > +++ b/fs/fat/fat.c > > @@ -1152,12 +1152,21 @@ int file_fat_read_at(const char *filename, > > loff_t pos, void *buffer, > >   goto out_free_both; > >   > >   debug("reading %s at pos %llu\n", filename, pos); > > - ret = get_contents(&fsdata, itr->dent, pos, buffer, > > maxsize, actread); > > + > > + /* For saving default max clustersize memory allocated to > > malloc pool */ > > + dir_entry *dentptr = itr->dent; > > + > > + free(itr); > > + > > + itr = NULL; > > + > > + ret = get_contents(&fsdata, dentptr, pos, buffer, maxsize, > > actread); > >   > >  out_free_both: > >   free(fsdata.fatbuf); > >  out_free_itr: > > - free(itr); > > + if (itr) > > + free(itr); > free(NULL) is valid, so you can drop the if conditional. Noted. > > > > >   return ret; > >  } > >   > > >