Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

serdev: Convert to_serdev_*() helpers to macros and use container_of_const()

If these helpers receive the 'const struct device' pointer, then the const
qualifier will get dropped, leading to below warning:

warning: passing argument 1 of ‘to_serdev_device_driver’ discards 'const'
qualifier from pointer target type [-Wdiscarded-qualifiers]

This is not an issue as of now, but with the future commits adding serdev
device based driver matching, this warning will get triggered. Hence,
convert these helpers to macros so that the qualifier get preserved and
also use container_of_const() as container_of() is deprecated.

Tested-by: Hans de Goede <johannes.goede@oss.qualcomm.com> # ThinkPad T14s gen6 (arm64)
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260326-pci-m2-e-v7-1-43324a7866e6@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>

authored by

Manivannan Sadhasivam and committed by
Bartosz Golaszewski
e7fef850 6de23f81

+3 -12
+3 -12
include/linux/serdev.h
··· 49 49 struct mutex write_lock; 50 50 }; 51 51 52 - static inline struct serdev_device *to_serdev_device(struct device *d) 53 - { 54 - return container_of(d, struct serdev_device, dev); 55 - } 52 + #define to_serdev_device(d) container_of_const(d, struct serdev_device, dev) 56 53 57 54 /** 58 55 * struct serdev_device_driver - serdev slave device driver ··· 65 68 void (*shutdown)(struct serdev_device *); 66 69 }; 67 70 68 - static inline struct serdev_device_driver *to_serdev_device_driver(struct device_driver *d) 69 - { 70 - return container_of(d, struct serdev_device_driver, driver); 71 - } 71 + #define to_serdev_device_driver(d) container_of_const(d, struct serdev_device_driver, driver) 72 72 73 73 enum serdev_parity { 74 74 SERDEV_PARITY_NONE, ··· 106 112 const struct serdev_controller_ops *ops; 107 113 }; 108 114 109 - static inline struct serdev_controller *to_serdev_controller(struct device *d) 110 - { 111 - return container_of(d, struct serdev_controller, dev); 112 - } 115 + #define to_serdev_controller(d) container_of_const(d, struct serdev_controller, dev) 113 116 114 117 static inline void *serdev_device_get_drvdata(const struct serdev_device *serdev) 115 118 {