Commit eca81f09 authored by YueHaibing's avatar YueHaibing Committed by David S. Miller
Browse files

stmmac: platform: Fix signedness bug in stmmac_probe_config_dt()



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: b9f0b2f6 ("net: stmmac: platform: fix probe for ACPI devices")
Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0d472c69
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -397,6 +397,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;

@@ -412,10 +413,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;