Re: [net-next PATCH v3 09/15] device property: Introduce fwnode_get_id()

From: Rafael J. Wysocki
Date: Wed Jan 20 2021 - 14:14:26 EST


On Wed, Jan 20, 2021 at 7:44 PM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
>
> On Wed, Jan 20, 2021 at 8:18 PM Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
> > On Tue, Jan 12, 2021 at 4:47 PM Andy Shevchenko
> > <andy.shevchenko@xxxxxxxxx> wrote:
> > > On Tue, Jan 12, 2021 at 3:42 PM Calvin Johnson
> > > <calvin.johnson@xxxxxxxxxxx> wrote:
>
> ...
>
> > > > +int fwnode_get_id(struct fwnode_handle *fwnode, u32 *id)
> > > > +{
> > > > +#ifdef CONFIG_ACPI
> > > > + unsigned long long adr;
> > > > + acpi_status status;
> > > > +#endif
> > > > + int ret;
> > > > +
> > > > + ret = fwnode_property_read_u32(fwnode, "reg", id);
> > > > + if (!(ret && is_acpi_node(fwnode)))
> > > > + return ret;
> > > > +
> > > > +#ifdef CONFIG_ACPI
> > > > + status = acpi_evaluate_integer(ACPI_HANDLE_FWNODE(fwnode),
> > > > + METHOD_NAME__ADR, NULL, &adr);
> > > > + if (ACPI_FAILURE(status))
> > > > + return -EINVAL;
> > > > + *id = (u32)adr;
> > >
> > > Shouldn't be
> > >
> > > return 0;
> > > #else
> > > return -EINVAL;
> > > #endif
> > >
> > > ?
> > >
> > > Yes, it's a theoretical case when is_acpi_node() returns true when
> > > CONFIG_ACPI=n.
> >
> > How so? is_acpi_node() is defined as a static inline returning false then.
>
> I understand that, that's why it's pure theoretical when, for example,
> the semantics is changed. But I believe it's unlucky to happen.

Changing the definition of it for CONFIG_ACPI=n would be a regression
given the current usage of it.