From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Thu, 6 Feb 2014 07:41:41 +0100 Subject: [U-Boot] [PATCH v2 1/6] usb:gadget:ums: Replace malloc calls with memalign to fix cache buffer alignment In-Reply-To: <20140206073307.633ae6b9@amdc2363> References: <1391170589-14340-1-git-send-email-l.majewski@samsung.com> <201402060220.17449.marex@denx.de> <20140206073307.633ae6b9@amdc2363> Message-ID: <201402060741.41822.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thursday, February 06, 2014 at 07:33:07 AM, Lukasz Majewski wrote: > Hi Marek, > > > On Wednesday, February 05, 2014 at 10:10:41 AM, Lukasz Majewski wrote: > > > Calls to malloc() have been replaced by memalign. It now provides > > > proper buffer alignment. > > > > > > Signed-off-by: Lukasz Majewski > > > Cc: Marek Vasut > > > > > > --- > > > Changes for v2: > > > - Remove Change-Id. > > > --- > > > > > > drivers/usb/gadget/f_mass_storage.c | 4 ++-- > > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/usb/gadget/f_mass_storage.c > > > b/drivers/usb/gadget/f_mass_storage.c index b1fe8bd..f896169 100644 > > > --- a/drivers/usb/gadget/f_mass_storage.c > > > +++ b/drivers/usb/gadget/f_mass_storage.c > > > @@ -2515,7 +2515,7 @@ static struct fsg_common > > > > > > *fsg_common_init(struct fsg_common *common, buffhds_first_it: > > > bh->inreq_busy = 0; > > > bh->outreq_busy = 0; > > > > > > - bh->buf = kmalloc(FSG_BUFLEN, GFP_KERNEL); > > > + bh->buf = memalign(CONFIG_SYS_CACHELINE_SIZE, > > > FSG_BUFLEN); if (unlikely(!bh->buf)) { > > > > > > rc = -ENOMEM; > > > goto error_release; > > > > > > @@ -2622,7 +2622,7 @@ usb_copy_descriptors(struct > > > usb_descriptor_header **src) bytes += (*tmp)->bLength; > > > > > > bytes += (n_desc + 1) * sizeof(*tmp); > > > > > > - mem = kmalloc(bytes, GFP_KERNEL); > > > + mem = memalign(CONFIG_SYS_CACHELINE_SIZE, bytes); > > > > I wonder, does this align the begining of the buffer as well or only > > the size? Can we rely on the fact the begining is also > > cacheline-aligned ? > > In this case, the memalign assures, that beginning of the buffer is > aligned to a cache line. How so ? :) [...] Best regards, Marek Vasut