summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorMatan Barak <matanb@mellanox.com>2015-10-28 15:52:39 +0100
committerDoug Ledford <dledford@redhat.com>2015-12-23 16:19:54 +0100
commitf3906bd36087dd3440ecaf6e044690374d01f927 (patch)
treefb51c919126dcf12d6cb38340db7bc412ff60786 /drivers
parentMerge branches '4.5/Or-cleanup' and '4.5/rdma-cq' into k.o/for-4.5 (diff)
downloadlinux-f3906bd36087dd3440ecaf6e044690374d01f927.tar.xz
linux-f3906bd36087dd3440ecaf6e044690374d01f927.zip
IB/core: Refactor GID cache's ib_dispatch_event
Refactor ib_dispatch_event into a new function in order to avoid duplicating code in the next patch. Signed-off-by: Matan Barak <matanb@mellanox.com> Reviewed-by: Haggai Eran <haggaie@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/infiniband/core/cache.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index 89bebeada38b..f0703d22ff98 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -112,6 +112,19 @@ struct ib_gid_table {
struct ib_gid_table_entry *data_vec;
};
+static void dispatch_gid_change_event(struct ib_device *ib_dev, u8 port)
+{
+ if (rdma_cap_roce_gid_table(ib_dev, port)) {
+ struct ib_event event;
+
+ event.device = ib_dev;
+ event.element.port_num = port;
+ event.event = IB_EVENT_GID_CHANGE;
+
+ ib_dispatch_event(&event);
+ }
+}
+
static int write_gid(struct ib_device *ib_dev, u8 port,
struct ib_gid_table *table, int ix,
const union ib_gid *gid,
@@ -164,15 +177,9 @@ static int write_gid(struct ib_device *ib_dev, u8 port,
write_unlock_irqrestore(&table->data_vec[ix].lock, flags);
- if (!ret && rdma_cap_roce_gid_table(ib_dev, port)) {
- struct ib_event event;
+ if (!ret)
+ dispatch_gid_change_event(ib_dev, port);
- event.device = ib_dev;
- event.element.port_num = port;
- event.event = IB_EVENT_GID_CHANGE;
-
- ib_dispatch_event(&event);
- }
return ret;
}