usb: gadget: rndis: use signed type for a signed value
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Mon, 18 May 2015 15:40:04 +0000 (17:40 +0200)
committerFelipe Balbi <balbi@ti.com>
Thu, 21 May 2015 21:29:14 +0000 (16:29 -0500)
rndis_get_nr() returns either a non-negative value on success
or a negative value on failure. In case of failure an error code
is returned to the caller of rndis_register().
If the "i" is unsigned, the information about error from rndis_get_nr()
is lost. If there is no error but rndis_get_nr() returns a value greater
than 256 the least significant bits of i are zero effectively limiting the
number of configs to 256.

This patch fixes that.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/function/rndis.c
drivers/usb/gadget/function/rndis.h

index aac59c0..70d3917 100644 (file)
@@ -872,7 +872,7 @@ static inline void rndis_put_nr(int nr)
 struct rndis_params *rndis_register(void (*resp_avail)(void *v), void *v)
 {
        struct rndis_params *params;
-       u8 i;
+       int i;
 
        if (!resp_avail)
                return ERR_PTR(-EINVAL);
@@ -923,7 +923,7 @@ EXPORT_SYMBOL_GPL(rndis_register);
 
 void rndis_deregister(struct rndis_params *params)
 {
-       u8 i;
+       int i;
 
        pr_debug("%s:\n", __func__);
 
index 194abb1..ef92eb6 100644 (file)
@@ -177,7 +177,7 @@ typedef struct rndis_resp_t
 
 typedef struct rndis_params
 {
-       u8                      confignr;
+       int                     confignr;
        u8                      used;
        u16                     saved_filter;
        enum rndis_state        state;