Re: [PATCH v4 01/17] Xen: ACPI: Hide UART used by Xen

From: Rafael J. Wysocki
Date: Mon Feb 08 2016 - 17:24:33 EST


On Monday, February 08, 2016 10:57:01 AM Stefano Stabellini wrote:
> On Sat, 6 Feb 2016, Rafael J. Wysocki wrote:
> > On Fri, Feb 5, 2016 at 4:05 AM, Shannon Zhao <zhaoshenglong@xxxxxxxxxx> wrote:
> > > From: Shannon Zhao <shannon.zhao@xxxxxxxxxx>
> > >
> > > ACPI 6.0 introduces a new table STAO to list the devices which are used
> > > by Xen and can't be used by Dom0. On Xen virtual platforms, the physical
> > > UART is used by Xen. So here it hides UART from Dom0.
> > >
> > > Signed-off-by: Shannon Zhao <shannon.zhao@xxxxxxxxxx>
> > > Reviewed-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
> >
> > Well, this doesn't look right to me.
> >
> > We need to find a nicer way to achieve what you want.
>
> I take that you are talking about how to honor the STAO table in Linux.
> Do you have any concrete suggestions?

I do.

The last hunk of the patch is likely what it needs to be, although I'm
not sure if the place it is added to is the right one. That's a minor thing,
though.

The other part is problematic. Not that as it doesn't work, but because of
how it works. With these changes the device will be visible to the OS (in
fact to user space even), but will never be "present". I'm not sure if
that's what you want?

It might be better to add a check to acpi_bus_type_and_status() that will
evaluate the "should ignore?" thing and return -ENODEV if this is true. This
way the device won't be visible at all.

Thanks,
Rafael


--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.