Message ID | 20231103083625.1229008-2-sakari.ailus@linux.intel.com |
---|---|
State | Superseded |
Headers | show |
Series | Make fwnode_property_get_reference_args accept NULL args | expand |
On Fri, Nov 03, 2023 at 10:36:23AM +0200, Sakari Ailus wrote: > fwnode_get_property_reference_args() may not be called with args argument > NULL on ACPI, OF already supports this. Add the missing NULL checks and > document this. > > The purpose is to be able to count the references. > > Fixes: 977d5ad39f3e ("ACPI: Convert ACPI reference args to generic fwnode reference args") > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> > --- > drivers/acpi/property.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c > index 413e4fcadcaf..93608714b652 100644 > --- a/drivers/acpi/property.c > +++ b/drivers/acpi/property.c > @@ -851,6 +851,7 @@ static int acpi_get_ref_args(struct fwnode_reference_args *args, > * @index: Index of the reference to return > * @num_args: Maximum number of arguments after each reference > * @args: Location to store the returned reference with optional arguments > + * (may be NULL) > * > * Find property with @name, verifify that it is a package containing at least > * one object reference and if so, store the ACPI device object pointer to the > @@ -907,6 +908,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, > if (!device) > return -EINVAL; > > + if (!args) > + return 0; > + > args->fwnode = acpi_fwnode_handle(device); > args->nargs = 0; > return 0; > -- > 2.39.2
On Fri, Nov 3, 2023 at 9:36 AM Sakari Ailus <sakari.ailus@linux.intel.com> wrote: > > fwnode_get_property_reference_args() may not be called with args argument > NULL on ACPI, OF already supports this. Add the missing NULL checks and > document this. > > The purpose is to be able to count the references. > > Fixes: 977d5ad39f3e ("ACPI: Convert ACPI reference args to generic fwnode reference args") > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > --- > drivers/acpi/property.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c > index 413e4fcadcaf..93608714b652 100644 > --- a/drivers/acpi/property.c > +++ b/drivers/acpi/property.c > @@ -851,6 +851,7 @@ static int acpi_get_ref_args(struct fwnode_reference_args *args, > * @index: Index of the reference to return > * @num_args: Maximum number of arguments after each reference > * @args: Location to store the returned reference with optional arguments > + * (may be NULL) > * > * Find property with @name, verifify that it is a package containing at least > * one object reference and if so, store the ACPI device object pointer to the > @@ -907,6 +908,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, > if (!device) > return -EINVAL; > > + if (!args) > + return 0; > + > args->fwnode = acpi_fwnode_handle(device); > args->nargs = 0; > return 0; > -- Is this series waiting for me to pick it up or am I confused?
On Tue, Nov 21, 2023 at 08:36:08PM +0100, Rafael J. Wysocki wrote: > On Fri, Nov 3, 2023 at 9:36 AM Sakari Ailus > <sakari.ailus@linux.intel.com> wrote: > > > > fwnode_get_property_reference_args() may not be called with args argument > > NULL on ACPI, OF already supports this. Add the missing NULL checks and > > document this. > > > > The purpose is to be able to count the references. > > > > Fixes: 977d5ad39f3e ("ACPI: Convert ACPI reference args to generic fwnode reference args") > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > > --- > > drivers/acpi/property.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c > > index 413e4fcadcaf..93608714b652 100644 > > --- a/drivers/acpi/property.c > > +++ b/drivers/acpi/property.c > > @@ -851,6 +851,7 @@ static int acpi_get_ref_args(struct fwnode_reference_args *args, > > * @index: Index of the reference to return > > * @num_args: Maximum number of arguments after each reference > > * @args: Location to store the returned reference with optional arguments > > + * (may be NULL) > > * > > * Find property with @name, verifify that it is a package containing at least > > * one object reference and if so, store the ACPI device object pointer to the > > @@ -907,6 +908,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, > > if (!device) > > return -EINVAL; > > > > + if (!args) > > + return 0; > > + > > args->fwnode = acpi_fwnode_handle(device); > > args->nargs = 0; > > return 0; > > -- > > Is this series waiting for me to pick it up or am I confused? Yes, please!
On Tue, Nov 21, 2023 at 10:32 PM Sakari Ailus <sakari.ailus@linux.intel.com> wrote: > > On Tue, Nov 21, 2023 at 08:36:08PM +0100, Rafael J. Wysocki wrote: > > On Fri, Nov 3, 2023 at 9:36 AM Sakari Ailus > > <sakari.ailus@linux.intel.com> wrote: > > > > > > fwnode_get_property_reference_args() may not be called with args argument > > > NULL on ACPI, OF already supports this. Add the missing NULL checks and > > > document this. > > > > > > The purpose is to be able to count the references. > > > > > > Fixes: 977d5ad39f3e ("ACPI: Convert ACPI reference args to generic fwnode reference args") > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > > > --- > > > drivers/acpi/property.c | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c > > > index 413e4fcadcaf..93608714b652 100644 > > > --- a/drivers/acpi/property.c > > > +++ b/drivers/acpi/property.c > > > @@ -851,6 +851,7 @@ static int acpi_get_ref_args(struct fwnode_reference_args *args, > > > * @index: Index of the reference to return > > > * @num_args: Maximum number of arguments after each reference > > > * @args: Location to store the returned reference with optional arguments > > > + * (may be NULL) > > > * > > > * Find property with @name, verifify that it is a package containing at least > > > * one object reference and if so, store the ACPI device object pointer to the > > > @@ -907,6 +908,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, > > > if (!device) > > > return -EINVAL; > > > > > > + if (!args) > > > + return 0; > > > + > > > args->fwnode = acpi_fwnode_handle(device); > > > args->nargs = 0; > > > return 0; > > > -- > > > > Is this series waiting for me to pick it up or am I confused? > > Yes, please! OK, applied as 6.8 material, thanks!
On Wed, Nov 22, 2023 at 10:15:34PM +0100, Rafael J. Wysocki wrote: > On Tue, Nov 21, 2023 at 10:32 PM Sakari Ailus > <sakari.ailus@linux.intel.com> wrote: > > > > On Tue, Nov 21, 2023 at 08:36:08PM +0100, Rafael J. Wysocki wrote: > > > On Fri, Nov 3, 2023 at 9:36 AM Sakari Ailus > > > <sakari.ailus@linux.intel.com> wrote: > > > > > > > > fwnode_get_property_reference_args() may not be called with args argument > > > > NULL on ACPI, OF already supports this. Add the missing NULL checks and > > > > document this. > > > > > > > > The purpose is to be able to count the references. > > > > > > > > Fixes: 977d5ad39f3e ("ACPI: Convert ACPI reference args to generic fwnode reference args") > > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > > > > --- > > > > drivers/acpi/property.c | 4 ++++ > > > > 1 file changed, 4 insertions(+) > > > > > > > > diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c > > > > index 413e4fcadcaf..93608714b652 100644 > > > > --- a/drivers/acpi/property.c > > > > +++ b/drivers/acpi/property.c > > > > @@ -851,6 +851,7 @@ static int acpi_get_ref_args(struct fwnode_reference_args *args, > > > > * @index: Index of the reference to return > > > > * @num_args: Maximum number of arguments after each reference > > > > * @args: Location to store the returned reference with optional arguments > > > > + * (may be NULL) > > > > * > > > > * Find property with @name, verifify that it is a package containing at least > > > > * one object reference and if so, store the ACPI device object pointer to the > > > > @@ -907,6 +908,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, > > > > if (!device) > > > > return -EINVAL; > > > > > > > > + if (!args) > > > > + return 0; > > > > + > > > > args->fwnode = acpi_fwnode_handle(device); > > > > args->nargs = 0; > > > > return 0; > > > > -- > > > > > > Is this series waiting for me to pick it up or am I confused? > > > > Yes, please! > > OK, applied as 6.8 material, thanks! Thank you, Rafael!
diff --git a/drivers/acpi/property.c b/drivers/acpi/property.c index 413e4fcadcaf..93608714b652 100644 --- a/drivers/acpi/property.c +++ b/drivers/acpi/property.c @@ -851,6 +851,7 @@ static int acpi_get_ref_args(struct fwnode_reference_args *args, * @index: Index of the reference to return * @num_args: Maximum number of arguments after each reference * @args: Location to store the returned reference with optional arguments + * (may be NULL) * * Find property with @name, verifify that it is a package containing at least * one object reference and if so, store the ACPI device object pointer to the @@ -907,6 +908,9 @@ int __acpi_node_get_property_reference(const struct fwnode_handle *fwnode, if (!device) return -EINVAL; + if (!args) + return 0; + args->fwnode = acpi_fwnode_handle(device); args->nargs = 0; return 0;
fwnode_get_property_reference_args() may not be called with args argument NULL on ACPI, OF already supports this. Add the missing NULL checks and document this. The purpose is to be able to count the references. Fixes: 977d5ad39f3e ("ACPI: Convert ACPI reference args to generic fwnode reference args") Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- drivers/acpi/property.c | 4 ++++ 1 file changed, 4 insertions(+)