From: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Date: Tue, 16 Feb 2010 08:59:50 +0000 (+0000)
Subject: IB/ehca: Require in_wc in process_mad()
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=45e354e3f235ecb51e16576d6668c43cddbb6e68;p=linux.git

IB/ehca: Require in_wc in process_mad()

If the caller does not pass a valid in_wc to process_mad(), return MAD
failure status, as it is not possible to generate a valid MAD redirect
response (and redirects are the only MAD responses ehca generates).

Signed-off-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
---

diff --git a/drivers/infiniband/hw/ehca/ehca_sqp.c b/drivers/infiniband/hw/ehca/ehca_sqp.c
index 8c1213f8916a1..dba8f9f8b9964 100644
--- a/drivers/infiniband/hw/ehca/ehca_sqp.c
+++ b/drivers/infiniband/hw/ehca/ehca_sqp.c
@@ -222,7 +222,7 @@ int ehca_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num,
 {
 	int ret;
 
-	if (!port_num || port_num > ibdev->phys_port_cnt)
+	if (!port_num || port_num > ibdev->phys_port_cnt || !in_wc)
 		return IB_MAD_RESULT_FAILURE;
 
 	/* accept only pma request */