drivers/net/wireless/iwlwifi/iwl-agn.c: Fix return value from an unsigned function
authorJulia Lawall <julia@diku.dk>
Sun, 5 Sep 2010 19:00:26 +0000 (21:00 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 7 Sep 2010 17:54:34 +0000 (13:54 -0400)
The function has an unsigned return type, but returns a negative constant
to indicate an error condition.  Another error condition in the same
function is indicated by returning 0, and indeed the only call to the
function checks for 0 to detect errors, so the return of a negative value
it converted to a return of 0.

A sematic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@exists@
identifier f;
constant C;
@@

 unsigned f(...)
 { <+...
*  return -C;
 ...+> }
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn.c

index 55ac079..c8a2ec8 100644 (file)
@@ -369,7 +369,7 @@ static unsigned int iwl_hw_get_beacon_cmd(struct iwl_priv *priv,
 
        if (!priv->beacon_ctx) {
                IWL_ERR(priv, "trying to build beacon w/o beacon context!\n");
-               return -EINVAL;
+               return 0;
        }
 
        /* Initialize memory */