| From cf2b18efc7f5047dd5e00043045e3ff97441a159 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 7 Jul 2021 15:53:35 +0800 |
| Subject: stmmac: platform: Fix signedness bug in stmmac_probe_config_dt() |
| |
| From: YueHaibing <yuehaibing@huawei.com> |
| |
| [ Upstream commit eca81f09145d765c21dd8fb1ba5d874ca255c32c ] |
| |
| The "plat->phy_interface" variable is an enum and in this context GCC |
| will treat it as an unsigned int so the error handling is never |
| triggered. |
| |
| Fixes: b9f0b2f634c0 ("net: stmmac: platform: fix probe for ACPI devices") |
| Signed-off-by: YueHaibing <yuehaibing@huawei.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 +++++--- |
| 1 file changed, 5 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c |
| index a696ada013eb..cad9e466353f 100644 |
| --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c |
| +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c |
| @@ -399,6 +399,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) |
| struct device_node *np = pdev->dev.of_node; |
| struct plat_stmmacenet_data *plat; |
| struct stmmac_dma_cfg *dma_cfg; |
| + int phy_mode; |
| void *ret; |
| int rc; |
| |
| @@ -414,10 +415,11 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) |
| eth_zero_addr(mac); |
| } |
| |
| - plat->phy_interface = device_get_phy_mode(&pdev->dev); |
| - if (plat->phy_interface < 0) |
| - return ERR_PTR(plat->phy_interface); |
| + phy_mode = device_get_phy_mode(&pdev->dev); |
| + if (phy_mode < 0) |
| + return ERR_PTR(phy_mode); |
| |
| + plat->phy_interface = phy_mode; |
| plat->interface = stmmac_of_get_mac_mode(np); |
| if (plat->interface < 0) |
| plat->interface = plat->phy_interface; |
| -- |
| 2.30.2 |
| |