public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] ACPI: bus: allow _UID matching for integer zero
@ 2024-03-28  3:55 Raag Jadav
  2024-04-10  6:00 ` Raag Jadav
  2024-04-10  7:49 ` Mika Westerberg
  0 siblings, 2 replies; 4+ messages in thread
From: Raag Jadav @ 2024-03-28  3:55 UTC (permalink / raw)
  To: rafael, lenb, robert.moore, mika.westerberg, andriy.shevchenko,
	stanislaw.gruszka
  Cc: linux-acpi, acpica-devel, linux-kernel, Raag Jadav

Commit b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to
support multiple types") added _UID matching support for both integer
and string types, which satisfies NULL @uid2 argument for string types
using inversion, but this logic prevents _UID comparision in case the
argument is integer 0, which may result in false positives.

Fix this using _Generic(), which will allow NULL @uid2 argument for
string types as well as _UID matching for all possible integer values.

Fixes: b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to support multiple types")
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
---
 include/acpi/acpi_bus.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 5de954e2b18a..683458de5a81 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -911,17 +911,19 @@ static inline bool acpi_int_uid_match(struct acpi_device *adev, u64 uid2)
  * acpi_dev_hid_uid_match - Match device by supplied HID and UID
  * @adev: ACPI device to match.
  * @hid2: Hardware ID of the device.
- * @uid2: Unique ID of the device, pass 0 or NULL to not check _UID.
+ * @uid2: Unique ID of the device, pass NULL to not check _UID.
  *
  * Matches HID and UID in @adev with given @hid2 and @uid2. Absence of @uid2
  * will be treated as a match. If user wants to validate @uid2, it should be
  * done before calling this function.
  *
- * Returns: %true if matches or @uid2 is 0 or NULL, %false otherwise.
+ * Returns: %true if matches or @uid2 is NULL, %false otherwise.
  */
 #define acpi_dev_hid_uid_match(adev, hid2, uid2)			\
 	(acpi_dev_hid_match(adev, hid2) &&				\
-		(!(uid2) || acpi_dev_uid_match(adev, uid2)))
+		/* Differentiate integer 0 from NULL @uid2 */		\
+		(_Generic(uid2,	ACPI_STR_TYPES(!(uid2)), default: 0) ||	\
+		acpi_dev_uid_match(adev, uid2)))
 
 void acpi_dev_clear_dependencies(struct acpi_device *supplier);
 bool acpi_dev_ready_for_enumeration(const struct acpi_device *device);
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] ACPI: bus: allow _UID matching for integer zero
  2024-03-28  3:55 [PATCH v1] ACPI: bus: allow _UID matching for integer zero Raag Jadav
@ 2024-04-10  6:00 ` Raag Jadav
  2024-04-10 13:31   ` Rafael J. Wysocki
  2024-04-10  7:49 ` Mika Westerberg
  1 sibling, 1 reply; 4+ messages in thread
From: Raag Jadav @ 2024-04-10  6:00 UTC (permalink / raw)
  To: rafael, lenb, robert.moore, mika.westerberg, andriy.shevchenko,
	stanislaw.gruszka
  Cc: linux-acpi, acpica-devel, linux-kernel

On Thu, Mar 28, 2024 at 09:25:40AM +0530, Raag Jadav wrote:
> Commit b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to
> support multiple types") added _UID matching support for both integer
> and string types, which satisfies NULL @uid2 argument for string types
> using inversion, but this logic prevents _UID comparision in case the
> argument is integer 0, which may result in false positives.
> 
> Fix this using _Generic(), which will allow NULL @uid2 argument for
> string types as well as _UID matching for all possible integer values.
> 
> Fixes: b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to support multiple types")
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>

Bump.

Anything I can do to move this forward?

Raag

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] ACPI: bus: allow _UID matching for integer zero
  2024-03-28  3:55 [PATCH v1] ACPI: bus: allow _UID matching for integer zero Raag Jadav
  2024-04-10  6:00 ` Raag Jadav
@ 2024-04-10  7:49 ` Mika Westerberg
  1 sibling, 0 replies; 4+ messages in thread
From: Mika Westerberg @ 2024-04-10  7:49 UTC (permalink / raw)
  To: Raag Jadav
  Cc: rafael, lenb, robert.moore, andriy.shevchenko, stanislaw.gruszka,
	linux-acpi, acpica-devel, linux-kernel

On Thu, Mar 28, 2024 at 09:25:40AM +0530, Raag Jadav wrote:
> Commit b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to
> support multiple types") added _UID matching support for both integer
> and string types, which satisfies NULL @uid2 argument for string types
> using inversion, but this logic prevents _UID comparision in case the
                                                ^^^^^^^^^^^

Typo: comparison

> argument is integer 0, which may result in false positives.
> 
> Fix this using _Generic(), which will allow NULL @uid2 argument for
> string types as well as _UID matching for all possible integer values.
> 
> Fixes: b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to support multiple types")
> Signed-off-by: Raag Jadav <raag.jadav@intel.com>

Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] ACPI: bus: allow _UID matching for integer zero
  2024-04-10  6:00 ` Raag Jadav
@ 2024-04-10 13:31   ` Rafael J. Wysocki
  0 siblings, 0 replies; 4+ messages in thread
From: Rafael J. Wysocki @ 2024-04-10 13:31 UTC (permalink / raw)
  To: Raag Jadav
  Cc: rafael, lenb, robert.moore, mika.westerberg, andriy.shevchenko,
	stanislaw.gruszka, linux-acpi, acpica-devel, linux-kernel

On Wed, Apr 10, 2024 at 8:00 AM Raag Jadav <raag.jadav@intel.com> wrote:
>
> On Thu, Mar 28, 2024 at 09:25:40AM +0530, Raag Jadav wrote:
> > Commit b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to
> > support multiple types") added _UID matching support for both integer
> > and string types, which satisfies NULL @uid2 argument for string types
> > using inversion, but this logic prevents _UID comparision in case the
> > argument is integer 0, which may result in false positives.
> >
> > Fix this using _Generic(), which will allow NULL @uid2 argument for
> > string types as well as _UID matching for all possible integer values.
> >
> > Fixes: b2b32a173881 ("ACPI: bus: update acpi_dev_hid_uid_match() to support multiple types")
> > Signed-off-by: Raag Jadav <raag.jadav@intel.com>
>
> Bump.
>
> Anything I can do to move this forward?

Should be there in linux-next already, isn't it?

Maybe I forgot to send an "applied" message.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-10 13:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-28  3:55 [PATCH v1] ACPI: bus: allow _UID matching for integer zero Raag Jadav
2024-04-10  6:00 ` Raag Jadav
2024-04-10 13:31   ` Rafael J. Wysocki
2024-04-10  7:49 ` Mika Westerberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox