2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-28 07:04:00 +08:00
linux-next/drivers/infiniband/core
Haggai Eran 4fc701ead7 IB/core: Properly handle registration of on-demand paging MRs after dereg
When the last on-demand paging MR is released the notifier count is
left non-zero so that concurrent page faults will have to abort. If a
new MR is then registered, the counter is reset. However, the decision
is made to put the new MR in the list waiting for the notifier count
to reach zero, before the counter is reset. An invalidation or another
MR registration can release the MR to handle page faults, but without
such an event the MR can wait forever.

The patch fixes this issue by adding a check whether the MR is the
first on-demand paging MR when deciding whether it is ready to handle
page faults. If it is the first MR, we know that there are no mmu
notifiers running in parallel to the registration.

Fixes: 882214e2b1 ("IB/core: Implement support for MMU notifiers regarding on demand paging regions")
Signed-off-by: Haggai Eran <haggaie@mellanox.com>
Signed-off-by: Shachar Raindel <raindel@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2015-02-17 22:14:56 -08:00
..
addr.c IB/addr: Improve address resolution callback scheduling 2014-12-15 18:10:13 -08:00
agent.c IB/mad: add new ioctl to ABI to support new registration options 2014-08-10 20:36:00 -07:00
agent.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
cache.c IB/core: Add ib_find_exact_cached_pkey() 2012-09-30 20:33:30 -07:00
cm_msgs.h IB/core: Move CM_xxx_ATTR_ID macros from cm_msgs.h to ib_cm.h 2012-07-08 18:05:06 -07:00
cm.c IB/mad: add new ioctl to ABI to support new registration options 2014-08-10 20:36:00 -07:00
cma.c RDMA/core: Add support for iWARP Port Mapper user space service 2014-06-10 10:11:45 -07:00
core_priv.h IB/core: Resolve Ethernet L2 addresses when modifying QP 2014-01-19 15:14:04 -08:00
device.c IB/core: Handle table with full and partial membership for the same P_Key 2012-09-30 20:33:29 -07:00
fmr_pool.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
iwcm.c RDMA/iwcm: Use a default listen backlog if needed 2014-08-05 07:33:24 -07:00
iwcm.h
iwpm_msg.c RDMA/core: Add support for iWARP Port Mapper user space service 2014-06-10 10:11:45 -07:00
iwpm_util.c RDMA/core: Add support for iWARP Port Mapper user space service 2014-06-10 10:11:45 -07:00
iwpm_util.h RDMA/core: Add support for iWARP Port Mapper user space service 2014-06-10 10:11:45 -07:00
mad_priv.h IB/mad: Update module to [pr|dev]_* style print messages 2014-08-10 20:35:39 -07:00
mad_rmpp.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mad_rmpp.h RDMA: Remove subversion $Id tags 2008-07-14 23:48:44 -07:00
mad.c IB/mad: Add user space RMPP support 2014-08-10 20:36:00 -07:00
Makefile IB/core: Implement support for MMU notifiers regarding on demand paging regions 2014-12-15 18:13:36 -08:00
multicast.c IB/core: Fix mgid key handling in SA agent multicast data-base 2014-12-15 18:10:13 -08:00
netlink.c RDMA/core: Add support for iWARP Port Mapper user space service 2014-06-10 10:11:45 -07:00
packer.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
sa_query.c IB/mad: add new ioctl to ABI to support new registration options 2014-08-10 20:36:00 -07:00
sa.h
smi.c IB/mad: Check hop count field in directed route MAD to avoid array overflow 2009-09-05 20:24:10 -07:00
smi.h
sysfs.c IB/core: Fix kobject leak on device register error flow 2014-06-05 09:37:10 -07:00
ucm.c IB/core: convert to idr_alloc() 2013-02-27 19:10:16 -08:00
ucma.c IB/cma: IBoE (RoCE) IP-based GID addressing 2014-01-18 14:12:35 -08:00
ud_header.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
umem_odp.c IB/core: Properly handle registration of on-demand paging MRs after dereg 2015-02-17 22:14:56 -08:00
umem_rbtree.c IB/core: Implement support for MMU notifiers regarding on demand paging regions 2014-12-15 18:13:36 -08:00
umem.c IB/core: Implement support for MMU notifiers regarding on demand paging regions 2014-12-15 18:13:36 -08:00
user_mad.c IB/mad: Add user space RMPP support 2014-08-10 20:36:00 -07:00
uverbs_cmd.c Revert "IB/core: Add support for extended query device caps" 2015-02-06 00:54:33 -08:00
uverbs_main.c IB/core: Temporarily disable ex_query_device uverb 2015-02-03 09:29:11 -08:00
uverbs_marshall.c IB/core: When marshaling uverbs path, clear unused fields 2014-09-22 09:46:52 -07:00
uverbs.h Revert "IB/core: Add support for extended query device caps" 2015-02-06 00:54:33 -08:00
verbs.c IB/core: Do not resolve VLAN if already resolved 2014-12-15 18:10:12 -08:00