From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: DSA: Suspicious RCU usage (via rtnl_bridge_getlink) Date: Tue, 20 Sep 2016 15:38:33 +0200 Message-ID: <20160920133833.GD20638@lunn.ch> References: <20160920102611.GO1041@n2100.armlinux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, Vivien Didelot , "Paul E. McKenney" To: Russell King - ARM Linux Return-path: Received: from vps0.lunn.ch ([178.209.37.122]:53329 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754694AbcITNih (ORCPT ); Tue, 20 Sep 2016 09:38:37 -0400 Content-Disposition: inline In-Reply-To: <20160920102611.GO1041@n2100.armlinux.org.uk> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, Sep 20, 2016 at 11:26:12AM +0100, Russell King - ARM Linux wrote: > Issuing "bridge vlan show" on clearfog provokes a "suspicious RCU usage" > warning from the kernel (see below). > > As it's illegal to schedule while holding the RCU read lock, there's the > possibility for this happening much earlier in the call sequence - > mv88e6xxx_port_vlan_dump() takes a mutex, and if that mutex were already > held, we'd schedule at that point. The RCU read lock was taken by > rtnl_bridge_getlink(). > > It looks horrible to fix - mvmdio.c as well as DSA locking are involved. Hi Russell I would say this needs fixing higher up, in the bridge code. DSA has to be able to sleep, since the switch can be on any arbitrary bus, MDIO, SPI, etc. This will affect pure switchdev devices as well, since they often need to send a request to the switch and wait for a reply. Andrew