Thomas Bogendoerfer 945fd2
From: Huazhong Tan <tanhuazhong@huawei.com>
Thomas Bogendoerfer 945fd2
Date: Thu, 23 Aug 2018 11:37:15 +0800
Thomas Bogendoerfer 945fd2
Subject: net: hns3: fix page_offset overflow when CONFIG_ARM64_64K_PAGES
Thomas Bogendoerfer 945fd2
Patch-mainline: v4.19-rc2
Thomas Bogendoerfer 945fd2
Git-commit: 27a5959308559fa6afcaa4e6cd81d25bcb2dda7c
Thomas Bogendoerfer 945fd2
References: bsc#1104353 FATE#326415
Thomas Bogendoerfer 945fd2
Thomas Bogendoerfer 945fd2
When enable the config item "CONFIG_ARM64_64K_PAGES", the size of
Thomas Bogendoerfer 945fd2
PAGE_SIZE is 65536(64K). But the type of page_offset is u16, it will
Thomas Bogendoerfer 945fd2
overflow. So change it to u32, when "CONFIG_ARM64_64K_PAGES" enabled.
Thomas Bogendoerfer 945fd2
Thomas Bogendoerfer 945fd2
Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
Thomas Bogendoerfer 945fd2
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Thomas Bogendoerfer 945fd2
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
Thomas Bogendoerfer 945fd2
Signed-off-by: David S. Miller <davem@davemloft.net>
Thomas Bogendoerfer 945fd2
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer 945fd2
---
Thomas Bogendoerfer 945fd2
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h |    6 +++---
Thomas Bogendoerfer 945fd2
 1 file changed, 3 insertions(+), 3 deletions(-)
Thomas Bogendoerfer 945fd2
Thomas Bogendoerfer 945fd2
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
Thomas Bogendoerfer 945fd2
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h
Thomas Bogendoerfer 945fd2
@@ -290,11 +290,11 @@ struct hns3_desc_cb {
Thomas Bogendoerfer 945fd2
 
Thomas Bogendoerfer 945fd2
 	/* priv data for the desc, e.g. skb when use with ip stack*/
Thomas Bogendoerfer 945fd2
 	void *priv;
Thomas Bogendoerfer 945fd2
-	u16 page_offset;
Thomas Bogendoerfer 945fd2
-	u16 reuse_flag;
Thomas Bogendoerfer 945fd2
-
Thomas Bogendoerfer 945fd2
+	u32 page_offset;
Thomas Bogendoerfer 945fd2
 	u32 length;     /* length of the buffer */
Thomas Bogendoerfer 945fd2
 
Thomas Bogendoerfer 945fd2
+	u16 reuse_flag;
Thomas Bogendoerfer 945fd2
+
Thomas Bogendoerfer 945fd2
        /* desc type, used by the ring user to mark the type of the priv data */
Thomas Bogendoerfer 945fd2
 	u16 type;
Thomas Bogendoerfer 945fd2
 };