diff mbox

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

Message ID 20160925211445.11234-1-colin.king@canonical.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Colin Ian King Sept. 25, 2016, 9:14 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

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 <colin.king@canonical.com>
---
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

David Miller Sept. 26, 2016, 3:40 a.m. UTC | #1
From: Colin King <colin.king@canonical.com>
Date: Sun, 25 Sep 2016 14:14:45 -0700

> From: Colin Ian King <colin.king@canonical.com>
> 
> 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 <colin.king@canonical.com>

Applied, thanks.
diff mbox

Patch

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c
index 2a61617..1073673 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,
-				      struct ch_filter_specification *fs)
+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) &&