Message ID | 20171214235758.26122-1-f.fainelli@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net-next] net: phy: phylink: Handle NULL fwnode_handle | expand |
On Thu, Dec 14, 2017 at 03:57:58PM -0800, Florian Fainelli wrote: > Unlike the various of_* routines to fetch properties, fwnode_* routines can > have an early check against a NULL fwnode_handle reference which makes them > return -EINVAL (see fwnode_call_int_op), thus making it virtually impossible to > differentiate what type of error is going on. > > Have an early check in phylink_register_sfp() so we can keep proceeding with > the initialization, there is not much we can do without a valid fwnode_handle > except return early and treat this similarly to -ENOENT. > > Fixes: 8fa7b9b6af25 ("phylink: convert to fwnode") > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Acked-by: Russell King <rmk+kernel@armlinux.org.uk> Thanks Florian. > --- > drivers/net/phy/phylink.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c > index c89b8c63f16a..69adc0aa141c 100644 > --- a/drivers/net/phy/phylink.c > +++ b/drivers/net/phy/phylink.c > @@ -506,6 +506,9 @@ static int phylink_register_sfp(struct phylink *pl, > struct fwnode_reference_args ref; > int ret; > > + if (!fwnode) > + return 0; > + > ret = fwnode_property_get_reference_args(fwnode, "sfp", NULL, > 0, 0, &ref); > if (ret < 0) { > -- > 2.14.1 >
From: Florian Fainelli <f.fainelli@gmail.com> Date: Thu, 14 Dec 2017 15:57:58 -0800 > Unlike the various of_* routines to fetch properties, fwnode_* routines can > have an early check against a NULL fwnode_handle reference which makes them > return -EINVAL (see fwnode_call_int_op), thus making it virtually impossible to > differentiate what type of error is going on. > > Have an early check in phylink_register_sfp() so we can keep proceeding with > the initialization, there is not much we can do without a valid fwnode_handle > except return early and treat this similarly to -ENOENT. > > Fixes: 8fa7b9b6af25 ("phylink: convert to fwnode") > Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Applied.
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c index c89b8c63f16a..69adc0aa141c 100644 --- a/drivers/net/phy/phylink.c +++ b/drivers/net/phy/phylink.c @@ -506,6 +506,9 @@ static int phylink_register_sfp(struct phylink *pl, struct fwnode_reference_args ref; int ret; + if (!fwnode) + return 0; + ret = fwnode_property_get_reference_args(fwnode, "sfp", NULL, 0, 0, &ref); if (ret < 0) {
Unlike the various of_* routines to fetch properties, fwnode_* routines can have an early check against a NULL fwnode_handle reference which makes them return -EINVAL (see fwnode_call_int_op), thus making it virtually impossible to differentiate what type of error is going on. Have an early check in phylink_register_sfp() so we can keep proceeding with the initialization, there is not much we can do without a valid fwnode_handle except return early and treat this similarly to -ENOENT. Fixes: 8fa7b9b6af25 ("phylink: convert to fwnode") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> --- drivers/net/phy/phylink.c | 3 +++ 1 file changed, 3 insertions(+)