Messages in this thread | | | Date | Sun, 29 Mar 2009 12:39:54 +0200 | From | Marcin Slusarz <> | Subject | Re: [PATCH 1/3] xvmalloc memory allocator |
| |
Nitin Gupta wrote: > +static void stat_inc(u64 *value) > +{ > + (*value)++; > +} > + > +static void stat_dec(u64 *value) > +{ > + (*value)--; > +}
Why not open code it?
> + > +static u32 test_flag(struct block_header *block, enum blockflags flag) > +{ > + return block->prev & (1 << flag); > +} > + > +static void set_flag(struct block_header *block, enum blockflags flag) > +{ > + block->prev |= (1 << flag); > +} > + > +static void clear_flag(struct block_header *block, enum blockflags flag) > +{ > + block->prev &= ~(1 << flag); > +}
Why don't you use test_bit / __set_bit / __clear_bit directly?
> +struct xv_pool *xv_create_pool(void) > +{ > + int i; > + u32 ovhd_size; > + struct xv_pool *pool; > + > + ovhd_size = roundup(sizeof(*pool), PAGE_SIZE); > + pool = kmalloc(ovhd_size, GFP_KERNEL); > + if (!pool) > + return NULL; > + > + memset(pool, 0, ovhd_size);
Please use kzalloc.
> + > + for (i = 0; i < NUM_FREE_LISTS; i++) { > + pool->freelist[i].pagenum = 0; > + pool->freelist[i].offset = 0; > + }
It was already zeroed by memset.
> + > + spin_lock_init(&pool->lock); > + > + return pool; > +} > +EXPORT_SYMBOL_GPL(xv_create_pool); > +
| |