Commit 000b8490 authored by Joe Perches's avatar Joe Perches Committed by Jason Gunthorpe
Browse files

RDMA/rxe: Make rxe_type_info static const

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: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent e30bb300
Loading
Loading
Loading
Loading
+18 −10
Original line number Diff line number Diff line
@@ -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 @@ void *rxe_alloc_locked(struct rxe_pool *pool)

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;
+0 −14
Original line number Diff line number Diff line
@@ -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;