aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>2015-05-18 17:40:04 +0200
committerFelipe Balbi <balbi@ti.com>2015-05-21 16:29:14 -0500
commit81dff8692865292aa70ec3fd93489ae9f33f709e (patch)
tree5bdc26bb459ae02e9be6dfbd9722b31ff4ca7c20 /drivers/usb
parentusb: gadget: rndis: don't duplicate the "i" variable (diff)
downloadlinux-dev-81dff8692865292aa70ec3fd93489ae9f33f709e.tar.xz
linux-dev-81dff8692865292aa70ec3fd93489ae9f33f709e.zip
usb: gadget: rndis: use signed type for a signed value
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>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/function/rndis.c4
-rw-r--r--drivers/usb/gadget/function/rndis.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/gadget/function/rndis.c b/drivers/usb/gadget/function/rndis.c
index aac59c03a732..70d3917cc003 100644
--- a/drivers/usb/gadget/function/rndis.c
+++ b/drivers/usb/gadget/function/rndis.c
@@ -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__);
diff --git a/drivers/usb/gadget/function/rndis.h b/drivers/usb/gadget/function/rndis.h
index 194abb130e49..ef92eb66d8ad 100644
--- a/drivers/usb/gadget/function/rndis.h
+++ b/drivers/usb/gadget/function/rndis.h
@@ -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;