net: hns3: fix a bug when getting phy address from NCL_config file
authorFuyun Liang <liangfuyun1@huawei.com>
Wed, 8 Nov 2017 07:52:22 +0000 (15:52 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 11 Nov 2017 06:17:56 +0000 (15:17 +0900)
Driver gets phy address from NCL_config file and uses the phy address
to initialize phydev. There are 5 bits for phy address. And C22 phy
address has 5 bits. So 0-31 are all valid address for phy. If there
is no phy, it will crash. Because driver always get a valid phy address.

This patch fixes the phy address to 8 bits, and use 0xff to indicate
invalid phy address.

Fixes: 46a3df9f9718 (net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support)
Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
Signed-off-by: Lipeng <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h

index 844c83e..ce5ed88 100644 (file)
@@ -390,7 +390,7 @@ struct hclge_pf_res_cmd {
 #define HCLGE_CFG_TQP_DESC_N_S 16
 #define HCLGE_CFG_TQP_DESC_N_M GENMASK(31, 16)
 #define HCLGE_CFG_PHY_ADDR_S   0
-#define HCLGE_CFG_PHY_ADDR_M   GENMASK(4, 0)
+#define HCLGE_CFG_PHY_ADDR_M   GENMASK(7, 0)
 #define HCLGE_CFG_MEDIA_TP_S   8
 #define HCLGE_CFG_MEDIA_TP_M   GENMASK(15, 8)
 #define HCLGE_CFG_RX_BUF_LEN_S 16