|
@@ -1811,6 +1811,11 @@ static int validate_mad(const struct ib_mad_hdr *mad_hdr,
|
|
if (qp_num == 0)
|
|
if (qp_num == 0)
|
|
valid = 1;
|
|
valid = 1;
|
|
} else {
|
|
} else {
|
|
|
|
+ /* CM attributes other than ClassPortInfo only use Send method */
|
|
|
|
+ if ((mad_hdr->mgmt_class == IB_MGMT_CLASS_CM) &&
|
|
|
|
+ (mad_hdr->attr_id != IB_MGMT_CLASSPORTINFO_ATTR_ID) &&
|
|
|
|
+ (mad_hdr->method != IB_MGMT_METHOD_SEND))
|
|
|
|
+ goto out;
|
|
/* Filter GSI packets sent to QP0 */
|
|
/* Filter GSI packets sent to QP0 */
|
|
if (qp_num != 0)
|
|
if (qp_num != 0)
|
|
valid = 1;
|
|
valid = 1;
|