aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/core/cache.c
diff options
context:
space:
mode:
authorParav Pandit <parav@mellanox.com>2018-05-02 06:12:55 -0400
committerDoug Ledford <dledford@redhat.com>2018-05-09 12:08:21 -0400
commit25a1cd3fe551bfeffc12d6ef1aafb2f2ef5e54f6 (patch)
tree618aec1266c7ac479b6f2cac0d71386d824e6d97 /drivers/infiniband/core/cache.c
parent056f9c7f39bf517d58f32797f1eb1465bb6f6ef2 (diff)
IB/core: Make gid_table_reserve_default() return void
gid_table_reserve_default() always returns zero. Make it return void and simplify error checking. rdma_port is already calculated, use that while calling gid_table_reserve_default() instead of recalculating it. Reviewed-by: Daniel Jurgens <danielj@mellanox.com> Signed-off-by: Parav Pandit <parav@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core/cache.c')
-rw-r--r--drivers/infiniband/core/cache.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index e337b08de2ff..140fd351764d 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -757,8 +757,8 @@ void ib_cache_gid_set_default_gid(struct ib_device *ib_dev, u8 port,
757 } 757 }
758} 758}
759 759
760static int gid_table_reserve_default(struct ib_device *ib_dev, u8 port, 760static void gid_table_reserve_default(struct ib_device *ib_dev, u8 port,
761 struct ib_gid_table *table) 761 struct ib_gid_table *table)
762{ 762{
763 unsigned int i; 763 unsigned int i;
764 unsigned long roce_gid_type_mask; 764 unsigned long roce_gid_type_mask;
@@ -768,8 +768,7 @@ static int gid_table_reserve_default(struct ib_device *ib_dev, u8 port,
768 roce_gid_type_mask = roce_gid_type_mask_support(ib_dev, port); 768 roce_gid_type_mask = roce_gid_type_mask_support(ib_dev, port);
769 num_default_gids = hweight_long(roce_gid_type_mask); 769 num_default_gids = hweight_long(roce_gid_type_mask);
770 for (i = 0; i < num_default_gids && i < table->sz; i++) { 770 for (i = 0; i < num_default_gids && i < table->sz; i++) {
771 struct ib_gid_table_entry *entry = 771 struct ib_gid_table_entry *entry = &table->data_vec[i];
772 &table->data_vec[i];
773 772
774 entry->props |= GID_TABLE_ENTRY_DEFAULT; 773 entry->props |= GID_TABLE_ENTRY_DEFAULT;
775 current_gid = find_next_bit(&roce_gid_type_mask, 774 current_gid = find_next_bit(&roce_gid_type_mask,
@@ -777,8 +776,6 @@ static int gid_table_reserve_default(struct ib_device *ib_dev, u8 port,
777 current_gid); 776 current_gid);
778 entry->attr.gid_type = current_gid++; 777 entry->attr.gid_type = current_gid++;
779 } 778 }
780
781 return 0;
782} 779}
783 780
784static int _gid_table_setup_one(struct ib_device *ib_dev) 781static int _gid_table_setup_one(struct ib_device *ib_dev)
@@ -790,19 +787,14 @@ static int _gid_table_setup_one(struct ib_device *ib_dev)
790 for (port = 0; port < ib_dev->phys_port_cnt; port++) { 787 for (port = 0; port < ib_dev->phys_port_cnt; port++) {
791 u8 rdma_port = port + rdma_start_port(ib_dev); 788 u8 rdma_port = port + rdma_start_port(ib_dev);
792 789
793 table = 790 table = alloc_gid_table(
794 alloc_gid_table(
795 ib_dev->port_immutable[rdma_port].gid_tbl_len); 791 ib_dev->port_immutable[rdma_port].gid_tbl_len);
796 if (!table) { 792 if (!table) {
797 err = -ENOMEM; 793 err = -ENOMEM;
798 goto rollback_table_setup; 794 goto rollback_table_setup;
799 } 795 }
800 796
801 err = gid_table_reserve_default(ib_dev, 797 gid_table_reserve_default(ib_dev, rdma_port, table);
802 port + rdma_start_port(ib_dev),
803 table);
804 if (err)
805 goto rollback_table_setup;
806 ib_dev->cache.ports[port].gid = table; 798 ib_dev->cache.ports[port].gid = table;
807 } 799 }
808 800