Files
linux-stable-mirror/include/linux
Douglas Anderson e42527bf30 device property: Make modifications of fwnode "flags" thread safe
commit f72e77c33e upstream.

In various places in the kernel, we modify the fwnode "flags" member
by doing either:
  fwnode->flags |= SOME_FLAG;
  fwnode->flags &= ~SOME_FLAG;

This type of modification is not thread-safe. If two threads are both
mucking with the flags at the same time then one can clobber the
other.

While flags are often modified while under the "fwnode_link_lock",
this is not universally true.

Create some accessor functions for setting, clearing, and testing the
FWNODE flags and move all users to these accessor functions. New
accessor functions use set_bit() and clear_bit(), which are
thread-safe.

Cc: stable@vger.kernel.org
Fixes: c2c724c868 ("driver core: Add fw_devlink_parse_fwtree()")
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Rafael J. Wysocki (Intel) <rafael@kernel.org>
Reviewed-by: Saravana Kannan <saravanak@kernel.org>
Link: https://patch.msgid.link/20260317090112.v2.1.I0a4d03104ecd5103df3d76f66c8d21b1d15a2e38@changeid
[ Fix fwnode_clear_flag() argument alignment, restore dropped blank
  line in fwnode_dev_initialized(), and remove unnecessary parentheses
  around fwnode_test_flag() calls. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
(cherry picked from commit f72e77c33e)
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-05-07 06:09:26 +02:00
..
2026-03-04 07:19:39 -05:00
2026-03-04 07:20:22 -05:00
2026-03-04 07:19:26 -05:00
2025-11-02 22:15:22 +09:00
2025-10-15 12:00:03 +02:00
2025-09-11 17:21:46 +02:00
2025-12-18 13:55:17 +01:00
2025-05-29 11:03:25 +02:00
2026-01-08 10:13:54 +01:00
2026-01-08 10:14:34 +01:00
2025-09-09 18:58:04 +02:00
2025-05-29 11:03:25 +02:00
2025-05-29 11:02:23 +02:00
2026-04-11 14:24:32 +02:00
2025-12-18 13:55:18 +01:00
2025-06-19 15:32:18 +02:00
2026-02-11 13:40:25 +01:00
2025-05-29 11:02:20 +02:00
2025-08-15 12:13:35 +02:00
2026-01-08 10:14:11 +01:00
2026-02-11 13:40:25 +01:00
2026-03-04 07:19:35 -05:00
2025-08-01 09:48:43 +01:00