From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751866AbcHJSBf (ORCPT ); Wed, 10 Aug 2016 14:01:35 -0400 Received: from bear.ext.ti.com ([198.47.19.11]:49216 "EHLO bear.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751264AbcHJSBX (ORCPT ); Wed, 10 Aug 2016 14:01:23 -0400 Subject: Re: [PATCH] drivers: net: cpsw: fix kmemleak false-positive reports for sk buffers To: Grygorii Strashko , "David S. Miller" , , Catalin Marinas References: <20160809120944.23185-1-grygorii.strashko@ti.com> CC: Sekhar Nori , , From: Mugunthan V N Message-ID: Date: Wed, 10 Aug 2016 22:25:26 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160809120944.23185-1-grygorii.strashko@ti.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 09 August 2016 05:39 PM, Grygorii Strashko wrote: > Kmemleak reports following false positive memory leaks for each sk > buffers allocated by CPSW (__netdev_alloc_skb_ip_align()) in > cpsw_ndo_open() and cpsw_rx_handler(): > > unreferenced object 0xea915000 (size 2048): > comm "systemd-network", pid 713, jiffies 4294938323 (age 102.180s) > hex dump (first 32 bytes): > 00 58 91 ea ff ff ff ff ff ff ff ff ff ff ff ff .X.............. > ff ff ff ff ff ff fd 0f 00 00 00 00 00 00 00 00 ................ > backtrace: > [] __kmalloc_track_caller+0x1a4/0x230 > [] __alloc_skb+0x68/0x16c > [] __netdev_alloc_skb+0x40/0x104 > [] cpsw_ndo_open+0x374/0x670 [ti_cpsw] > [] __dev_open+0xb0/0x114 > [] __dev_change_flags+0x9c/0x14c > [] dev_change_flags+0x20/0x50 > [] do_setlink+0x2cc/0x78c > [] rtnl_setlink+0xcc/0x100 > [] rtnetlink_rcv_msg+0x184/0x224 > [] netlink_rcv_skb+0xa8/0xc4 > [] rtnetlink_rcv+0x2c/0x34 > [] netlink_unicast+0x16c/0x1f8 > [] netlink_sendmsg+0x334/0x348 > [] sock_sendmsg+0x1c/0x2c > [] SyS_sendto+0xc0/0xe8 > > unreferenced object 0xec861780 (size 192): > comm "softirq", pid 0, jiffies 4294938759 (age 109.540s) > hex dump (first 32 bytes): > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > 00 00 00 00 00 b0 5a ed 00 00 00 00 00 00 00 00 ......Z......... > backtrace: > [] kmem_cache_alloc+0x190/0x208 > [] __build_skb+0x30/0x98 > [] __netdev_alloc_skb+0xb8/0x104 > [] cpsw_rx_handler+0x68/0x1e4 [ti_cpsw] > [] __cpdma_chan_free+0xa8/0xc4 [davinci_cpdma] > [] __cpdma_chan_process+0x14c/0x16c [davinci_cpdma] > [] cpdma_chan_process+0x44/0x5c [davinci_cpdma] > [] cpsw_rx_poll+0x1c/0x9c [ti_cpsw] > [] net_rx_action+0x1f0/0x2ec > [] __do_softirq+0x134/0x258 > [] do_softirq+0x68/0x70 > [] __local_bh_enable_ip+0xd4/0xe8 > [] _raw_spin_unlock_bh+0x30/0x34 > [] igmp6_group_added+0x4c/0x1bc > [] ipv6_dev_mc_inc+0x398/0x434 > [] addrconf_dad_work+0x224/0x39c > > This happens because CPSW allocates SK buffers and then passes > pointers on them in CPDMA where they stored in internal CPPI RAM > (SRAM) which belongs to DEV MMIO space. Kmemleak does not scan IO > memory and so reports memory leaks. > > Hence, mark allocated sk buffers as false positive explicitly. > > Cc: Catalin Marinas > Signed-off-by: Grygorii Strashko Reviewed-by: Mugunthan V N Regards Mugunthan V N