[Intel-gfx] [PATCH] drm/i915: allocate large pointer arrays with vmalloc
Jesse Barnes
jbarnes at virtuousgeek.org
Sat May 9 01:07:34 CEST 2009
On Fri, 8 May 2009 16:06:15 -0700
Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
> On Fri, 8 May 2009 16:02:54 -0700
> Jesse Barnes <jbarnes at virtuousgeek.org> wrote:
>
> > On Fri, 08 May 2009 15:28:47 -0700
> > Keith Packard <keithp at keithp.com> wrote:
> >
> > > On Fri, 2009-05-08 at 14:51 -0700, Jesse Barnes wrote:
> > >
> > > > +static __inline void drm_free_large(void *ptr, int size)
> > > > +{
> > > > + if (size <= PAGE_SIZE)
> > > > + return kfree(ptr);
> > > > +
> > > > + vfree(ptr);
> > > > +}
> > >
> > > Ick. Taking a size here is mean. And error prone.
> >
> > Yes, suggestions for alternatives?
>
> I suppose we could do:
>
> static __inline void drm_free_large(void *ptr)
> {
> if (addr >= VMALLOC_START)
> return vfree(ptr);
>
> kfree(ptr);
> }
>
> but that may be too ugly to live as well.
Oh hey we have a nice macro for this:
static __inline void drm_free_large(void *ptr)
{
if (is_vmalloc_addr(addr))
return vfree(ptr);
kfree(ptr);
}
will repost in a sec.
--
Jesse Barnes, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list