From 791677ee54c0aa5f086b8d16d51d1a4fdd58074c Mon Sep 17 00:00:00 2001 From: adilger Date: Thu, 12 Jun 2003 05:38:42 +0000 Subject: [PATCH] Remove use of local stack variables (size, ptr) for {PORTAL,OBD}_{ALLOC,FREE}(). I think these were intended to avoid doing multiple evals of math/function calls for the size, but all of our usage so far is passing in a constant or a variable that has already computed the size. By reordering the *_FREE() macros slightly, we do not need to store the size of the free in a local stack variable either. We have to be careful though, because "size" may be part of the struct we are poisoning/freeing. --- lnet/include/linux/kp30.h | 42 ++++++++++++++++++------------------- lustre/portals/include/linux/kp30.h | 42 ++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 44 deletions(-) diff --git a/lnet/include/linux/kp30.h b/lnet/include/linux/kp30.h index 6d7f3f3..ee3b9fc 100644 --- a/lnet/include/linux/kp30.h +++ b/lnet/include/linux/kp30.h @@ -262,28 +262,27 @@ do { \ #define PORTAL_ALLOC(ptr, size) \ do { \ - long s = size; \ LASSERT (!in_interrupt()); \ - if (s > PORTAL_VMALLOC_SIZE) \ - (ptr) = vmalloc(s); \ + if ((size) > PORTAL_VMALLOC_SIZE) \ + (ptr) = vmalloc(size); \ else \ - (ptr) = kmalloc(s, GFP_NOFS); \ + (ptr) = kmalloc((size), GFP_NOFS); \ if ((ptr) == NULL) \ - CERROR("PORTALS: out of memory at %s:%d (tried to alloc" \ - " '" #ptr "' = %ld)\n", __FILE__, __LINE__, s); \ + CERROR("PORTALS: out of memory at %s:%d (tried to alloc '"\ + #ptr "' = %d)\n", __FILE__, __LINE__, (int)(size));\ else { \ - portal_kmem_inc((ptr), s); \ - memset((ptr), 0, s); \ + portal_kmem_inc((ptr), (size)); \ + memset((ptr), 0, (size)); \ } \ - CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %ld at %p (tot %d).\n", \ - s, (ptr), atomic_read (&portal_kmemory)); \ + CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %d at %p (tot %d).\n", \ + (int)(size), (ptr), atomic_read (&portal_kmemory)); \ } while (0) #define PORTAL_FREE(ptr, size) \ do { \ - long s = (size); \ + int s = (size); \ if ((ptr) == NULL) { \ - CERROR("PORTALS: free NULL '" #ptr "' (%ld bytes) at " \ + CERROR("PORTALS: free NULL '" #ptr "' (%d bytes) at " \ "%s:%d\n", s, __FILE__, __LINE__); \ break; \ } \ @@ -292,39 +291,38 @@ do { \ else \ kfree(ptr); \ portal_kmem_dec((ptr), s); \ - CDEBUG(D_MALLOC, "kfreed '" #ptr "': %ld at %p (tot %d).\n", \ - s, (ptr), atomic_read (&portal_kmemory)); \ + CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %d).\n", \ + s, (ptr), atomic_read(&portal_kmemory)); \ } while (0) #define PORTAL_SLAB_ALLOC(ptr, slab, size) \ do { \ - long s = (size); \ - LASSERT (!in_interrupt()); \ + LASSERT(!in_interrupt()); \ (ptr) = kmem_cache_alloc((slab), SLAB_KERNEL); \ if ((ptr) == NULL) { \ CERROR("PORTALS: out of memory at %s:%d (tried to alloc" \ " '" #ptr "' from slab '" #slab "')\n", __FILE__, \ __LINE__); \ } else { \ - portal_kmem_inc((ptr), s); \ - memset((ptr), 0, s); \ + portal_kmem_inc((ptr), (size)); \ + memset((ptr), 0, (size)); \ } \ CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %ld at %p (tot %d).\n", \ - s, (ptr), atomic_read (&portal_kmemory)); \ + (int)(size), (ptr), atomic_read(&portal_kmemory)); \ } while (0) #define PORTAL_SLAB_FREE(ptr, slab, size) \ do { \ - long s = (size); \ + int s = (size); \ if ((ptr) == NULL) { \ - CERROR("PORTALS: free NULL '" #ptr "' (%ld bytes) at " \ + CERROR("PORTALS: free NULL '" #ptr "' (%d bytes) at " \ "%s:%d\n", s, __FILE__, __LINE__); \ break; \ } \ memset((ptr), 0x5a, s); \ kmem_cache_free((slab), ptr); \ portal_kmem_dec((ptr), s); \ - CDEBUG(D_MALLOC, "kfreed '" #ptr "': %ld at %p (tot %d).\n", \ + CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %d).\n", \ s, (ptr), atomic_read (&portal_kmemory)); \ } while (0) diff --git a/lustre/portals/include/linux/kp30.h b/lustre/portals/include/linux/kp30.h index 6d7f3f3..ee3b9fc 100644 --- a/lustre/portals/include/linux/kp30.h +++ b/lustre/portals/include/linux/kp30.h @@ -262,28 +262,27 @@ do { \ #define PORTAL_ALLOC(ptr, size) \ do { \ - long s = size; \ LASSERT (!in_interrupt()); \ - if (s > PORTAL_VMALLOC_SIZE) \ - (ptr) = vmalloc(s); \ + if ((size) > PORTAL_VMALLOC_SIZE) \ + (ptr) = vmalloc(size); \ else \ - (ptr) = kmalloc(s, GFP_NOFS); \ + (ptr) = kmalloc((size), GFP_NOFS); \ if ((ptr) == NULL) \ - CERROR("PORTALS: out of memory at %s:%d (tried to alloc" \ - " '" #ptr "' = %ld)\n", __FILE__, __LINE__, s); \ + CERROR("PORTALS: out of memory at %s:%d (tried to alloc '"\ + #ptr "' = %d)\n", __FILE__, __LINE__, (int)(size));\ else { \ - portal_kmem_inc((ptr), s); \ - memset((ptr), 0, s); \ + portal_kmem_inc((ptr), (size)); \ + memset((ptr), 0, (size)); \ } \ - CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %ld at %p (tot %d).\n", \ - s, (ptr), atomic_read (&portal_kmemory)); \ + CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %d at %p (tot %d).\n", \ + (int)(size), (ptr), atomic_read (&portal_kmemory)); \ } while (0) #define PORTAL_FREE(ptr, size) \ do { \ - long s = (size); \ + int s = (size); \ if ((ptr) == NULL) { \ - CERROR("PORTALS: free NULL '" #ptr "' (%ld bytes) at " \ + CERROR("PORTALS: free NULL '" #ptr "' (%d bytes) at " \ "%s:%d\n", s, __FILE__, __LINE__); \ break; \ } \ @@ -292,39 +291,38 @@ do { \ else \ kfree(ptr); \ portal_kmem_dec((ptr), s); \ - CDEBUG(D_MALLOC, "kfreed '" #ptr "': %ld at %p (tot %d).\n", \ - s, (ptr), atomic_read (&portal_kmemory)); \ + CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %d).\n", \ + s, (ptr), atomic_read(&portal_kmemory)); \ } while (0) #define PORTAL_SLAB_ALLOC(ptr, slab, size) \ do { \ - long s = (size); \ - LASSERT (!in_interrupt()); \ + LASSERT(!in_interrupt()); \ (ptr) = kmem_cache_alloc((slab), SLAB_KERNEL); \ if ((ptr) == NULL) { \ CERROR("PORTALS: out of memory at %s:%d (tried to alloc" \ " '" #ptr "' from slab '" #slab "')\n", __FILE__, \ __LINE__); \ } else { \ - portal_kmem_inc((ptr), s); \ - memset((ptr), 0, s); \ + portal_kmem_inc((ptr), (size)); \ + memset((ptr), 0, (size)); \ } \ CDEBUG(D_MALLOC, "kmalloced '" #ptr "': %ld at %p (tot %d).\n", \ - s, (ptr), atomic_read (&portal_kmemory)); \ + (int)(size), (ptr), atomic_read(&portal_kmemory)); \ } while (0) #define PORTAL_SLAB_FREE(ptr, slab, size) \ do { \ - long s = (size); \ + int s = (size); \ if ((ptr) == NULL) { \ - CERROR("PORTALS: free NULL '" #ptr "' (%ld bytes) at " \ + CERROR("PORTALS: free NULL '" #ptr "' (%d bytes) at " \ "%s:%d\n", s, __FILE__, __LINE__); \ break; \ } \ memset((ptr), 0x5a, s); \ kmem_cache_free((slab), ptr); \ portal_kmem_dec((ptr), s); \ - CDEBUG(D_MALLOC, "kfreed '" #ptr "': %ld at %p (tot %d).\n", \ + CDEBUG(D_MALLOC, "kfreed '" #ptr "': %d at %p (tot %d).\n", \ s, (ptr), atomic_read (&portal_kmemory)); \ } while (0) -- 1.8.3.1