drivers/atm/firestream.c: Fix unsigned return type
Julia Lawall [Sun, 5 Sep 2010 09:00:23 +0000 (09:00 +0000)]
The function has an unsigned return type, but returns a negative constant
to indicate an error condition.  The result of calling the function is
always stored in a variable of type (signed) int, and thus unsigned can be
dropped from the return type.

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: David S. Miller <davem@davemloft.net>

drivers/atm/firestream.c

index 8717809..5d86bb8 100644 (file)
@@ -444,8 +444,8 @@ static inline void fs_kfree_skb (struct sk_buff * skb)
 #define ROUND_NEAREST 3
 /********** make rate (not quite as much fun as Horizon) **********/
 
-static unsigned int make_rate (unsigned int rate, int r,
-                              u16 * bits, unsigned int * actual) 
+static int make_rate(unsigned int rate, int r,
+                     u16 *bits, unsigned int *actual)
 {
        unsigned char exp = -1; /* hush gcc */
        unsigned int man = -1;  /* hush gcc */