In case of error, the function ioremap() returns NULL pointer
not ERR_PTR(). The IS_ERR() test in the return value check
should be replaced with NULL test.
Also add check for return value of platform_get_resource().
Fixes:
54e19bc74f33 ("net: qcom/emac: do not use devm on internal
phy pdev")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Acked-by: Timur Tabi <timur@codeaurora.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
/* Base address is the first address */
res = platform_get_resource(sgmii_pdev, IORESOURCE_MEM, 0);
+ if (!res) {
+ ret = -EINVAL;
+ goto error_put_device;
+ }
+
phy->base = ioremap(res->start, resource_size(res));
- if (IS_ERR(phy->base)) {
- ret = PTR_ERR(phy->base);
+ if (!phy->base) {
+ ret = -ENOMEM;
goto error_put_device;
}
res = platform_get_resource(sgmii_pdev, IORESOURCE_MEM, 1);
if (res) {
phy->digital = ioremap(res->start, resource_size(res));
- if (IS_ERR(phy->digital)) {
- ret = PTR_ERR(phy->digital);
+ if (!phy->digital) {
+ ret = -ENOMEM;
goto error_unmap_base;
}
}