[PATCH] libertas: fix sanity check on sequence number in command response

Holger Schurig hs4233 at mail.mn-solutions.de
Mon Mar 3 06:20:12 EST 2008


From: David Woodhouse <dwmw2 at infradead.org>

Slightly more useful if we compare it against the sequence number of the
command we have outstanding, rather than comparing the reply with itself.
    
Doh. Pointed out by Sebastian Siewior
    
Signed-off-by: David Woodhouse <dwmw2 at infradead.org>

diff --git a/drivers/net/wireless/libertas/cmdresp.c b/drivers/net/wireless/libertas/cmdresp.c
index e6b4b23..52d02f3 100644
--- a/drivers/net/wireless/libertas/cmdresp.c
+++ b/drivers/net/wireless/libertas/cmdresp.c
@@ -509,9 +509,9 @@ int lbs_process_rx_command(struct lbs_private *priv)
 		     respcmd, le16_to_cpu(resp->seqnum), priv->upld_len, jiffies);
 	lbs_deb_hex(LBS_DEB_CMD, "CMD_RESP", (void *) resp, priv->upld_len);
 
-	if (resp->seqnum != resp->seqnum) {
+	if (resp->seqnum != priv->cur_cmd->cmdbuf->seqnum) {
 		lbs_pr_info("Received CMD_RESP with invalid sequence %d (expected %d)\n",
-			    le16_to_cpu(resp->seqnum), le16_to_cpu(resp->seqnum));
+			    le16_to_cpu(resp->seqnum), le16_to_cpu(priv->cur_cmd->cmdbuf->seqnum));
 		spin_unlock_irqrestore(&priv->driver_lock, flags);
 		ret = -1;
 		goto done;



More information about the libertas-dev mailing list