RDMA: Add and use rdma_for_each_port

We have many loops iterating over all of the end port numbers on a struct
ib_device, simplify them with a for_each helper.

Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Jason Gunthorpe
2019-02-12 21:12:47 -07:00
parent f2a0e45f36
commit ea1075edcb
12 changed files with 53 additions and 46 deletions

View File

@@ -2827,6 +2827,16 @@ static inline u8 rdma_start_port(const struct ib_device *device)
return rdma_cap_ib_switch(device) ? 0 : 1;
}
/**
* rdma_for_each_port - Iterate over all valid port numbers of the IB device
* @device - The struct ib_device * to iterate over
* @iter - The unsigned int to store the port number
*/
#define rdma_for_each_port(device, iter) \
for (iter = rdma_start_port(device + BUILD_BUG_ON_ZERO(!__same_type( \
unsigned int, iter))); \
iter <= rdma_end_port(device); (iter)++)
/**
* rdma_end_port - Return the last valid port number for the device
* specified