From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Lunn Subject: Re: Linux kernel hangs if using RV1108 with MSZ8863 switch with two ports connected Date: Sun, 18 Nov 2018 19:12:30 +0100 Message-ID: <20181118181230.GD7446@lunn.ch> References: <20181116234044.GA752@lunn.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, Heiko Stuebner , david.choi@micrel.com, Andy Yan To: Otavio Salvador Return-path: Received: from vps0.lunn.ch ([185.16.172.187]:39611 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726523AbeKSEdc (ORCPT ); Sun, 18 Nov 2018 23:33:32 -0500 Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: > The kernel starts booting normally and then hangs like this when two > Ethernet cables are connected to the KSZ8863 switch: > http://dark-code.bulix.org/3xexu5-507563 > > This has the lock detection, inside kernel hacking, enabled. Maybe turn on all the hung-task debug and magic key support. With magic key, you might be able to get a backtrace of where it is spinning. Maybe also add #define DEBUG at the top of drivers/net/phy/phy.c. Does it hang during a PHY state transition? Maybe both PHYs are interrupting at the same time, and the interrupt code is broken? Maybe look at the switch driver and see if there is any code which is executed on link up. Put some printk() in there. If you PHYs are using interrupt mode, maybe disable that and use polling. Do you know if this ever worked properly before? If you know when it did work, you can do a git bisect to narrow it down to the one patch which broke it.. Basically, at the moment, you just need to try lots of things, to narrow it down. Andrew