diff options
author | Yuval Shaia <yuval.shaia@oracle.com> | 2017-01-25 11:41:37 -0500 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2017-01-27 14:33:59 -0500 |
commit | 24dc831b77eca9361cf835be59fa69ea0e471afc (patch) | |
tree | 5aa6e10dfc77e48e2c969b3f6f870b3fc18f7e5e /drivers/infiniband/core/cache.c | |
parent | 2bce1a6d2209c8c776a9598741f5aa1991689dcb (diff) |
IB/core: Add inline function to validate port
Signed-off-by: Yuval Shaia <yuval.shaia@oracle.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/core/cache.c')
-rw-r--r-- | drivers/infiniband/core/cache.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c index 2e52021aa999..b1371eb9f46c 100644 --- a/drivers/infiniband/core/cache.c +++ b/drivers/infiniband/core/cache.c | |||
@@ -504,8 +504,7 @@ int ib_find_cached_gid_by_port(struct ib_device *ib_dev, | |||
504 | struct ib_gid_attr val = {.ndev = ndev, .gid_type = gid_type}; | 504 | struct ib_gid_attr val = {.ndev = ndev, .gid_type = gid_type}; |
505 | unsigned long flags; | 505 | unsigned long flags; |
506 | 506 | ||
507 | if (port < rdma_start_port(ib_dev) || | 507 | if (!rdma_is_port_valid(ib_dev, port)) |
508 | port > rdma_end_port(ib_dev)) | ||
509 | return -ENOENT; | 508 | return -ENOENT; |
510 | 509 | ||
511 | table = ib_dev->cache.ports[port - rdma_start_port(ib_dev)].gid; | 510 | table = ib_dev->cache.ports[port - rdma_start_port(ib_dev)].gid; |
@@ -562,8 +561,7 @@ static int ib_cache_gid_find_by_filter(struct ib_device *ib_dev, | |||
562 | bool found = false; | 561 | bool found = false; |
563 | 562 | ||
564 | 563 | ||
565 | if (port < rdma_start_port(ib_dev) || | 564 | if (!rdma_is_port_valid(ib_dev, port) || |
566 | port > rdma_end_port(ib_dev) || | ||
567 | !rdma_protocol_roce(ib_dev, port)) | 565 | !rdma_protocol_roce(ib_dev, port)) |
568 | return -EPROTONOSUPPORT; | 566 | return -EPROTONOSUPPORT; |
569 | 567 | ||
@@ -845,7 +843,7 @@ int ib_get_cached_gid(struct ib_device *device, | |||
845 | unsigned long flags; | 843 | unsigned long flags; |
846 | struct ib_gid_table *table; | 844 | struct ib_gid_table *table; |
847 | 845 | ||
848 | if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device)) | 846 | if (!rdma_is_port_valid(device, port_num)) |
849 | return -EINVAL; | 847 | return -EINVAL; |
850 | 848 | ||
851 | table = device->cache.ports[port_num - rdma_start_port(device)].gid; | 849 | table = device->cache.ports[port_num - rdma_start_port(device)].gid; |
@@ -895,7 +893,7 @@ int ib_get_cached_pkey(struct ib_device *device, | |||
895 | unsigned long flags; | 893 | unsigned long flags; |
896 | int ret = 0; | 894 | int ret = 0; |
897 | 895 | ||
898 | if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device)) | 896 | if (!rdma_is_port_valid(device, port_num)) |
899 | return -EINVAL; | 897 | return -EINVAL; |
900 | 898 | ||
901 | read_lock_irqsave(&device->cache.lock, flags); | 899 | read_lock_irqsave(&device->cache.lock, flags); |
@@ -924,7 +922,7 @@ int ib_find_cached_pkey(struct ib_device *device, | |||
924 | int ret = -ENOENT; | 922 | int ret = -ENOENT; |
925 | int partial_ix = -1; | 923 | int partial_ix = -1; |
926 | 924 | ||
927 | if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device)) | 925 | if (!rdma_is_port_valid(device, port_num)) |
928 | return -EINVAL; | 926 | return -EINVAL; |
929 | 927 | ||
930 | read_lock_irqsave(&device->cache.lock, flags); | 928 | read_lock_irqsave(&device->cache.lock, flags); |
@@ -964,7 +962,7 @@ int ib_find_exact_cached_pkey(struct ib_device *device, | |||
964 | int i; | 962 | int i; |
965 | int ret = -ENOENT; | 963 | int ret = -ENOENT; |
966 | 964 | ||
967 | if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device)) | 965 | if (!rdma_is_port_valid(device, port_num)) |
968 | return -EINVAL; | 966 | return -EINVAL; |
969 | 967 | ||
970 | read_lock_irqsave(&device->cache.lock, flags); | 968 | read_lock_irqsave(&device->cache.lock, flags); |
@@ -993,7 +991,7 @@ int ib_get_cached_lmc(struct ib_device *device, | |||
993 | unsigned long flags; | 991 | unsigned long flags; |
994 | int ret = 0; | 992 | int ret = 0; |
995 | 993 | ||
996 | if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device)) | 994 | if (!rdma_is_port_valid(device, port_num)) |
997 | return -EINVAL; | 995 | return -EINVAL; |
998 | 996 | ||
999 | read_lock_irqsave(&device->cache.lock, flags); | 997 | read_lock_irqsave(&device->cache.lock, flags); |
@@ -1038,7 +1036,7 @@ static void ib_cache_update(struct ib_device *device, | |||
1038 | bool use_roce_gid_table = | 1036 | bool use_roce_gid_table = |
1039 | rdma_cap_roce_gid_table(device, port); | 1037 | rdma_cap_roce_gid_table(device, port); |
1040 | 1038 | ||
1041 | if (port < rdma_start_port(device) || port > rdma_end_port(device)) | 1039 | if (!rdma_is_port_valid(device, port)) |
1042 | return; | 1040 | return; |
1043 | 1041 | ||
1044 | table = device->cache.ports[port - rdma_start_port(device)].gid; | 1042 | table = device->cache.ports[port - rdma_start_port(device)].gid; |