From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934098AbdEOLN3 (ORCPT ); Mon, 15 May 2017 07:13:29 -0400 Received: from mga05.intel.com ([192.55.52.43]:32903 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933182AbdEOLN1 (ORCPT ); Mon, 15 May 2017 07:13:27 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,344,1491289200"; d="scan'208";a="1169331382" From: Mika Westerberg To: Srinivas Kandagatla Cc: Mika Westerberg , linux-kernel@vger.kernel.org Subject: [PATCH] nvmem: core: Prevent memory leak when device is unregistered Date: Mon, 15 May 2017 14:13:23 +0300 Message-Id: <20170515111323.10640-1-mika.westerberg@linux.intel.com> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The nvmem_unregister() calls device_del() for the device but forgets to call put_device() to actually release the device object which causes that memory to be leaked. Fix this by calling device_unregister() for the device intead which also calls put_device() for the device releasing it eventually. Signed-off-by: Mika Westerberg --- drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 8c830a80a648..112c8072e0f3 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -528,7 +528,7 @@ int nvmem_unregister(struct nvmem_device *nvmem) device_remove_bin_file(nvmem->base_dev, &nvmem->eeprom); nvmem_device_remove_all_cells(nvmem); - device_del(&nvmem->dev); + device_unregister(&nvmem->dev); return 0; } -- 2.11.0