kernel: bump 5.10 to 5.10.169
[openwrt/staging/noltari.git] / target / linux / generic / backport-5.10 / 811-v6.1-0001-nvmem-core-Fix-memleak-in-nvmem_register.patch
index 698e737973bf5b0c65a1454141f8a672b5f56841..561af918934bbacd955bcacfeb58dd9c2943e7e8 100644 (file)
@@ -22,10 +22,23 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/nvmem/core.c
 +++ b/drivers/nvmem/core.c
-@@ -830,21 +830,18 @@ struct nvmem_device *nvmem_register(cons
+@@ -833,6 +833,12 @@ struct nvmem_device *nvmem_register(cons
        nvmem->dev.groups = nvmem_dev_groups;
  #endif
  
++      if (nvmem->nkeepout) {
++              rval = nvmem_validate_keepouts(nvmem);
++              if (rval)
++                      goto err_put_device;
++      }
++
+       if (config->compat) {
+               rval = nvmem_sysfs_setup_compat(nvmem, config);
+               if (rval)
+@@ -853,15 +859,6 @@ struct nvmem_device *nvmem_register(cons
+       if (rval)
+               goto err_remove_cells;
 -      if (nvmem->nkeepout) {
 -              rval = nvmem_validate_keepouts(nvmem);
 -              if (rval) {
@@ -37,16 +50,4 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -
        dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
  
-       rval = device_register(&nvmem->dev);
-       if (rval)
-               goto err_put_device;
-+      if (nvmem->nkeepout) {
-+              rval = nvmem_validate_keepouts(nvmem);
-+              if (rval)
-+                      goto err_device_del;
-+      }
-+
-       if (config->compat) {
-               rval = nvmem_sysfs_setup_compat(nvmem, config);
-               if (rval)
+       rval = device_add(&nvmem->dev);