On Tue, Jan 29, 2019 at 11:30:27AM +0800, YueHaibing wrote: > >> gpiod = fwnode_get_named_gpiod(&mdiodev->dev.of_node->fwnode, > >> "reset-gpios", 0, GPIOD_OUT_LOW, > >> "PHY reset"); > >> - if (PTR_ERR(gpiod) == -ENOENT || > >> - PTR_ERR(gpiod) == -ENOSYS) > >> - gpiod = NULL; > >> - else if (IS_ERR(gpiod)) > >> - return PTR_ERR(gpiod); > >> + if (IS_ERR(gpiod)) { > >> + ret = PTR_ERR(gpiod); > >> + if (ret == -ENOENT || ret == -ENOSYS) > >> + gpiod = NULL; > >> + else > >> + return ret; > >> + }
Rule of the thumb: PTR_ERR(p) == -E... is almost always better off as p == ERR_PTR(-E...)