Messages in this thread Patch in this message | | | From | Shuah Khan <> | Subject | [PATCH v2 04/11] drivers/base/devcoredump: convert devcd_count to counter_atomic32 | Date | Tue, 6 Oct 2020 14:44:35 -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_atomic32.
This conversion doesn't change the overflow wrap around behavior.
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> 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..59bc48ee44af 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_atomic32 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_atomic32_inc_return(&devcd_count)); devcd->devcd_dev.class = &devcd_class; if (device_add(&devcd->devcd_dev)) -- 2.25.1
| |