Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2312079ybl; Mon, 20 Jan 2020 00:10:24 -0800 (PST) X-Google-Smtp-Source: APXvYqxKaukOUR3hhNzno9AiVKgcH+7YAE0gzADTRNKPctVE84IMhkHNLuI9acSgJhGWmrW8K8DV X-Received: by 2002:a05:6830:1289:: with SMTP id z9mr15454149otp.317.1579507824179; Mon, 20 Jan 2020 00:10:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579507824; cv=none; d=google.com; s=arc-20160816; b=TAvQTwEioEHu9jSjQZTNnGN/Z/2QTDOYmFKZFqXe/ZcZXWuCd12UcdApx0PkNE03vM r5OI6aZXa5iABF2CNAXTtSBWZLMo7prbpOS2gT9i/5qEX2ykktqV5aytLofXoEQrJ/sY aOwa6FPzHqotGjrDoI1604On6GvT0Pmhy8pyG8IvYPL9QtlpK7fxaD5/S1/7mimHSY36 hLBDVyVkJbqvcsTh1GIRyeovzCggcfIj9s/hihX0RulsXZrBdEUQv5VpuFZTOm/O5O7I wz7kZUhZWCcw7IKVwal8NgoN2MPS3EHrPLAfevdJktk2Ll8En94UjZ3m4mPokUmtEaXO sBIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date:dkim-signature; bh=9TzRi2LE49KJzsItqrQsxM27FOQzLs3dxqlCd4AbGDQ=; b=bg1zJHe6bTlmbZxInpHyBfptf19yc1x3acglFumBfcS6iGX8cQk1vtIAO+TXE8FVRi FaaUYqqn3c9yE0EbsZSvU6DvDmTEGXF8fRn4U/yiMUxakyOLWqGUryEX2lVtYTT+Ctva hIwX+dJZ5qn8acLWMKjeq+AblxpEm/zKcF/ziAhzcHgbJFJkOd+fofYQCh3a5LwQELMq KJBTZzZtdX6hdEOyumMD3fxUl3i6JqHRq4FAuJLAjeefjKtt1em43QtLb6cHNCofGNs+ ZEa5/ILgye3J0YpiMk2NGN/AsvRitIjHikHjQRj2fqAtC5Lg2lw9tsa/0rcheaXfftLg FRGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ko9cei3Z; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v26si20221027otj.0.2020.01.20.00.10.11; Mon, 20 Jan 2020 00:10:24 -0800 (PST) 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=@kernel.org header.s=default header.b=ko9cei3Z; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726605AbgATII6 (ORCPT + 99 others); Mon, 20 Jan 2020 03:08:58 -0500 Received: from mail.kernel.org ([198.145.29.99]:52708 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726421AbgATII5 (ORCPT ); Mon, 20 Jan 2020 03:08:57 -0500 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C492720684; Mon, 20 Jan 2020 08:08:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579507736; bh=YDEovj2cYhnf/FKg78G2sdgiBvpBIIy7DcSgA489aJ8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=ko9cei3ZkD4EgsgvmkeI3g06C+BOeL5X/5LOAykUd4Q04Y6f46P/QxseZSo1k81aC kKiW+obogUPlWPMbi58LapZ7sJQCHG6isr8Nh7nxxO1j9uPu398CtV4Z9Dulhcgmc3 l9ur72HQYijEQK9rFVM0H1eEzdk1vxklU2nd5Byg= Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why) by disco-boy.misterjones.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1itS7D-000CoA-1l; Mon, 20 Jan 2020 08:08:55 +0000 Date: Mon, 20 Jan 2020 08:08:53 +0000 From: Marc Zyngier To: Kevin Hao Cc: linux-kernel@vger.kernel.org, Thomas Gleixner , David Daney Subject: Re: [PATCH] irqdomain: Fix a memory leak in irq_domain_push_irq() Message-ID: <20200120080853.31f23c98@why> In-Reply-To: <20200120043547.22271-1-haokexin@gmail.com> References: <20200120043547.22271-1-haokexin@gmail.com> Organization: Approximate X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: haokexin@gmail.com, linux-kernel@vger.kernel.org, tglx@linutronix.de, david.daney@cavium.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 20 Jan 2020 12:35:47 +0800 Kevin Hao wrote: > Fix a memory leak reported by kmemleak: > unreferenced object 0xffff000bc6f50e80 (size 128): > comm "kworker/23:2", pid 201, jiffies 4294894947 (age 942.132s) > hex dump (first 32 bytes): > 00 00 00 00 41 00 00 00 86 c0 03 00 00 00 00 00 ....A........... > 00 a0 b2 c6 0b 00 ff ff 40 51 fd 10 00 80 ff ff ........@Q...... > backtrace: > [<00000000e62d2240>] kmem_cache_alloc_trace+0x1a4/0x320 > [<00000000279143c9>] irq_domain_push_irq+0x7c/0x188 > [<00000000d9f4c154>] thunderx_gpio_probe+0x3ac/0x438 > [<00000000fd09ec22>] pci_device_probe+0xe4/0x198 > [<00000000d43eca75>] really_probe+0xdc/0x320 > [<00000000d3ebab09>] driver_probe_device+0x5c/0xf0 > [<000000005b3ecaa0>] __device_attach_driver+0x88/0xc0 > [<000000004e5915f5>] bus_for_each_drv+0x7c/0xc8 > [<0000000079d4db41>] __device_attach+0xe4/0x140 > [<00000000883bbda9>] device_initial_probe+0x18/0x20 > [<000000003be59ef6>] bus_probe_device+0x98/0xa0 > [<0000000039b03d3f>] deferred_probe_work_func+0x74/0xa8 > [<00000000870934ce>] process_one_work+0x1c8/0x470 > [<00000000e3cce570>] worker_thread+0x1f8/0x428 > [<000000005d64975e>] kthread+0xfc/0x128 > [<00000000f0eaa764>] ret_from_fork+0x10/0x18 > > Fixes: 495c38d3001f ("irqdomain: Add irq_domain_{push,pop}_irq() functions") > Cc: stable@vger.kernel.org > Signed-off-by: Kevin Hao > --- > kernel/irq/irqdomain.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c > index dd822fd8a7d5..480df3659720 100644 > --- a/kernel/irq/irqdomain.c > +++ b/kernel/irq/irqdomain.c > @@ -1459,6 +1459,7 @@ int irq_domain_push_irq(struct irq_domain *domain, int virq, void *arg) > if (rv) { > /* Restore the original irq_data. */ > *root_irq_data = *child_irq_data; > + kfree(child_irq_data); > goto error; > } > Nice catch. I'll queue this for 5.6. Thanks, M. -- Jazz is not dead. It just smells funny...