Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cb1860d authored by Colin Ian King's avatar Colin Ian King Committed by David S. Miller
Browse files

cxgb4: fix -ve error check on a signed iq



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: default avatarColin Ian King <colin.king@canonical.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bce3414e
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -117,11 +117,11 @@ static int validate_filter(struct net_device *dev,
	return 0;
	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 ch_filter_specification *fs)
{
{
	struct adapter *adapter = netdev2adap(dev);
	struct adapter *adapter = netdev2adap(dev);
	unsigned int iq;
	int iq;


	/* If the user has requested steering matching Ingress Packets
	/* If the user has requested steering matching Ingress Packets
	 * to a specific Queue Set, we need to make sure it's in range
	 * 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 filter_ctx *ctx)
{
{
	struct adapter *adapter = netdev2adap(dev);
	struct adapter *adapter = netdev2adap(dev);
	unsigned int max_fidx, fidx, iq;
	unsigned int max_fidx, fidx;
	struct filter_entry *f;
	struct filter_entry *f;
	u32 iconf;
	u32 iconf;
	int ret;
	int iq, ret;


	max_fidx = adapter->tids.nftids;
	max_fidx = adapter->tids.nftids;
	if (filter_id != (max_fidx + adapter->tids.nsftids - 1) &&
	if (filter_id != (max_fidx + adapter->tids.nsftids - 1) &&