linux/drivers/infiniband/core
Majd Dibbiny 8fe8bacb92 IB/core: Add ordered workqueue for RoCE GID management
Currently the RoCE GID management uses the ib_wq to do add and delete new GIDs
according to the netdev events.

The ib_wq isn't an ordered workqueue and thus two work elements can be executed
concurrently which will result in unexpected behavior and inconsistency of the
GIDs cache content.

Example:
ifconfig eth1 11.11.11.11/16 up

This command will invoke the following netdev events in the following order:
1. NETDEV_UP
2. NETDEV_DOWN
3. NETDEV_UP

If (2) and (3) will be executed concurrently or in reverse order, instead of
having a new GID with 11.11.11.11 IP, we will end up without any new GIDs.

Signed-off-by: Majd Dibbiny <majd@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-07-17 21:21:25 -04:00
..
addr.c IB/core: Don't resolve IP address to the loopback device 2017-07-17 11:45:42 -04:00
agent.c IB/core: Rename ib_destroy_ah to rdma_destroy_ah 2017-05-01 14:32:43 -04:00
agent.h
cache.c IB/core: Enforce PKey security on QPs 2017-05-23 12:26:59 -04:00
cgroup.c IB/core: added support to use rdma cgroup controller 2017-01-10 11:14:27 -05:00
cm_msgs.h
cm.c RDMA/SA: Fix kernel panic in CMA request handler flow 2017-06-01 17:20:14 -04:00
cma_configfs.c IB/cma: Add default RoCE TOS to CMA configfs 2017-02-15 09:51:28 -05:00
cma.c IB/core: Don't resolve IP address to the loopback device 2017-07-17 11:45:42 -04:00
core_priv.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2017-07-05 11:26:35 -07:00
cq.c IB/cq: Don't process more than the given budget 2017-03-24 22:19:48 -04:00
device.c IB/core: Fix static analysis warning in ib_policy_change_task 2017-07-07 09:49:26 +10:00
fmr_pool.c IB/fmr_pool: Convert the cleanup thread into kthread worker API 2017-04-25 14:24:17 -04:00
iwcm.c rdma_cm: add rdma_reject_msg() helper function 2016-12-14 11:38:28 -05:00
iwcm.h iw_cm: free cm_id resources on the last deref 2016-08-02 13:15:18 -04:00
iwpm_msg.c IB/core: Remove debug prints after allocation failure 2016-12-03 13:12:52 -05:00
iwpm_util.c netlink: pass extended ACK struct to parsing functions 2017-04-13 13:58:22 -04:00
iwpm_util.h iwpm: crash fix for large connections test 2016-03-16 13:48:32 -04:00
mad_priv.h IB/mad: use CQ abstraction 2016-01-19 15:25:45 -05:00
mad_rmpp.c IB/core: Use rdma_ah_attr accessor functions 2017-05-01 14:32:43 -04:00
mad_rmpp.h
mad.c IB/core: Enforce security on management datagrams 2017-05-23 12:27:21 -04:00
Makefile IB/core: Enforce PKey security on QPs 2017-05-23 12:26:59 -04:00
mr_pool.c IB/core: add a simple MR pool 2016-05-13 13:37:18 -04:00
multicast.c IB/core: Define 'ib' and 'roce' rdma_ah_attr types 2017-05-01 14:32:43 -04:00
netlink.c RDMA/netlink: Reduce exposure of RDMA netlink functions 2017-06-01 17:20:11 -04:00
opa_smi.h IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
packer.c IB/core: trivial prink cleanup. 2016-03-03 10:20:25 -05:00
rdma_core.c IB/core: Nullify ib_uobject during allocation 2017-04-20 11:44:07 -04:00
rdma_core.h IB/core: Add support for fd objects 2017-04-05 13:28:04 -04:00
roce_gid_mgmt.c IB/core: Add ordered workqueue for RoCE GID management 2017-07-17 21:21:25 -04:00
rw.c IB/core, RDMA RW API: Do not exceed QP SGE send limit 2016-08-02 12:02:41 -04:00
sa_query.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
sa.h
security.c IB/core: Fix uninitialized variable use in check_qp_port_pkey_settings 2017-07-07 09:49:26 +10:00
smi.c IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
smi.h IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
sysfs.c IB/core: Add HDR speed enum 2017-04-21 12:29:31 -04:00
ucm.c char/misc patches for 4.12-rc1 2017-05-04 19:15:35 -07:00
ucma.c IB/SA: Add OPA path record type 2017-05-01 14:39:02 -04:00
ud_header.c IB/core: trivial prink cleanup. 2016-03-03 10:20:25 -05:00
umem_odp.c RDMA/umem: Fix missing mmap_sem in get umem ODP call 2017-06-01 17:20:13 -04:00
umem_rbtree.c IB/umem: Update on demand page (ODP) support 2017-02-14 11:41:17 -05:00
umem.c RDMA/core: not to set page dirty bit if it's already set. 2017-06-01 17:20:12 -04:00
user_mad.c char/misc patches for 4.12-rc1 2017-05-04 19:15:35 -07:00
uverbs_cmd.c IB/uverbs: Make use of ib_modify_qp variant to avoid resolving DMAC 2017-07-17 21:20:49 -04:00
uverbs_main.c char/misc patches for 4.12-rc1 2017-05-04 19:15:35 -07:00
uverbs_marshall.c RDMA/uverbs: Declare local function static and add brackets to sizeof 2017-06-01 17:20:12 -04:00
uverbs_std_types.c IB/core: Rename ib_destroy_ah to rdma_destroy_ah 2017-05-01 14:32:43 -04:00
uverbs.h IB/core: Introduce drop flow specification 2017-04-21 12:26:05 -04:00
verbs.c IB/core: Introduce modify QP operation with udata 2017-07-17 21:20:41 -04:00