[PATCH 6/6][focal:linux-azure] net: mana: Use int to check the return value of mana_gd_poll_cq()

Tim Gardner tim.gardner at canonical.com
Tue May 18 11:58:02 UTC 2021


From: Dexuan Cui <decui at microsoft.com>

BugLink: https://bugs.launchpad.net/bugs/1928788

mana_gd_poll_cq() may return -1 if an overflow error is detected (this
should never happen unless there is a bug in the driver or the hardware).

Fix the type of the variable "comp_read" by using int rather than u32.

Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
Fixes: ca9c54d2d6a5 ("net: mana: Add a driver for Microsoft Azure Network Adapter (MANA)")
Signed-off-by: Dexuan Cui <decui at microsoft.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(backported from commit d90a94680bc0a8069d93282bc5f2966d00b9c4a4)
[rtg - Fence off netdev_lockdep_set_classes()]
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
---
 drivers/net/ethernet/microsoft/mana/hw_channel.c | 2 +-
 drivers/net/ethernet/microsoft/mana/mana_en.c    | 8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c
index 0cf0322702ed2..1a923fd999903 100644
--- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
+++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
@@ -283,7 +283,7 @@ static void mana_hwc_comp_event(void *ctx, struct gdma_queue *q_self)
 	struct hwc_rx_oob comp_data = {};
 	struct gdma_comp *completions;
 	struct hwc_cq *hwc_cq = ctx;
-	u32 comp_read, i;
+	int comp_read, i;
 
 	WARN_ON_ONCE(hwc_cq->gdma_cq != q_self);
 
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index a744ca0b6c193..987e11c02f727 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -8,6 +8,7 @@
 
 #include <net/checksum.h>
 #include <net/ip6_checksum.h>
+#include <linux/version.h>
 
 #include "mana.h"
 
@@ -1061,7 +1062,7 @@ static void mana_process_rx_cqe(struct mana_rxq *rxq, struct mana_cq *cq,
 static void mana_poll_rx_cq(struct mana_cq *cq)
 {
 	struct gdma_comp *comp = cq->gdma_comp_buf;
-	u32 comp_read, i;
+	int comp_read, i;
 
 	comp_read = mana_gd_poll_cq(cq->gdma_cq, comp, CQE_POLLING_BUFFER);
 	WARN_ON_ONCE(comp_read > CQE_POLLING_BUFFER);
@@ -1787,8 +1788,9 @@ static int mana_probe_port(struct mana_context *ac, int port_idx,
 	if (err)
 		goto free_net;
 
-	netdev_lockdep_set_classes(ndev);
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,8,6)
+    netdev_lockdep_set_classes(ndev);
+#endif
 	ndev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM;
 	ndev->hw_features |= NETIF_F_RXCSUM;
 	ndev->hw_features |= NETIF_F_TSO | NETIF_F_TSO6;
-- 
2.17.1




More information about the kernel-team mailing list