On Mon, Sep 10, 2012 at 06:12:50PM +0200, walter harms wrote: > > > Am 10.09.2012 15:14, schrieb Fengguang Wu: > > To avoid name conflicts: > > > > drivers/video/riva/fbdev.c:281:9: sparse: preprocessor token MAX_LEVEL redefined > > > > Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx> > > --- > > > > Andrew: the conflict happens in Glauber's kmemcg-slab tree. So it's > > better to quickly push this pre-fix to upstream before Glauber's patches. > > > > > > include/linux/idr.h | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > --- linux.orig/include/linux/idr.h 2012-09-10 21:08:51.177452944 +0800 > > +++ linux/include/linux/idr.h 2012-09-10 21:08:57.729452732 +0800 > > @@ -43,10 +43,10 @@ > > #define MAX_ID_MASK (MAX_ID_BIT - 1) > > > > /* Leave the possibility of an incomplete final layer */ > > -#define MAX_LEVEL (MAX_ID_SHIFT + IDR_BITS - 1) / IDR_BITS > > +#define MAX_ID_LEVEL (MAX_ID_SHIFT + IDR_BITS - 1) / IDR_BITS > > > > /* Number of id_layer structs to leave in free list */ > > -#define IDR_FREE_MAX MAX_LEVEL + MAX_LEVEL > > +#define IDR_FREE_MAX MAX_ID_LEVEL + MAX_ID_LEVEL > > > > To be fair, i am a bit confused by the naming. > There is MAX_id_LEVEL but idr_BITS are these different things ? Perhaps not. One is derived from the other. > If not i would argue to give both the same names either ID or IDR. I had the same thought, however gave up at the time because it would make the patch more intrusive. Anyway, here is the new patch for your comments. -- idr: Rename MAX_LEVEL to MAX_IDR_LEVEL To avoid name conflicts: drivers/video/riva/fbdev.c:281:9: sparse: preprocessor token MAX_LEVEL redefined While at it, also make the other names more consistent and add parentheses. Cc: Bernd Petrovitsch <bernd@xxxxxxxxxxxxxxxxxxx> Cc: walter harms <wharms@xxxxxx> Signed-off-by: Fengguang Wu <fengguang.wu@xxxxxxxxx> --- include/linux/idr.h | 10 +++++----- lib/idr.c | 18 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) --- linux.orig/include/linux/idr.h 2012-09-11 17:37:41.533777968 +0800 +++ linux/include/linux/idr.h 2012-09-11 17:38:03.841777248 +0800 @@ -38,15 +38,15 @@ #define IDR_SIZE (1 << IDR_BITS) #define IDR_MASK ((1 << IDR_BITS)-1) -#define MAX_ID_SHIFT (sizeof(int)*8 - 1) -#define MAX_ID_BIT (1U << MAX_ID_SHIFT) -#define MAX_ID_MASK (MAX_ID_BIT - 1) +#define MAX_IDR_SHIFT (sizeof(int)*8 - 1) +#define MAX_IDR_BIT (1U << MAX_IDR_SHIFT) +#define MAX_IDR_MASK (MAX_IDR_BIT - 1) /* Leave the possibility of an incomplete final layer */ -#define MAX_LEVEL (MAX_ID_SHIFT + IDR_BITS - 1) / IDR_BITS +#define MAX_IDR_LEVEL ((MAX_IDR_SHIFT + IDR_BITS - 1) / IDR_BITS) /* Number of id_layer structs to leave in free list */ -#define IDR_FREE_MAX MAX_LEVEL + MAX_LEVEL +#define MAX_IDR_FREE (MAX_IDR_LEVEL * 2) struct idr_layer { unsigned long bitmap; /* A zero bit means "space here" */ --- linux.orig/lib/idr.c 2012-09-11 17:38:02.381777295 +0800 +++ linux/lib/idr.c 2012-09-11 17:38:09.085777079 +0800 @@ -20,7 +20,7 @@ * that id to this code and it returns your pointer. * You can release ids at any time. When all ids are released, most of - * the memory is returned (we keep IDR_FREE_MAX) in a local pool so we + * the memory is returned (we keep MAX_IDR_FREE) in a local pool so we * don't need to go to the memory "store" during an id allocate, just * so you don't need to be too concerned about locking and conflicts * with the slab allocator. @@ -122,7 +122,7 @@ static void idr_mark_full(struct idr_lay */ int idr_pre_get(struct idr *idp, gfp_t gfp_mask) { - while (idp->id_free_cnt < IDR_FREE_MAX) { + while (idp->id_free_cnt < MAX_IDR_FREE) { struct idr_layer *new; new = kmem_cache_zalloc(idr_layer_cache, gfp_mask); if (new == NULL) @@ -179,7 +179,7 @@ static int sub_alloc(struct idr *idp, in sh = IDR_BITS*l; id = ((id >> sh) ^ n ^ m) << sh; } - if ((id >= MAX_ID_BIT) || (id < 0)) + if ((id >= MAX_IDR_BIT) || (id < 0)) return IDR_NOMORE_SPACE; if (l == 0) break; @@ -402,7 +402,7 @@ void idr_remove(struct idr *idp, int id) struct idr_layer *to_free; /* Mask off upper bits we don't use for the search. */ - id &= MAX_ID_MASK; + id &= MAX_IDR_MASK; sub_remove(idp, (idp->layers - 1) * IDR_BITS, id); if (idp->top && idp->top->count == 1 && (idp->layers > 1) && @@ -420,7 +420,7 @@ void idr_remove(struct idr *idp, int id) to_free->bitmap = to_free->count = 0; free_layer(to_free); } - while (idp->id_free_cnt >= IDR_FREE_MAX) { + while (idp->id_free_cnt >= MAX_IDR_FREE) { p = get_from_free_list(idp); /* * Note: we don't call the rcu callback here, since the only @@ -517,7 +517,7 @@ void *idr_find(struct idr *idp, int id) n = (p->layer+1) * IDR_BITS; /* Mask off upper bits we don't use for the search. */ - id &= MAX_ID_MASK; + id &= MAX_IDR_MASK; if (id >= (1 << n)) return NULL; @@ -659,7 +659,7 @@ void *idr_replace(struct idr *idp, void n = (p->layer+1) * IDR_BITS; - id &= MAX_ID_MASK; + id &= MAX_IDR_MASK; if (id >= (1 << n)) return ERR_PTR(-EINVAL); @@ -793,7 +793,7 @@ int ida_get_new_above(struct ida *ida, i if (t < 0) return _idr_rc_to_errno(t); - if (t * IDA_BITMAP_BITS >= MAX_ID_BIT) + if (t * IDA_BITMAP_BITS >= MAX_IDR_BIT) return -ENOSPC; if (t != idr_id) @@ -827,7 +827,7 @@ int ida_get_new_above(struct ida *ida, i } id = idr_id * IDA_BITMAP_BITS + t; - if (id >= MAX_ID_BIT) + if (id >= MAX_IDR_BIT) return -ENOSPC; __set_bit(t, bitmap->bitmap); -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html