Re: [PATCH v6 2/3] zram: fix deadlock with sysfs attribute usage and module removal

From: Andrew Morton
Date: Sat Jul 10 2021 - 15:28:56 EST


On Fri, 2 Jul 2021 17:19:57 -0700 Luis Chamberlain <mcgrof@xxxxxxxxxx> wrote:

> +#define MODULE_DEVICE_ATTR_FUNC_STORE(_name) \
> +static ssize_t module_ ## _name ## _store(struct device *dev, \
> + struct device_attribute *attr, \
> + const char *buf, size_t len) \
> +{ \
> + ssize_t __ret; \
> + if (!try_module_get(THIS_MODULE)) \
> + return -ENODEV; \
> + __ret = _name ## _store(dev, attr, buf, len); \
> + module_put(THIS_MODULE); \
> + return __ret; \
> +}

I assume that Greg's comments on try_module_get() are applicable here
also.