From patchwork Fri Mar 20 19:43:56 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joakim Tjernlund X-Patchwork-Id: 24764 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 4A1C8DDE11 for ; Sat, 21 Mar 2009 06:50:35 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758161AbZCTTuX (ORCPT ); Fri, 20 Mar 2009 15:50:23 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753279AbZCTTuW (ORCPT ); Fri, 20 Mar 2009 15:50:22 -0400 Received: from gw1.transmode.se ([213.115.205.20]:35170 "EHLO gw1.transmode.se" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752730AbZCTTuV (ORCPT ); Fri, 20 Mar 2009 15:50:21 -0400 X-Greylist: delayed 382 seconds by postgrey-1.27 at vger.kernel.org; Fri, 20 Mar 2009 15:50:21 EDT Received: from sesr04.transmode.se (sesr04.transmode.se [192.168.201.15]) by gw1.transmode.se (Postfix) with ESMTP id 24A204F18C; Fri, 20 Mar 2009 20:43:56 +0100 (CET) To: leoli@freescale.com, netdev@vger.kernel.org, linuxppc-dev@ozlabs.org MIME-Version: 1.0 Subject: Fw: [PATCH] ucc_geth: Correct fixed_link OOPS. X-KeepSent: 20EA88BB:017079CD-C125757F:006C40A2; type=4; name=$KeepSent X-Mailer: Lotus Notes Release 8.5 December 05, 2008 Message-ID: From: Joakim Tjernlund Date: Fri, 20 Mar 2009 20:43:56 +0100 X-MIMETrack: Serialize by Router on sesr04/Transmode(Release 8.5|December 05, 2008) at 2009-03-20 20:43:56, Serialize complete at 2009-03-20 20:43:56 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org hmm, this mail didn't seem to reach the lists. Resending Jocke ----- Forwarded by Joakim Tjernlund/Transmode on 20/03/2009 20:42 ----- From: Joakim Tjernlund To: leoli@freescale.com, netdev@vger.kernel.org, linuxppc-dev@ozlabs.org Cc: Joakim Tjernlund Date: 20/03/2009 18:01 Subject: [PATCH] ucc_geth: Correct fixed_link OOPS. fixed_link(PHY less) mode will get you an NULL deference as it does not have a phy-handle. Correct by using already probed information. Signed-off-by: Joakim Tjernlund --- The below fixes the problem and seems like the right thing to do. Can we have this in 2.6.29? drivers/net/ucc_geth.c | 17 +---------------- 1 files changed, 1 insertions(+), 16 deletions(-) priv->phy_interface); diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index dc2f8f2..12e5c3d 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c @@ -1536,11 +1536,6 @@ static void adjust_link(struct net_device *dev) static int init_phy(struct net_device *dev) { struct ucc_geth_private *priv = netdev_priv(dev); - struct device_node *np = priv->node; - struct device_node *phy, *mdio; - const phandle *ph; - char bus_name[MII_BUS_ID_SIZE]; - const unsigned int *id; struct phy_device *phydev; char phy_id[BUS_ID_SIZE]; @@ -1548,18 +1543,8 @@ static int init_phy(struct net_device *dev) priv->oldspeed = 0; priv->oldduplex = -1; - ph = of_get_property(np, "phy-handle", NULL); - phy = of_find_node_by_phandle(*ph); - mdio = of_get_parent(phy); - - id = of_get_property(phy, "reg", NULL); - - of_node_put(phy); - of_node_put(mdio); - - uec_mdio_bus_name(bus_name, mdio); snprintf(phy_id, sizeof(phy_id), "%s:%02x", - bus_name, *id); + priv->ug_info->mdio_bus, priv->ug_info->phy_address); phydev = phy_connect(dev, phy_id, &adjust_link, 0,