Messages in this thread Patch in this message | | | From | Shuah Khan <> | Subject | [RFC PATCH 04/11] drivers/base/devcoredump: convert devcd_count to counter_atomic | Date | Tue, 22 Sep 2020 19:43:33 -0600 |
| |
counter_atomic is introduced to be used when a variable is used as a simple counter and doesn't guard object lifetimes. This clearly differentiates atomic_t usages that guard object lifetimes.
counter_atomic variables will wrap around to 0 when it overflows and should not be used to guard resource lifetimes, device usage and open counts that control state changes, and pm states.
devcd_count is used to track dev_coredumpm device count and used in device name string. It doesn't guard object lifetimes, device usage counts, device open counts, and pm states. There is very little chance of this counter overflowing. Convert it to use counter_atomic.
This conversion doesn't change the oveflow wrap around behavior.
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> --- drivers/base/devcoredump.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/base/devcoredump.c b/drivers/base/devcoredump.c index e42d0b514384..d719424d1e0b 100644 --- a/drivers/base/devcoredump.c +++ b/drivers/base/devcoredump.c @@ -16,6 +16,7 @@ #include <linux/slab.h> #include <linux/fs.h> #include <linux/workqueue.h> +#include <linux/counters.h> static struct class devcd_class; @@ -255,7 +256,7 @@ void dev_coredumpm(struct device *dev, struct module *owner, void *data, size_t datalen), void (*free)(void *data)) { - static atomic_t devcd_count = ATOMIC_INIT(0); + static struct counter_atomic devcd_count = COUNTER_ATOMIC_INIT(0); struct devcd_entry *devcd; struct device *existing; @@ -286,7 +287,7 @@ void dev_coredumpm(struct device *dev, struct module *owner, device_initialize(&devcd->devcd_dev); dev_set_name(&devcd->devcd_dev, "devcd%d", - atomic_inc_return(&devcd_count)); + counter_atomic_inc_return(&devcd_count)); devcd->devcd_dev.class = &devcd_class; if (device_add(&devcd->devcd_dev)) -- 2.25.1
| |