Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1657284

Re: [RFC PATCH] acpi: indicate to platform when hot remove returns busy

From joeyli <jlee@suse.com>
Newsgroups linux.kernel
Subject Re: [RFC PATCH] acpi: indicate to platform when hot remove returns busy
Date 2017-06-05 07:50 +0200
Message-ID <tOT3P-7eE-1@gated-at.bofh.it> (permalink)
References <tOl29-1qH-11@gated-at.bofh.it> <tOlbQ-1u4-17@gated-at.bofh.it> <tOADU-3sO-15@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sun, Jun 04, 2017 at 06:04:53PM +0800, joeyli wrote:
> Hi Andy,
> 
> Thanks for your help to review my patch.
> 
> On Sat, Jun 03, 2017 at 08:37:51PM +0300, Andy Shevchenko wrote:
> > On Sat, Jun 3, 2017 at 8:20 PM, Lee, Chun-Yi <joeyli.kernel@gmail.com> wrote:
> > > In hotplug logic, it always indicates non-specific failure to
> > > platform through _OST when handing acpi hot-remove event failed. Then
> > > platform terminates the hot-remove process but it can not identify
> > > the reason.
[...snip]
> > >  }
> > 
> > Wit this change you spear a logic on two functions...
> >
> 
> You are right.
> 
> I want to give a chance to acpi_generic_hotplug_event()
> to propose a _OST code. But acpi_device_hotplug() can
> overwrite it. Not good...
>  
> > >
> > >  void acpi_device_hotplug(struct acpi_device *adev, u32 src)
> > > @@ -413,7 +418,7 @@ void acpi_device_hotplug(struct acpi_device *adev, u32 src)
> > >         if (adev->flags.is_dock_station) {
> > >                 error = dock_notify(adev, src);
> > >         } else if (adev->flags.hotplug_notify) {
> > > -               error = acpi_generic_hotplug_event(adev, src);
> > > +               error = acpi_generic_hotplug_event(adev, src, &ost_code);
> > >                 if (error == -EPERM) {
> > >                         ost_code = ACPI_OST_SC_EJECT_NOT_SUPPORTED;
> > >                         goto err_out;
> > 
> > ...instead (since the first one is defined as static) I would propose
> > to change only here like
> > 
> > switch (error) {
> > case -EPERM:
> > ost_code = ACPI_OST_SC_EJECT_NOT_SUPPORTED;
> > break;
> > case -EBUSY:
> > ost_code = ACPI_OST_SC_DEVICE_BUSY;
> > break;
> > }
> > if (error)
> >  goto err_out;
> > 
> > This is less intrusive and more flexible to modifications in the
> > future (might be split to a helper, might be easily extended, etc).
> >
> 
> this RFC patch changed the _OST code for BIOS that it may affects
> the behavior of shipped machines. And, I am not sure that the
> ACPI_OST_SC_DEVICE_BUSY approach is also useful for other hotplug
> event, like ACPI_NOTIFY_BUS_CHECK or ACPI_NOTIFY_DEVICE_CHECK.
> 
> So, I prefer to apply this change only on the code path of
> ACPI_NOTIFY_EJECT_REQUEST/ACPI_OST_EC_OSPM_EJECT. 
> 

Actually I forgot to mention one thing.  The ACPI_OST_SC_DEVICE_BUSY ost
code is specific for ejection events, ACPI_NOTIFY_EJECT_REQUEST (0x03) and
ACPI_OST_EC_OSPM_EJECT (0x103). Reference "Table 6-187" in ACPI spec v6.1.

Thanks a lot!
Joey Lee

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[RFC PATCH] acpi: indicate to platform when hot remove returns busy "Lee, Chun-Yi" <joeyli.kernel@gmail.com> - 2017-06-03 19:30 +0200
  Re: [RFC PATCH] acpi: indicate to platform when hot remove returns busy Andy Shevchenko <andy.shevchenko@gmail.com> - 2017-06-03 19:40 +0200
    Re: [RFC PATCH] acpi: indicate to platform when hot remove returns  busy joeyli <jlee@suse.com> - 2017-06-04 12:10 +0200
      Re: [RFC PATCH] acpi: indicate to platform when hot remove returns busy Andy Shevchenko <andy.shevchenko@gmail.com> - 2017-06-04 21:10 +0200
      Re: [RFC PATCH] acpi: indicate to platform when hot remove returns  busy joeyli <jlee@suse.com> - 2017-06-05 07:50 +0200

csiph-web