Re: [PATCH] acpi: handle the acpi hotplug schedule error

From: joeyli
Date: Wed Jun 07 2017 - 11:39:57 EST


On Wed, Jun 07, 2017 at 01:46:37PM +0300, Andy Shevchenko wrote:
> On Wed, Jun 7, 2017 at 1:18 PM, joeyli <jlee@xxxxxxxx> wrote:
> > On Wed, Jun 07, 2017 at 11:36:55AM +0300, Andy Shevchenko wrote:
> >> On Wed, Jun 7, 2017 at 9:05 AM, Lee, Chun-Yi <joeyli.kernel@xxxxxxxxx> wrote:
> >> > Kernel should decrements the reference count of acpi device
> >> > when scheduling acpi hotplug work is failed, and also evaluates
> >> > _OST to notify BIOS the failure.
>
> > So, do you mean like this?
>
> Yes, see below.
>
> >
> > - if (hotplug_event && ACPI_SUCCESS(acpi_hotplug_schedule(adev, type)))
> > - return;
> > + if (hotplug_event) {
>
> > + if (ACPI_SUCCESS(acpi_hotplug_schedule(adev, type)))
> > + return;
>
> > + else
>
> It's redundant...
>

Oh~ Yes, you are right. The 'else' can be removed

> > + goto err_put_device;
>
> ...perhaps
>
> if (ACPI_FAILURE(acpi_hotplug_schedule(adev, type)))
> goto err_put_device;
> return;
>

I think normally it should be success. So how about:

if (hotplug_event) {
if (ACPI_SUCCESS(acpi_hotplug_schedule(adev, type)))
return;
goto err_put_device;
}

> >
> > acpi_bus_put_acpi_device(adev);
> > return;
> >
> > +err_put_device:
> > + acpi_bus_put_acpi_device(adev);
> > err:
> > acpi_evaluate_ost(handle, type, ost_code, NULL);
> > }

Thanks a lot!
Joey Lee