Message ID | 20180201202012.36524-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
On Thu, Feb 1, 2018 at 9:20 PM, Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Instead of playing tricks with last invalid entry, > return simple -ENODATA error code casted to pointer. > > It would be good for future in case caller passes NULL pointer for > ID table. Moreover, caller can check the code to be sure what happened > inside callee. > > Fixes: 2b9c698efa58 ("ACPI / scan: Take the PRP0001 position in the list of IDs into account") > Cc: Sinan Kaya <okaya@codeaurora.org> > Cc: Sakari Ailus <sakari.ailus@linux.intel.com> > Cc: Vinod Koul <vinod.koul@intel.com> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > v2: new patch > drivers/acpi/bus.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c > index f87ed3be779a..a87a97bf75f8 100644 > --- a/drivers/acpi/bus.c > +++ b/drivers/acpi/bus.c > @@ -762,7 +762,7 @@ static const struct acpi_device_id *__acpi_match_device( > */ > if (!strcmp(ACPI_DT_NAMESPACE_HID, hwid->id) > && acpi_of_match_device(device, of_ids)) > - return id; > + return ERR_PTR(-ENODATA); So why is returning id from here a problem? > } > return NULL; > } > -- -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, 2018-02-04 at 08:16 +0100, Rafael J. Wysocki wrote: > On Thu, Feb 1, 2018 at 9:20 PM, Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > Instead of playing tricks with last invalid entry, > > return simple -ENODATA error code casted to pointer. > > > > It would be good for future in case caller passes NULL pointer for > > ID table. Moreover, caller can check the code to be sure what > > happened > > inside callee. > > - return id; > > + return ERR_PTR(-ENODATA); > > So why is returning id from here a problem? I think you already noticed that in the following patch it becomes a problem if user supply ids == NULL. That's why I added a second paragraph to the commit message to explain.
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index f87ed3be779a..a87a97bf75f8 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -762,7 +762,7 @@ static const struct acpi_device_id *__acpi_match_device( */ if (!strcmp(ACPI_DT_NAMESPACE_HID, hwid->id) && acpi_of_match_device(device, of_ids)) - return id; + return ERR_PTR(-ENODATA); } return NULL; }
Instead of playing tricks with last invalid entry, return simple -ENODATA error code casted to pointer. It would be good for future in case caller passes NULL pointer for ID table. Moreover, caller can check the code to be sure what happened inside callee. Fixes: 2b9c698efa58 ("ACPI / scan: Take the PRP0001 position in the list of IDs into account") Cc: Sinan Kaya <okaya@codeaurora.org> Cc: Sakari Ailus <sakari.ailus@linux.intel.com> Cc: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- v2: new patch drivers/acpi/bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)