Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp2143234pxb; Sat, 14 Nov 2020 15:23:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJzuOJyKmNs03A9QbK2juaczZvaUjNU+fNn7EfuZd+fysdrTijBMkftPM5t99moZ9rOAcrSJ X-Received: by 2002:a17:906:6949:: with SMTP id c9mr8284476ejs.482.1605396180769; Sat, 14 Nov 2020 15:23:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605396180; cv=none; d=google.com; s=arc-20160816; b=pppeMy5V8UGPhQjYh+FR7WHJxmmbC6apUWFgZGQi5o1Pz1VmCs49g8/6o6SW31Zmug PM6nAlBAYq9HcajhwaDLO8mwi1lBBaigg2t+cFppl5YzcDvOS9DDvtlHt02+vNBDBlO4 XHzhDl6B3zKG9k1ztgE+zzfaGEakEuhkTYd0wEOwTjXzNxeQm2B1+O5kw6uVn0E1jTbx MIvAS7jqPEgVKeDkwmjoiSmVQGXYkMpWRxvZSAlaDbFDAwIEEUIPUhTJgFqXAfS4d2hK hHAcjoS9JYlU4GZ1nmqPEaN82EtKA+w3wobsEH4gdNZZoV1ODl5cdwcMPqkKCYN+8VCg 0ItA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=Iy8oBzmy7esSCHUKnFsl3ChGpkLyS7Ojr9SzaJGpjVQ=; b=inpxIP83YBvVP+fil7PVz36nLDXjJn2mPUMSgmLKE5BroZSmLbYfL8YmsaOhINZ812 splX22CahIW0yVdj5Oqniex30YJJYSydque7M1DOv+b9WXo3UNxM1jeX7NBP/79NmH9a sSYLuJAV7uwpdBsKmISP8zJSCFYKQ0c4RTEY0aiqPKVYx2Kl2hZet149QW7ksOEyRTgk Trd1Ycm7U0kLRTtnLL3cwVsYFkwfdTfdS7/C2d+DaEjzrdtfpviPtJT54p8AlGUsc4Lr llk9OjahyPDyZhmhF/a4G3YyV6ly0EFFC877VOHNR8WktA9ARGCgv94TX308f66sxuvk xY1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sAlff0d8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id d16si8952276edx.296.2020.11.14.15.22.38; Sat, 14 Nov 2020 15:23:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=sAlff0d8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S1726290AbgKNXTK (ORCPT + 99 others); Sat, 14 Nov 2020 18:19:10 -0500 Received: from mail.kernel.org ([198.145.29.99]:57622 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726140AbgKNXTK (ORCPT ); Sat, 14 Nov 2020 18:19:10 -0500 Received: from kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com (c-67-180-217-166.hsd1.ca.comcast.net [67.180.217.166]) (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 B425524102; Sat, 14 Nov 2020 23:19:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1605395950; bh=ehgWnI06o9R35nT4rZ/7ncnW5naNXaQhZJQ9o2x2Ubc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=sAlff0d8j+1cS4sq6GLJo56bONRqYbCXjiWbcelL0ORnkzsDfLINDEgr7MqgMPRbN tTqfdNuz55j/cbIuijS4ZjkyuZzfZedqDNjwzmGxLgT54WUCnPfUT5/ncQqmwJJ2a4 bU5QIzn2sT6SIs8tuVk09m4quKdP4HltYYBmJI9s= Date: Sat, 14 Nov 2020 15:19:08 -0800 From: Jakub Kicinski To: Sven Van Asbroeck Cc: Bryan Whitehead , David S Miller , Microchip Linux Driver Support , Andrew Lunn , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH net v1] lan743x: fix issue causing intermittent kernel log warnings Message-ID: <20201114151908.7e7a05b3@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> In-Reply-To: <20201112185949.11315-1-TheSven73@gmail.com> References: <20201112185949.11315-1-TheSven73@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 12 Nov 2020 13:59:49 -0500 Sven Van Asbroeck wrote: > From: Sven Van Asbroeck > > When running this chip on arm imx6, we intermittently observe > the following kernel warning in the log, especially when the > system is under high load: > The driver is calling dev_kfree_skb() from code inside a spinlock, > where h/w interrupts are disabled. This is forbidden, as documented > in include/linux/netdevice.h. The correct function to use > dev_kfree_skb_irq(), or dev_kfree_skb_any(). > > Fix by using the correct dev_kfree_skb_xxx() functions: > > in lan743x_tx_release_desc(): > called by lan743x_tx_release_completed_descriptors() > called by in lan743x_tx_napi_poll() > which holds a spinlock > called by lan743x_tx_release_all_descriptors() > called by lan743x_tx_close() > which can-sleep > conclusion: use dev_kfree_skb_any() > > in lan743x_tx_xmit_frame(): > which holds a spinlock > conclusion: use dev_kfree_skb_irq() > > in lan743x_tx_close(): > which can-sleep > conclusion: use dev_kfree_skb() > > in lan743x_rx_release_ring_element(): > called by lan743x_rx_close() > which can-sleep > called by lan743x_rx_open() > which can-sleep > conclusion: use dev_kfree_skb() > > Fixes: 23f0703c125b ("lan743x: Add main source files for new lan743x driver") > Signed-off-by: Sven Van Asbroeck Applied, thanks. The _irq() cases look a little strange, are you planning a refactor in net-next? Seems like the freeing can be moved outside the lock. Also the driver could stop the queue when there is less than MAX_SKB_FRAGS + 2 descriptors left, so it doesn't need the "overflow_skb" thing.