iwlwifi: nvm: free old section data when reading nvm file
authorMoshe Harel <moshe.harel@intel.com>
Thu, 10 Sep 2015 12:29:09 +0000 (15:29 +0300)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 25 Oct 2015 11:45:09 +0000 (13:45 +0200)
When reading external NVM file, if a section exists both in OTP
and in the external file, the memory that was allocated at OTP
reading is not freed.
This is possible only on systems that have an external NVM
file which is typically the case on embedded systems.

Signed-off-by: Moshe Harel <moshe.harel@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/nvm.c

index 4e4a680f274a3603a2b470d1d41d1476c3f48dab..2ee0f6fe56a1f58071247ca872479f587516668d 100644 (file)
@@ -483,6 +483,7 @@ static int iwl_mvm_read_external_nvm(struct iwl_mvm *mvm)
                        ret = -ENOMEM;
                        break;
                }
+               kfree(mvm->nvm_sections[section_id].data);
                mvm->nvm_sections[section_id].data = temp;
                mvm->nvm_sections[section_id].length = section_size;