Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3906bd3 authored by Matan Barak's avatar Matan Barak Committed by Doug Ledford
Browse files

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: default avatarMatan Barak <matanb@mellanox.com>
Reviewed-by: default avatarHaggai Eran <haggaie@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 882f3b3b
Loading
Loading
Loading
Loading
+15 −8
Original line number Diff line number Diff line
@@ -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;
}