linux_dsm_epyc7002/drivers/infiniband/core
Bart Van Assche 8ec0a0e6b5 IB/umad: Fix error handling
Avoid leaking a kref count in ib_umad_open() if port->ib_dev == NULL
or if nonseekable_open() fails.

Avoid leaking a kref count, that sm_sem is kept down and also that the
IB_PORT_SM capability mask is not cleared in ib_umad_sm_open() if
nonseekable_open() fails.

Since container_of() never returns NULL, remove the code that tests
whether container_of() returns NULL.

Moving the kref_get() call from the start of ib_umad_*open() to the
end is safe since it is the responsibility of the caller of these
functions to ensure that the cdev pointer remains valid until at least
when these functions return.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Cc: <stable@vger.kernel.org>

[ydroneaud@opteya.com: rework a bit to reduce the amount of code changed]

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>

[ nonseekable_open() can't actually fail, but....  - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
2014-05-29 21:27:30 -07:00
..
addr.c IB/core: Ethernet L2 attributes in verbs/cm structures 2014-01-14 14:20:54 -08:00
agent.c IB/mad: Improve an error message so error code is included 2011-03-18 09:42:20 -07:00
agent.h
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/core: Don't resolve passive side RoCE L2 address in CMA REQ handler 2014-04-01 14:05:26 -07:00
cma.c IB/core: Don't resolve passive side RoCE L2 address in CMA REQ handler 2014-04-01 14:05:26 -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 IB/core: Fix unused variable warning 2014-01-22 22:55:04 -08:00
iwcm.h
mad_priv.h
mad_rmpp.c
mad_rmpp.h
mad.c IB/mad: Check and handle potential DMA mapping errors 2014-04-01 10:36:07 -07:00
Makefile IB/core: Make ib_addr a core IB module 2014-01-19 15:14:04 -08:00
multicast.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
netlink.c IB/netlink: Remove superfluous RDMA_NL_GET_OP() masking 2013-11-08 14:42:54 -08: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/core: Ethernet L2 attributes in verbs/cm structures 2014-01-14 14:20:54 -08:00
sa.h
smi.c
smi.h
sysfs.c IB/core: Add support for RDMA_NODE_USNIC_UDP 2014-01-18 13:48:54 -08: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.c IB: Refactor umem to use linear SG table 2014-03-04 10:34:28 -08:00
user_mad.c IB/umad: Fix error handling 2014-05-29 21:27:30 -07:00
uverbs_cmd.c IB/core: Resolve Ethernet L2 addresses when modifying QP 2014-01-19 15:14:04 -08:00
uverbs_main.c IB/uverbs: Check access to userspace response buffer in extended command 2013-12-20 10:54:34 -08:00
uverbs_marshall.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
uverbs.h IB/uverbs: New macro to set pointers to NULL if length is 0 in INIT_UDATA() 2013-12-20 10:53:44 -08:00
verbs.c IB/core: Introduce signature verbs API 2014-03-07 11:26:49 -08:00