lkml.org 
[lkml]   [2017]   [Oct]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 087/192] IB/core: Create common start/end port functions
    3.16.49-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ira Weiny <ira.weiny@intel.com>

    commit 0cf18d7723055709faf51b50f5a33253b480637f upstream.

    Previously start_port and end_port were defined in 2 places, cache.c and
    device.c and this prevented their use in other modules.

    Make these common functions, change the name to reflect the rdma
    name space, and update existing users.

    Signed-off-by: Ira Weiny <ira.weiny@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/infiniband/core/cache.c | 61 ++++++++++++++++------------------------
    drivers/infiniband/core/device.c | 26 +++++------------
    include/rdma/ib_verbs.h | 27 ++++++++++++++++++
    3 files changed, 59 insertions(+), 55 deletions(-)

    --- a/drivers/infiniband/core/cache.c
    +++ b/drivers/infiniband/core/cache.c
    @@ -58,17 +58,6 @@ struct ib_update_work {
    u8 port_num;
    };

    -static inline int start_port(struct ib_device *device)
    -{
    - return (device->node_type == RDMA_NODE_IB_SWITCH) ? 0 : 1;
    -}
    -
    -static inline int end_port(struct ib_device *device)
    -{
    - return (device->node_type == RDMA_NODE_IB_SWITCH) ?
    - 0 : device->phys_port_cnt;
    -}
    -
    int ib_get_cached_gid(struct ib_device *device,
    u8 port_num,
    int index,
    @@ -78,12 +67,12 @@ int ib_get_cached_gid(struct ib_device *
    unsigned long flags;
    int ret = 0;

    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    read_lock_irqsave(&device->cache.lock, flags);

    - cache = device->cache.gid_cache[port_num - start_port(device)];
    + cache = device->cache.gid_cache[port_num - rdma_start_port(device)];

    if (index < 0 || index >= cache->table_len)
    ret = -EINVAL;
    @@ -112,11 +101,11 @@ int ib_find_cached_gid(struct ib_device

    read_lock_irqsave(&device->cache.lock, flags);

    - for (p = 0; p <= end_port(device) - start_port(device); ++p) {
    + for (p = 0; p <= rdma_end_port(device) - rdma_start_port(device); ++p) {
    cache = device->cache.gid_cache[p];
    for (i = 0; i < cache->table_len; ++i) {
    if (!memcmp(gid, &cache->table[i], sizeof *gid)) {
    - *port_num = p + start_port(device);
    + *port_num = p + rdma_start_port(device);
    if (index)
    *index = i;
    ret = 0;
    @@ -140,12 +129,12 @@ int ib_get_cached_pkey(struct ib_device
    unsigned long flags;
    int ret = 0;

    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    read_lock_irqsave(&device->cache.lock, flags);

    - cache = device->cache.pkey_cache[port_num - start_port(device)];
    + cache = device->cache.pkey_cache[port_num - rdma_start_port(device)];

    if (index < 0 || index >= cache->table_len)
    ret = -EINVAL;
    @@ -169,12 +158,12 @@ int ib_find_cached_pkey(struct ib_device
    int ret = -ENOENT;
    int partial_ix = -1;

    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    read_lock_irqsave(&device->cache.lock, flags);

    - cache = device->cache.pkey_cache[port_num - start_port(device)];
    + cache = device->cache.pkey_cache[port_num - rdma_start_port(device)];

    *index = -1;

    @@ -209,12 +198,12 @@ int ib_find_exact_cached_pkey(struct ib_
    int i;
    int ret = -ENOENT;

    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    read_lock_irqsave(&device->cache.lock, flags);

    - cache = device->cache.pkey_cache[port_num - start_port(device)];
    + cache = device->cache.pkey_cache[port_num - rdma_start_port(device)];

    *index = -1;

    @@ -238,11 +227,11 @@ int ib_get_cached_lmc(struct ib_device *
    unsigned long flags;
    int ret = 0;

    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    read_lock_irqsave(&device->cache.lock, flags);
    - *lmc = device->cache.lmc_cache[port_num - start_port(device)];
    + *lmc = device->cache.lmc_cache[port_num - rdma_start_port(device)];
    read_unlock_irqrestore(&device->cache.lock, flags);

    return ret;
    @@ -303,13 +292,13 @@ static void ib_cache_update(struct ib_de

    write_lock_irq(&device->cache.lock);

    - old_pkey_cache = device->cache.pkey_cache[port - start_port(device)];
    - old_gid_cache = device->cache.gid_cache [port - start_port(device)];
    + old_pkey_cache = device->cache.pkey_cache[port - rdma_start_port(device)];
    + old_gid_cache = device->cache.gid_cache [port - rdma_start_port(device)];

    - device->cache.pkey_cache[port - start_port(device)] = pkey_cache;
    - device->cache.gid_cache [port - start_port(device)] = gid_cache;
    + device->cache.pkey_cache[port - rdma_start_port(device)] = pkey_cache;
    + device->cache.gid_cache [port - rdma_start_port(device)] = gid_cache;

    - device->cache.lmc_cache[port - start_port(device)] = tprops->lmc;
    + device->cache.lmc_cache[port - rdma_start_port(device)] = tprops->lmc;

    write_unlock_irq(&device->cache.lock);

    @@ -363,14 +352,14 @@ static void ib_cache_setup_one(struct ib

    device->cache.pkey_cache =
    kmalloc(sizeof *device->cache.pkey_cache *
    - (end_port(device) - start_port(device) + 1), GFP_KERNEL);
    + (rdma_end_port(device) - rdma_start_port(device) + 1), GFP_KERNEL);
    device->cache.gid_cache =
    kmalloc(sizeof *device->cache.gid_cache *
    - (end_port(device) - start_port(device) + 1), GFP_KERNEL);
    + (rdma_end_port(device) - rdma_start_port(device) + 1), GFP_KERNEL);

    device->cache.lmc_cache = kmalloc(sizeof *device->cache.lmc_cache *
    - (end_port(device) -
    - start_port(device) + 1),
    + (rdma_end_port(device) -
    + rdma_start_port(device) + 1),
    GFP_KERNEL);

    if (!device->cache.pkey_cache || !device->cache.gid_cache ||
    @@ -380,10 +369,10 @@ static void ib_cache_setup_one(struct ib
    goto err;
    }

    - for (p = 0; p <= end_port(device) - start_port(device); ++p) {
    + for (p = 0; p <= rdma_end_port(device) - rdma_start_port(device); ++p) {
    device->cache.pkey_cache[p] = NULL;
    device->cache.gid_cache [p] = NULL;
    - ib_cache_update(device, p + start_port(device));
    + ib_cache_update(device, p + rdma_start_port(device));
    }

    INIT_IB_EVENT_HANDLER(&device->cache.event_handler,
    @@ -394,7 +383,7 @@ static void ib_cache_setup_one(struct ib
    return;

    err_cache:
    - for (p = 0; p <= end_port(device) - start_port(device); ++p) {
    + for (p = 0; p <= rdma_end_port(device) - rdma_start_port(device); ++p) {
    kfree(device->cache.pkey_cache[p]);
    kfree(device->cache.gid_cache[p]);
    }
    @@ -412,7 +401,7 @@ static void ib_cache_cleanup_one(struct
    ib_unregister_event_handler(&device->cache.event_handler);
    flush_workqueue(ib_wq);

    - for (p = 0; p <= end_port(device) - start_port(device); ++p) {
    + for (p = 0; p <= rdma_end_port(device) - rdma_start_port(device); ++p) {
    kfree(device->cache.pkey_cache[p]);
    kfree(device->cache.gid_cache[p]);
    }
    --- a/drivers/infiniband/core/device.c
    +++ b/drivers/infiniband/core/device.c
    @@ -151,18 +151,6 @@ static int alloc_name(char *name)
    return 0;
    }

    -static int start_port(struct ib_device *device)
    -{
    - return (device->node_type == RDMA_NODE_IB_SWITCH) ? 0 : 1;
    -}
    -
    -
    -static int end_port(struct ib_device *device)
    -{
    - return (device->node_type == RDMA_NODE_IB_SWITCH) ?
    - 0 : device->phys_port_cnt;
    -}
    -
    /**
    * ib_alloc_device - allocate an IB device struct
    * @size:size of structure to allocate
    @@ -232,7 +220,7 @@ static int read_port_table_lengths(struc
    if (!tprops)
    goto out;

    - num_ports = end_port(device) - start_port(device) + 1;
    + num_ports = rdma_end_port(device) - rdma_start_port(device) + 1;

    device->pkey_tbl_len = kmalloc(sizeof *device->pkey_tbl_len * num_ports,
    GFP_KERNEL);
    @@ -242,7 +230,7 @@ static int read_port_table_lengths(struc
    goto err;

    for (port_index = 0; port_index < num_ports; ++port_index) {
    - ret = ib_query_port(device, port_index + start_port(device),
    + ret = ib_query_port(device, port_index + rdma_start_port(device),
    tprops);
    if (ret)
    goto err;
    @@ -575,7 +563,7 @@ int ib_query_port(struct ib_device *devi
    u8 port_num,
    struct ib_port_attr *port_attr)
    {
    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    return device->query_port(device, port_num, port_attr);
    @@ -653,7 +641,7 @@ int ib_modify_port(struct ib_device *dev
    if (!device->modify_port)
    return -ENOSYS;

    - if (port_num < start_port(device) || port_num > end_port(device))
    + if (port_num < rdma_start_port(device) || port_num > rdma_end_port(device))
    return -EINVAL;

    return device->modify_port(device, port_num, port_modify_mask,
    @@ -676,8 +664,8 @@ int ib_find_gid(struct ib_device *device
    union ib_gid tmp_gid;
    int ret, port, i;

    - for (port = start_port(device); port <= end_port(device); ++port) {
    - for (i = 0; i < device->gid_tbl_len[port - start_port(device)]; ++i) {
    + for (port = rdma_start_port(device); port <= rdma_end_port(device); ++port) {
    + for (i = 0; i < device->gid_tbl_len[port - rdma_start_port(device)]; ++i) {
    ret = ib_query_gid(device, port, i, &tmp_gid);
    if (ret)
    return ret;
    @@ -709,7 +697,7 @@ int ib_find_pkey(struct ib_device *devic
    u16 tmp_pkey;
    int partial_ix = -1;

    - for (i = 0; i < device->pkey_tbl_len[port_num - start_port(device)]; ++i) {
    + for (i = 0; i < device->pkey_tbl_len[port_num - rdma_start_port(device)]; ++i) {
    ret = ib_query_pkey(device, port_num, i, &tmp_pkey);
    if (ret)
    return ret;
    --- a/include/rdma/ib_verbs.h
    +++ b/include/rdma/ib_verbs.h
    @@ -1694,6 +1694,33 @@ int ib_query_port(struct ib_device *devi
    enum rdma_link_layer rdma_port_get_link_layer(struct ib_device *device,
    u8 port_num);

    +/**
    + * rdma_start_port - Return the first valid port number for the device
    + * specified
    + *
    + * @device: Device to be checked
    + *
    + * Return start port number
    + */
    +static inline u8 rdma_start_port(const struct ib_device *device)
    +{
    + return (device->node_type == RDMA_NODE_IB_SWITCH) ? 0 : 1;
    +}
    +
    +/**
    + * rdma_end_port - Return the last valid port number for the device
    + * specified
    + *
    + * @device: Device to be checked
    + *
    + * Return last port number
    + */
    +static inline u8 rdma_end_port(const struct ib_device *device)
    +{
    + return (device->node_type == RDMA_NODE_IB_SWITCH) ?
    + 0 : device->phys_port_cnt;
    +}
    +
    int ib_query_gid(struct ib_device *device,
    u8 port_num, int index, union ib_gid *gid);

    \
     
     \ /
      Last update: 2017-10-09 14:55    [W:4.142 / U:0.304 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site