Subject: Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions to manage muram

From: Scott Wood <[email-masked]>
Date: Tue, 25 Aug 2015 11:22:55 -0500

On Tue, 2015-08-25 at 02:19 -0500, Zhao Qiang-B45475 wrote:
> On 08/25/2015 12:15 PM, Laura Abbott wrote
> > -----Original Message-----
> > From: Laura Abbott [mailto:[email-masked]]
> > Sent: Tuesday, August 25, 2015 12:15 PM
> > To: Zhao Qiang-B45475; Wood Scott-B07421
> > Cc: [email-masked]; [email-masked];
> > [email-masked]; Xie Xiaobo-R63061; [email-masked]; Li
> > Yang-Leo-R58472; [email-masked]
> > Subject: Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions to manage
> > muram
> > 
> > On 08/24/2015 08:03 PM, Zhao Qiang wrote:
> > > 
> > > > -----Original Message-----
> > > > From: Laura Abbott [mailto:[email-masked]]
> > > > Sent: Tuesday, August 25, 2015 7:32 AM
> > > > To: Zhao Qiang-B45475; Wood Scott-B07421
> > > > Cc: [email-masked]; [email-masked];
> > > > [email-masked]; Xie Xiaobo-R63061; [email-masked];
> > > > Li Yang-Leo-R58472; [email-masked]
> > > > Subject: Re: [PATCH v6 3/3] qe_common: add qe_muram_ functions to
> > > > manage muram
> > > > 
> > > > There doesn't seem to be a check for allocation failure from the
> > > > gen_alloc.
> > > 
> > > gen_pool_alloc will return 0 if there is error, but if the address
> > > returned is just 0x0, it can't distinguish it is address or error.
> > > 
> > 
> > Yes, that's a bad limitation of gen_pool. Maybe one day that will get
> > fixed.
> > In a previous out of tree driver, I worked around this by offsetting the
> > gen_pool_add by a constant so any return value was non-zero and out of
> > memory was zero and then subtracting the constant off of the return value.
> > Not sure if that's better or worse than just fixing gen_alloc.
> > 
> 
> The workaround works for non alignment allocation, but for alignment 
> allocation,
> It need to align bytes to addr 0, offsetting the gen_pool_add maybe make 
> wrong alignment

It would work if the offset you add is a multiple of the size of muram.

-Scott