Re: [uClinux-dev] v3.15-rc1 slab allocator broken on m68knommu (coldfire)

From: Steven King
Date: Wed Apr 16 2014 - 13:44:26 EST


On Wednesday 16 April 2014 9:06:57 am Geert Uytterhoeven wrote:
> Hi Steven,
>
> On Wed, Apr 16, 2014 at 5:47 PM, Steven King <sfking@xxxxxxxxx> wrote:
> > --- a/mm/slab.c
> > +++ b/mm/slab.c
> > @@ -2572,13 +2572,13 @@ static void *alloc_slabmgmt(struct kmem_cache
> > *cachep, return freelist;
> > }
> >
> > -static inline freelist_idx_t get_free_obj(struct page *page, unsigned
> > char idx) +static inline freelist_idx_t get_free_obj(struct page *page,
> > unsigned int idx) {
> > return ((freelist_idx_t *)page->freelist)[idx];
> > }
> >
> > static inline void set_free_obj(struct page *page,
> > - unsigned char idx, freelist_idx_t
> > val) + unsigned int idx,
> > freelist_idx_t val) {
> > ((freelist_idx_t *)(page->freelist))[idx] = val;
> > }
> >
> >
> > then v3.15-rc1 will boot using the slab allocator.
>
> Is "idx" ever larger than 255?
>
> Gr{oetje,eeting}s,

Yes. If I stick

if (idx > 255)
pr_info("%s %d\n", __func__, idx);

in get_free_obj and set_free_obj and see values for idx up into the 400s.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/