Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1443388imm; Wed, 1 Aug 2018 16:23:53 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeKT+RF/8zecRrEbOOCmNFksuTUlZb4860iSGIutBYH42qngTQMR4+Bf/3JK65vlrPxzA7V X-Received: by 2002:a17:902:3a2:: with SMTP id d31-v6mr270506pld.287.1533165833532; Wed, 01 Aug 2018 16:23:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533165833; cv=none; d=google.com; s=arc-20160816; b=DHIlz38294vtPnhePbjV7l+TRTe7HNqkEETqt9yI0zPApl46HTZG0Y6eW5U1KYz1F2 LZFCzsIqTpqw6yobl+82wz5p5TQwbrNeYPCwoNRD7RKpgc/TPyMwIxT0xSCH1zAI8/Cl tSuD113CqCLa5Tgc8Xc9AN8znGZr5uSb93Skdkx3RH9zpGPUJr1ZjVLUoJpz139QiULj obrIyv0shs9ZmbjYQDdWLmljwuZJfRLMgUANb8K4bDGR++V6cwFZ0TFjjh0cyb37bnZD gU+MJW3BfLM/lCAJ7SOfhLMyqBEydqdMN8Q1yPdK0jkNFmDTAR12w3msBV4rTUNtHp3F r6jA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:reply-to:message-id:date:subject:cc:to :from:dkim-signature:arc-authentication-results; bh=4t2T8LeEMUOdj6LCpH9g0l+vBl3lfGEwJz3iSuGgrOM=; b=t5iFJXkMotnBJdw+W/WkDthQ1WtbTqUiBiTmBDRIqTcwS7MHdPYlkumoxizvrBbgB4 fxAI3lDDmqTUOhsTKuiCdQmmpShsst9DiB3BeYG7lGWCopsFGVVlZpHCeQMz94NyjLms 7y+ifN/YT9sh4GDqKnHmVEBzmEOCNdl7PR1A9OCr0m5ArdqHw81Oy3zEUbgV+whSHyjv QQ9+qLUgHNJopFDTp7Ac51cULE1MdJ7ellvrPNDLER5loXfBFIgZy2hOU61s4D+22U/7 S/oXKAhfr9yRBSCmzMuT0t3jt2nP+V3wvc5jS6wWZHCnK+dUopaCZStlfPVCRHU1n2hs X5LQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=St+SRIWI; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id w19-v6si266606pfn.160.2018.08.01.16.23.38; Wed, 01 Aug 2018 16:23:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=St+SRIWI; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730957AbeHBBKx (ORCPT + 99 others); Wed, 1 Aug 2018 21:10:53 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:45414 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726723AbeHBBKx (ORCPT ); Wed, 1 Aug 2018 21:10:53 -0400 Received: by mail-pg1-f196.google.com with SMTP id f1-v6so141407pgq.12 for ; Wed, 01 Aug 2018 16:22:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:reply-to; bh=4t2T8LeEMUOdj6LCpH9g0l+vBl3lfGEwJz3iSuGgrOM=; b=St+SRIWIyDb7dck3pMR/i3+JnSUYXwzBEXt3lmckPQQAVsJ2fPCIvJeQtMzEWVPLr3 nJdlJlXRysxkWsaxubUI4WHvUAO4Vifp1L8nY57lHLYhee8RYe+sEzhKcXeEp5gEShgC AXk5kA9lm2E2llq3yy2QA2LJV9osCWEaphgfHfC6SmThIIGQ/muOaLgx2olpswhK0VFN bQA1FSZi2UdEOek9b55Vf8zKK9Uxhtj1RpQCU/Mb4caPA+dj3Q1Io3kk5r7/qZkxHUJJ ccUb1Wd3ErNlOstSlb4RB9fV15Xd6uz2yiOLHGOaCGjmCFF0Q5G6oGuqG9GvS8KRcYXO QVKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4t2T8LeEMUOdj6LCpH9g0l+vBl3lfGEwJz3iSuGgrOM=; b=JTmiwhoD3eNNhT8e6SMRkEPtE1ZRyBQ/NXr2A7YH5uTI3YrO45Wbq/reqTs1Z/oZ2X RX16/vSjHyJj8J+EBe2lEPIgfjr5SFzaZpfu3I5VIKjRmZA8BW9KDqCS0FbmBkBxfgmt msqiqbv3UOHJtH3E4YfNvctbYGOevpOJi3P6ObTX2I0Xvujb0LvlLIx3ytNOWMjZF9kl WyYbI1narKwvI4E4rwrkaUYMqU/q8Xt18bLJul4Zm0odBUiAM2Mp+3wLuFdozI/mGQkW y+T8tlfudaRwUyPrFdrEyhkOqignkfWVQeZIpxFXg8TKxIx+wiXRhD+mpmEgC3hVKbvl AALg== X-Gm-Message-State: AOUpUlFLxSp9x5VEABoLZeKxhRjQQuzG61Nt1OZQZi3jP0C9cFaalKnN VmaKDrmlxQ7Tof+54fJGyNM= X-Received: by 2002:a65:4304:: with SMTP id j4-v6mr340160pgq.109.1533165761310; Wed, 01 Aug 2018 16:22:41 -0700 (PDT) Received: from mhkkerneltest.corp.microsoft.com ([131.107.160.207]) by smtp.gmail.com with ESMTPSA id p17-v6sm138211pgv.26.2018.08.01.16.22.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Aug 2018 16:22:40 -0700 (PDT) From: mhkelley58@gmail.com X-Google-Original-From: mikelley@microsoft.com To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, marcelo.cerri@canonical.com, sthemmin@microsoft.com, kys@microsoft.com Cc: mikelley@microsoft.com Subject: [PATCH char-misc 1/1] Drivers: hv: vmbus: Cleanup synic memory free path Date: Wed, 1 Aug 2018 15:45:13 -0700 Message-Id: <1533163513-10764-1-git-send-email-mikelley@microsoft.com> X-Mailer: git-send-email 1.8.3.1 Reply-To: mikelley@microsoft.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Kelley clk_evt memory is not being freed when the synic is shutdown or when there is an allocation error. Add the appropriate kfree() call, along with a comment to clarify how the memory gets freed after an allocation error. Make the free path consistent by removing checks for NULL since kfree() and free_page() already do the check. Signed-off-by: Michael Kelley Reported-by: Dan Carpenter --- drivers/hv/hv.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c index 8d4fe0e..1fb9a6b 100644 --- a/drivers/hv/hv.c +++ b/drivers/hv/hv.c @@ -240,6 +240,10 @@ int hv_synic_alloc(void) return 0; err: + /* + * Any memory allocations that succeeded will be freed when + * the caller cleans up by calling hv_synic_free() + */ return -ENOMEM; } @@ -252,12 +256,10 @@ void hv_synic_free(void) struct hv_per_cpu_context *hv_cpu = per_cpu_ptr(hv_context.cpu_context, cpu); - if (hv_cpu->synic_event_page) - free_page((unsigned long)hv_cpu->synic_event_page); - if (hv_cpu->synic_message_page) - free_page((unsigned long)hv_cpu->synic_message_page); - if (hv_cpu->post_msg_page) - free_page((unsigned long)hv_cpu->post_msg_page); + kfree(hv_cpu->clk_evt); + free_page((unsigned long)hv_cpu->synic_event_page); + free_page((unsigned long)hv_cpu->synic_message_page); + free_page((unsigned long)hv_cpu->post_msg_page); } kfree(hv_context.hv_numa_map); -- 1.8.3.1