ChangeSet 1.2231.1.8, 2005/03/28 19:18:25-08:00, [EMAIL PROTECTED]
[PATCH] slab: kfree(null) is unlikely
- mark kfree(NULL) as being unlikely
- Coding-style consistency for function definitions
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
slab.c | 62 +++++++++++++++++++++++++++-----------------------------------
1 files changed, 27 insertions(+), 35 deletions(-)
diff -Nru a/mm/slab.c b/mm/slab.c
--- a/mm/slab.c 2005-03-28 21:07:59 -08:00
+++ b/mm/slab.c 2005-03-28 21:07:59 -08:00
@@ -510,7 +510,6 @@
CACHE(ULONG_MAX)
#undef CACHE
};
-
EXPORT_SYMBOL(malloc_sizes);
/* Must match cache_sizes above. Out of line to keep cache footprint low. */
@@ -574,7 +573,7 @@
static void enable_cpucache (kmem_cache_t *cachep);
static void cache_reap (void *unused);
-static inline void ** ac_entry(struct array_cache *ac)
+static inline void **ac_entry(struct array_cache *ac)
{
return (void**)(ac+1);
}
@@ -584,7 +583,7 @@
return cachep->array[smp_processor_id()];
}
-static inline kmem_cache_t *kmem_find_general_cachep (size_t size, int
gfpflags)
+static inline kmem_cache_t *kmem_find_general_cachep(size_t size, int gfpflags)
{
struct cache_sizes *csizep = malloc_sizes;
@@ -609,7 +608,7 @@
}
/* Cal the num objs, wastage, and bytes left over for a given slab size. */
-static void cache_estimate (unsigned long gfporder, size_t size, size_t align,
+static void cache_estimate(unsigned long gfporder, size_t size, size_t align,
int flags, size_t *left_over, unsigned int *num)
{
int i;
@@ -667,7 +666,8 @@
}
}
-static struct array_cache *alloc_arraycache(int cpu, int entries, int
batchcount)
+static struct array_cache *alloc_arraycache(int cpu, int entries,
+ int batchcount)
{
int memsize = sizeof(void*)*entries+sizeof(struct array_cache);
struct array_cache *nc = NULL;
@@ -690,8 +690,7 @@
}
static int __devinit cpuup_callback(struct notifier_block *nfb,
- unsigned long action,
- void *hcpu)
+ unsigned long action, void *hcpu)
{
long cpu = (long)hcpu;
kmem_cache_t* cachep;
@@ -958,7 +957,8 @@
#if DEBUG
#ifdef CONFIG_DEBUG_PAGEALLOC
-static void store_stackinfo(kmem_cache_t *cachep, unsigned long *addr,
unsigned long caller)
+static void store_stackinfo(kmem_cache_t *cachep, unsigned long *addr,
+ unsigned long caller)
{
int size = obj_reallen(cachep);
@@ -1616,7 +1616,6 @@
return __cache_shrink(cachep);
}
-
EXPORT_SYMBOL(kmem_cache_shrink);
/**
@@ -1636,7 +1635,7 @@
* The caller must guarantee that noone will allocate memory from the cache
* during the kmem_cache_destroy().
*/
-int kmem_cache_destroy (kmem_cache_t * cachep)
+int kmem_cache_destroy(kmem_cache_t * cachep)
{
int i;
@@ -1681,11 +1680,10 @@
return 0;
}
-
EXPORT_SYMBOL(kmem_cache_destroy);
/* Get the memory for a slab management obj. */
-static struct slab* alloc_slabmgmt (kmem_cache_t *cachep,
+static struct slab* alloc_slabmgmt(kmem_cache_t *cachep,
void *objp, int colour_off, int local_flags)
{
struct slab *slabp;
@@ -1711,8 +1709,8 @@
return (kmem_bufctl_t *)(slabp+1);
}
-static void cache_init_objs (kmem_cache_t * cachep,
- struct slab * slabp, unsigned long ctor_flags)
+static void cache_init_objs(kmem_cache_t *cachep,
+ struct slab *slabp, unsigned long ctor_flags)
{
int i;
@@ -1787,7 +1785,7 @@
* Grow (by 1) the number of slabs within a cache. This is called by
* kmem_cache_alloc() when there are no active objs left in a cache.
*/
-static int cache_grow (kmem_cache_t * cachep, int flags, int nodeid)
+static int cache_grow(kmem_cache_t *cachep, int flags, int nodeid)
{
struct slab *slabp;
void *objp;
@@ -1892,7 +1890,8 @@
}
}
-static void *cache_free_debugcheck (kmem_cache_t * cachep, void * objp, void
*caller)
+static void *cache_free_debugcheck(kmem_cache_t *cachep, void *objp,
+ void *caller)
{
struct page *page;
unsigned int objnr;
@@ -1990,7 +1989,7 @@
#define check_slabp(x,y) do { } while(0)
#endif
-static void* cache_alloc_refill(kmem_cache_t* cachep, int flags)
+static void *cache_alloc_refill(kmem_cache_t *cachep, int flags)
{
int batchcount;
struct kmem_list3 *l3;
@@ -2142,7 +2141,7 @@
#endif
-static inline void * __cache_alloc (kmem_cache_t *cachep, int flags)
+static inline void *__cache_alloc(kmem_cache_t *cachep, int flags)
{
unsigned long save_flags;
void* objp;
@@ -2221,7 +2220,7 @@
}
}
-static void cache_flusharray (kmem_cache_t* cachep, struct array_cache *ac)
+static void cache_flusharray(kmem_cache_t *cachep, struct array_cache *ac)
{
int batchcount;
@@ -2278,7 +2277,7 @@
*
* Called with disabled ints.
*/
-static inline void __cache_free (kmem_cache_t *cachep, void* objp)
+static inline void __cache_free(kmem_cache_t *cachep, void *objp)
{
struct array_cache *ac = ac_data(cachep);
@@ -2304,11 +2303,10 @@
* Allocate an object from this cache. The flags are only relevant
* if the cache has no available objects.
*/
-void * kmem_cache_alloc (kmem_cache_t *cachep, int flags)
+void *kmem_cache_alloc(kmem_cache_t *cachep, int flags)
{
return __cache_alloc(cachep, flags);
}
-
EXPORT_SYMBOL(kmem_cache_alloc);
/**
@@ -2461,7 +2459,7 @@
* platforms. For example, on i386, it means that the memory must come
* from the first 16MB.
*/
-void * __kmalloc (size_t size, int flags)
+void *__kmalloc(size_t size, int flags)
{
kmem_cache_t *cachep;
@@ -2470,7 +2468,6 @@
return NULL;
return __cache_alloc(cachep, flags);
}
-
EXPORT_SYMBOL(__kmalloc);
#ifdef CONFIG_SMP
@@ -2514,7 +2511,6 @@
kfree(pdata);
return NULL;
}
-
EXPORT_SYMBOL(__alloc_percpu);
#endif
@@ -2526,7 +2522,7 @@
* Free an object which was previously allocated from this
* cache.
*/
-void kmem_cache_free (kmem_cache_t *cachep, void *objp)
+void kmem_cache_free(kmem_cache_t *cachep, void *objp)
{
unsigned long flags;
@@ -2534,7 +2530,6 @@
__cache_free(cachep, objp);
local_irq_restore(flags);
}
-
EXPORT_SYMBOL(kmem_cache_free);
/**
@@ -2555,7 +2550,6 @@
memset(ret, 0, n * size);
return ret;
}
-
EXPORT_SYMBOL(kcalloc);
/**
@@ -2565,12 +2559,12 @@
* Don't free memory not originally allocated by kmalloc()
* or you will run into trouble.
*/
-void kfree (const void *objp)
+void kfree(const void *objp)
{
kmem_cache_t *c;
unsigned long flags;
- if (!objp)
+ if (unlikely(!objp))
return;
local_irq_save(flags);
kfree_debugcheck(objp);
@@ -2578,7 +2572,6 @@
__cache_free(c, (void*)objp);
local_irq_restore(flags);
}
-
EXPORT_SYMBOL(kfree);
#ifdef CONFIG_SMP
@@ -2602,7 +2595,6 @@
}
kfree(p);
}
-
EXPORT_SYMBOL(free_percpu);
#endif
@@ -2610,7 +2602,6 @@
{
return obj_reallen(cachep);
}
-
EXPORT_SYMBOL(kmem_cache_size);
struct ccupdate_struct {
@@ -2631,7 +2622,8 @@
}
-static int do_tune_cpucache (kmem_cache_t* cachep, int limit, int batchcount,
int shared)
+static int do_tune_cpucache(kmem_cache_t *cachep, int limit, int batchcount,
+ int shared)
{
struct ccupdate_struct new;
struct array_cache *new_shared;
@@ -2686,7 +2678,7 @@
}
-static void enable_cpucache (kmem_cache_t *cachep)
+static void enable_cpucache(kmem_cache_t *cachep)
{
int err;
int limit, shared;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html