[PATCH] cxgb4: fix -ve error check on a signed iq

Subsystems: cxgb4 ethernet driver (cxgb4), networking drivers, the rest

STALE3678d

2 messages, 2 authors, 2016-09-24 · open the first message on its own page

[PATCH] cxgb4: fix -ve error check on a signed iq

From: Colin King <hidden>
Date: 2016-09-23 13:45:19

From: Colin Ian King <redacted>

iq is unsigned, so the error check for iq < 0 has no effect so errors
can slip past this check.  Fix this by making iq signed and also
get_filter_steerq return a signed int so a -ve error can be returned.

Signed-off-by: Colin Ian King <redacted>
---
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
index 2a61617..9c3644d 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
@@ -117,11 +117,11 @@ static int validate_filter(struct net_device *dev,
 	return 0;
 }
 
-static unsigned int get_filter_steerq(struct net_device *dev,
+static int get_filter_steerq(struct net_device *dev,
 				      struct ch_filter_specification *fs)
 {
 	struct adapter *adapter = netdev2adap(dev);
-	unsigned int iq;
+	int iq;
 
 	/* If the user has requested steering matching Ingress Packets
 	 * to a specific Queue Set, we need to make sure it's in range
@@ -443,10 +443,10 @@ int __cxgb4_set_filter(struct net_device *dev, int filter_id,
 		       struct filter_ctx *ctx)
 {
 	struct adapter *adapter = netdev2adap(dev);
-	unsigned int max_fidx, fidx, iq;
+	unsigned int max_fidx, fidx;
 	struct filter_entry *f;
 	u32 iconf;
-	int ret;
+	int iq, ret;
 
 	max_fidx = adapter->tids.nftids;
 	if (filter_id != (max_fidx + adapter->tids.nsftids - 1) &&
-- 
2.9.3

Re: [PATCH] cxgb4: fix -ve error check on a signed iq

From: David Miller <davem@davemloft.net>
Date: 2016-09-24 12:31:55

From: Colin King <redacted>
Date: Fri, 23 Sep 2016 14:45:13 +0100
quoted hunk
-static unsigned int get_filter_steerq(struct net_device *dev,
+static int get_filter_steerq(struct net_device *dev,
 				      struct ch_filter_specification *fs)
If you change the location of the openning parenthesis of the first
line, you must reindent the second line so that the arguments are
placed preciely at the column following that openning parenthesis.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help