Re: [PATCH v1] ACPI: LPSS: use acpi_dev_uid_match() for matching _UID

From: Raag Jadav
Date: Wed Oct 25 2023 - 23:00:59 EST


On Wed, Oct 25, 2023 at 11:33:40PM +0300, Andy Shevchenko wrote:
> On Wed, Oct 25, 2023 at 11:08:33AM +0530, Raag Jadav wrote:
> > Use acpi_dev_uid_match() for matching _UID instead of treating it
> > as an integer.
>
> NAK. See below why.
>
> ...
>
> > static void byt_pwm_setup(struct lpss_private_data *pdata)
> > {
> > - u64 uid;
> > -
> > /* Only call pwm_add_table for the first PWM controller */
> > - if (acpi_dev_uid_to_integer(pdata->adev, &uid) || uid != 1)
> > + if (!acpi_dev_uid_match(pdata->adev, "1"))
>
> _UID by specification is a type of _string_. Yet, that string may represent an
> integer number. Now, how many variants of the strings can you imagine that may
> be interpreted as integer 1? I can tell about dozens.
>
> With your change you restricted the all possible spectre of the 1
> representations to a single one. Have you checked ALL of the DSDTs
> for these platforms to say 'hey, all current tables uses "1" and
> this is not an issue'?

I'm not sure if I'm following you, this would basically invalidate every
usage of acpi_dev_hid_uid_match() helper across the driver.

Raag