RDMA/rxe: Make rxe_type_info static const
authorJoe Perches <joe@perches.com>
Sun, 24 Oct 2021 17:13:14 +0000 (10:13 -0700)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 28 Oct 2021 11:58:27 +0000 (08:58 -0300)
Make struct rxe_type_info static const and local to the only uses.  Moves
a bit of data to text.

$ size drivers/infiniband/sw/rxe/rxe_pool.o* (defconfig w/ infiniband swe)
   text    data     bss     dec     hex filename
   4456      12       0    4468    1174 drivers/infiniband/sw/rxe/rxe_pool.o.new
   3817     652       0    4469    1175 drivers/infiniband/sw/rxe/rxe_pool.o.old

Link: https://lore.kernel.org/r/166b715d71f98336e8ecab72b0dbdd266eee9193.camel@perches.com
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_pool.c
drivers/infiniband/sw/rxe/rxe_pool.h

index ed24273..2e80bb6 100644 (file)
@@ -7,9 +7,17 @@
 #include "rxe.h"
 #include "rxe_loc.h"
 
-/* info about object pools
- */
-struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
+static const struct rxe_type_info {
+       const char *name;
+       size_t size;
+       size_t elem_offset;
+       void (*cleanup)(struct rxe_pool_entry *obj);
+       enum rxe_pool_flags flags;
+       u32 min_index;
+       u32 max_index;
+       size_t key_offset;
+       size_t key_size;
+} rxe_type_info[RXE_NUM_TYPES] = {
        [RXE_TYPE_UC] = {
                .name           = "rxe-uc",
                .size           = sizeof(struct rxe_ucontext),
@@ -60,8 +68,8 @@ struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
                .elem_offset    = offsetof(struct rxe_mr, pelem),
                .cleanup        = rxe_mr_cleanup,
                .flags          = RXE_POOL_INDEX,
-               .max_index      = RXE_MAX_MR_INDEX,
                .min_index      = RXE_MIN_MR_INDEX,
+               .max_index      = RXE_MAX_MR_INDEX,
        },
        [RXE_TYPE_MW] = {
                .name           = "rxe-mw",
@@ -69,8 +77,8 @@ struct rxe_type_info rxe_type_info[RXE_NUM_TYPES] = {
                .elem_offset    = offsetof(struct rxe_mw, pelem),
                .cleanup        = rxe_mw_cleanup,
                .flags          = RXE_POOL_INDEX | RXE_POOL_NO_ALLOC,
-               .max_index      = RXE_MAX_MW_INDEX,
                .min_index      = RXE_MIN_MW_INDEX,
+               .max_index      = RXE_MAX_MW_INDEX,
        },
        [RXE_TYPE_MC_GRP] = {
                .name           = "rxe-mc_grp",
@@ -324,7 +332,7 @@ void __rxe_drop_index(struct rxe_pool_entry *elem)
 
 void *rxe_alloc_locked(struct rxe_pool *pool)
 {
-       struct rxe_type_info *info = &rxe_type_info[pool->type];
+       const struct rxe_type_info *info = &rxe_type_info[pool->type];
        struct rxe_pool_entry *elem;
        u8 *obj;
 
@@ -349,7 +357,7 @@ out_cnt:
 
 void *rxe_alloc(struct rxe_pool *pool)
 {
-       struct rxe_type_info *info = &rxe_type_info[pool->type];
+       const struct rxe_type_info *info = &rxe_type_info[pool->type];
        struct rxe_pool_entry *elem;
        u8 *obj;
 
@@ -392,7 +400,7 @@ void rxe_elem_release(struct kref *kref)
        struct rxe_pool_entry *elem =
                container_of(kref, struct rxe_pool_entry, ref_cnt);
        struct rxe_pool *pool = elem->pool;
-       struct rxe_type_info *info = &rxe_type_info[pool->type];
+       const struct rxe_type_info *info = &rxe_type_info[pool->type];
        u8 *obj;
 
        if (pool->cleanup)
@@ -408,7 +416,7 @@ void rxe_elem_release(struct kref *kref)
 
 void *rxe_pool_get_index_locked(struct rxe_pool *pool, u32 index)
 {
-       struct rxe_type_info *info = &rxe_type_info[pool->type];
+       const struct rxe_type_info *info = &rxe_type_info[pool->type];
        struct rb_node *node;
        struct rxe_pool_entry *elem;
        u8 *obj;
@@ -450,7 +458,7 @@ void *rxe_pool_get_index(struct rxe_pool *pool, u32 index)
 
 void *rxe_pool_get_key_locked(struct rxe_pool *pool, void *key)
 {
-       struct rxe_type_info *info = &rxe_type_info[pool->type];
+       const struct rxe_type_info *info = &rxe_type_info[pool->type];
        struct rb_node *node;
        struct rxe_pool_entry *elem;
        u8 *obj;
index 1ff2250..8ecd9f8 100644 (file)
@@ -32,20 +32,6 @@ enum rxe_elem_type {
 
 struct rxe_pool_entry;
 
-struct rxe_type_info {
-       const char              *name;
-       size_t                  size;
-       size_t                  elem_offset;
-       void                    (*cleanup)(struct rxe_pool_entry *obj);
-       enum rxe_pool_flags     flags;
-       u32                     max_index;
-       u32                     min_index;
-       size_t                  key_offset;
-       size_t                  key_size;
-};
-
-extern struct rxe_type_info rxe_type_info[];
-
 struct rxe_pool_entry {
        struct rxe_pool         *pool;
        struct kref             ref_cnt;