c482af646d
For non-special QPs, the port value becomes non-zero only at the
RESET-to-INIT transition. If the QP has not undergone that transition,
its port number value is still zero.
If such a QP is destroyed before being moved out of the RESET state,
subtracting one from the qp port number results in a negative value.
Using that negative value as an index into the qp1_proxy array
results in an out-of-bounds array reference.
Fix this by testing that the QP type is one that uses qp1_proxy before
using the port number. For special QPs of all types, the port number is
specified at QP creation time.
Fixes:
|
||
---|---|---|
.. | ||
ah.c | ||
alias_GUID.c | ||
cm.c | ||
cq.c | ||
doorbell.c | ||
Kconfig | ||
mad.c | ||
main.c | ||
Makefile | ||
mcg.c | ||
mlx4_ib.h | ||
mr.c | ||
qp.c | ||
srq.c | ||
sysfs.c |