From: Greg Kroah-Hartman Date: Wed, 3 Jan 2024 11:24:24 +0000 (+0100) Subject: 6.1-stable patches X-Git-Tag: v5.10.206~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48d28dadf3f09fe3b604bf223d13c083994155d7;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: device-property-allow-const-parameter-to-dev_fwnode.patch --- diff --git a/queue-6.1/device-property-allow-const-parameter-to-dev_fwnode.patch b/queue-6.1/device-property-allow-const-parameter-to-dev_fwnode.patch new file mode 100644 index 00000000000..e3d576380a4 --- /dev/null +++ b/queue-6.1/device-property-allow-const-parameter-to-dev_fwnode.patch @@ -0,0 +1,70 @@ +From b295d484b97081feba72b071ffcb72fb4638ccfd Mon Sep 17 00:00:00 2001 +From: Andy Shevchenko +Date: Tue, 4 Oct 2022 12:21:25 +0300 +Subject: device property: Allow const parameter to dev_fwnode() + +From: Andy Shevchenko + +commit b295d484b97081feba72b071ffcb72fb4638ccfd upstream. + +It's not fully correct to take a const parameter pointer to a struct +and return a non-const pointer to a member of that struct. + +Instead, introduce a const version of the dev_fwnode() API which takes +and returns const pointers and use it where it's applicable. + +With this, convert dev_fwnode() to be a macro wrapper on top of const +and non-const APIs that chooses one based on the type. + +Suggested-by: Sakari Ailus +Fixes: aade55c86033 ("device property: Add const qualifier to device_get_match_data() parameter") +Signed-off-by: Andy Shevchenko +Acked-by: Heikki Krogerus +Reviewed-by: Sakari Ailus +Link: https://lore.kernel.org/r/20221004092129.19412-2-andriy.shevchenko@linux.intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/base/property.c | 11 +++++++++-- + include/linux/property.h | 7 ++++++- + 2 files changed, 15 insertions(+), 3 deletions(-) + +--- a/drivers/base/property.c ++++ b/drivers/base/property.c +@@ -17,12 +17,19 @@ + #include + #include + +-struct fwnode_handle *dev_fwnode(const struct device *dev) ++struct fwnode_handle *__dev_fwnode(struct device *dev) + { + return IS_ENABLED(CONFIG_OF) && dev->of_node ? + of_fwnode_handle(dev->of_node) : dev->fwnode; + } +-EXPORT_SYMBOL_GPL(dev_fwnode); ++EXPORT_SYMBOL_GPL(__dev_fwnode); ++ ++const struct fwnode_handle *__dev_fwnode_const(const struct device *dev) ++{ ++ return IS_ENABLED(CONFIG_OF) && dev->of_node ? ++ of_fwnode_handle(dev->of_node) : dev->fwnode; ++} ++EXPORT_SYMBOL_GPL(__dev_fwnode_const); + + /** + * device_property_present - check if a property of a device is present +--- a/include/linux/property.h ++++ b/include/linux/property.h +@@ -32,7 +32,12 @@ enum dev_dma_attr { + DEV_DMA_COHERENT, + }; + +-struct fwnode_handle *dev_fwnode(const struct device *dev); ++const struct fwnode_handle *__dev_fwnode_const(const struct device *dev); ++struct fwnode_handle *__dev_fwnode(struct device *dev); ++#define dev_fwnode(dev) \ ++ _Generic((dev), \ ++ const struct device *: __dev_fwnode_const, \ ++ struct device *: __dev_fwnode)(dev) + + bool device_property_present(struct device *dev, const char *propname); + int device_property_read_u8_array(struct device *dev, const char *propname, diff --git a/queue-6.1/series b/queue-6.1/series index e8f0a858e02..c5384d77934 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -95,3 +95,4 @@ netfilter-nf_tables-skip-set-commit-for-deleted-destroyed-sets.patch ring-buffer-fix-slowpath-of-interrupted-event.patch nfsd-fix-possible-oops-when-nfsd-pool_stats-is-closed.patch spi-constify-spi-parameters-of-chip-select-apis.patch +device-property-allow-const-parameter-to-dev_fwnode.patch