On Wed, 2015-07-08 at 22:18 -0500, Zhao Qiang-B45475 wrote: > > -----Original Message----- > > From: Wood Scott-B07421 > > Sent: Thursday, July 09, 2015 2:59 AM > > To: Zhao Qiang-B45475 > > Cc: linuxppc-dev@lists.ozlabs.org; Xie Xiaobo-R63061 > > Subject: Re: [PATCH 2/2] rheap: move rheap.c from arch/powerpc/lib/ to > > lib/ > > > > On Wed, 2015-07-08 at 02:25 -0500, Zhao Qiang-B45475 wrote: > > > So I will add two func for my use, do you think it is ok? > > > I need to align the address of allocated muram. > > > And I will set algo = gen_pool_first_fit_align. > > > > > > +unsigned long gen_pool_alloc_align(struct gen_pool *pool, size_t size, > > > + unsigned long align) > > > > Again, please explain why you need this for CPM/QE. I don't see > > rh_alloc_align() currently being used by either. > > > > Also, please stop top-posting. > > > unsigned long rh_alloc(struct _rh_info *info, int size, const char *owner) > { > return rh_alloc_align(info, size, info->alignment, owner); > } > EXPORT_SYMBOL_GPL(rh_alloc);
That doesn't involve a different alignment for each allocation. It uses the same alignment for all of them, and the alignment that cpm_common.c provides to rh_init() is 1 byte. ...but sigh, cpm_muram_alloc() is changing cpm_muram_info.alignment behind the rheap code's back. Despite the existence of rh_alloc_align(). So yes, add aligned allocation functionality to genalloc, but don't duplicate gen_pool_alloc() to do so. Instead, rename gen_pool_alloc() to gen_pool_alloc_align() with an alignment parameter (also modifying the algo function to take an alignment arg, which gen_pool_first_fit_order_align() would ignore), and provide a gen_pool_alloc() wrapper that specifies 1 as the required alignment. Also be sure to CC lkml on the patchset since you're touching core code that doesn't have its own maintainer or list. -Scott _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev