[ofw] [PATCH] libibmad: Fix build on win8

Hefty, Sean sean.hefty at intel.com
Thu Aug 18 09:46:49 PDT 2011


The win8 compiler appears to be even more brain dead than its
predecessor.  It complains of an uninitialized variable mad in
rpc.c around line 213.  Fix this by removing the redirect
variable and using while (1) / break instead.

Problem was reported by Leonid Keller <leonid at mellanox.co.il>

Signed-off-by: Sean Hefty <sean.hefty at intel.com>
Reviewed-by: Hal Rosenstock <hal at mellanox.com>
---
 src/rpc.c |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/rpc.c b/src/rpc.c
index d20c321..19a5a70 100644
--- a/src/rpc.c
+++ b/src/rpc.c
@@ -213,13 +213,12 @@ void *mad_rpc(const struct ibmad_port *port, ib_rpc_t * rpc,
 {
 	int status, len;
 	uint8_t sndbuf[1024], rcvbuf[1024], *mad;
-	int redirect = 1;
 	ib_rpc_v1_t *rpcv1 = (ib_rpc_v1_t *)rpc;
 	int error = 0;
 
 	if ((rpc->mgtclass & IB_MAD_RPC_VERSION_MASK) == IB_MAD_RPC_VERSION1)
 		rpcv1->error = 0;
-	while (redirect) {
+	do {
 		len = 0;
 		memset(sndbuf, 0, umad_size() + IB_MAD_SIZE);
 
@@ -247,10 +246,10 @@ void *mad_rpc(const struct ibmad_port *port, ib_rpc_t * rpc,
 			/* update dport for next request and retry */
 			/* bail if redirection fails */
 			if (redirect_port(dport, mad))
-				redirect = 0;
+				break;
 		} else
-			redirect = 0;
-	}
+			break;
+	} while (1);
 
 	if ((rpc->mgtclass & IB_MAD_RPC_VERSION_MASK) == IB_MAD_RPC_VERSION1)
 		rpcv1->error = error;





More information about the ofw mailing list