Skip to contentSkip to conversation

IPoIB: Fix IPoIB to conform to ethtool definitions

PATCH New Eli Cohen 1 participant 1 message Nov 8, 2010 InfiniBand

lore
Share & tools
lore

Eli Cohen

author
#0 lore raw

PATCH 1/1 IPoIB: Fix IPoIB to conform to ethtool definitions

Ethtool documentation states that when one of the parameters, rx_coalesce_usecs or rx_max_coalesced_frames is set to zero while the other has a none zero value, the none zero parameter should still be operative. For example, if rx_max_coalesced_frames is set to zero while rx_coalesce_usecs is > 0, the rate of events is limited to not exceed (1 / rx_coalesce_usecs). In the opposite case, an event is generated only after rx_max_coalesced_frames have arrived. The documentation also states that setting both to zero is invalid.

---
 drivers/infiniband/ulp/ipoib/ipoib_ethtool.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c +7 -0
index 1a1657c..c7efba3 100644
@@ -93,6 +93,13 @@ static int ipoib_set_coalesce(struct net_device *dev,
 	    coal->rx_max_coalesced_frames > 0xffff)
 		return -EINVAL;
 
+	if (coal->rx_max_coalesced_frames | coal->rx_coalesce_usecs) {
+		if (!coal->rx_max_coalesced_frames)
+			coal->rx_max_coalesced_frames = 0xffff;
+		else if (!coal->rx_coalesce_usecs)
+			coal->rx_coalesce_usecs = 0xffff;
+	}
+
 	ret = ib_modify_cq(priv->recv_cq, coal->rx_max_coalesced_frames,
 			   coal->rx_coalesce_usecs);
 	if (ret && ret != -ENOSYS) {
Signature · 6 lines
1.7.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html