[PATCH 3/3] usb: gadget: rndis: use signed type for a signed value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>
---
 drivers/usb/gadget/function/rndis.c | 4 ++--
 drivers/usb/gadget/function/rndis.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/gadget/function/rndis.c b/drivers/usb/gadget/function/rndis.c
index aac59c0..70d3917 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 194abb1..ef92eb6 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;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux