From patchwork Sun May 9 10:18:57 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 51989 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.180.67]) by ozlabs.org (Postfix) with ESMTP id 4C77EB7D61 for ; Sun, 9 May 2010 20:16:25 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753285Ab0EIKQT (ORCPT ); Sun, 9 May 2010 06:16:19 -0400 Received: from smtp.gentoo.org ([140.211.166.183]:53281 "EHLO smtp.gentoo.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753152Ab0EIKQR (ORCPT ); Sun, 9 May 2010 06:16:17 -0400 Received: from vapier-m (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 7C4EC1B4063; Sun, 9 May 2010 10:16:16 +0000 (UTC) From: Mike Frysinger To: netdev@vger.kernel.org, "David S. Miller" Cc: uclinux-dist-devel@blackfin.uclinux.org, Sonic Zhang Subject: [PATCH 11/11] netdev: bfin_mac: check for mii_bus platform data Date: Sun, 9 May 2010 06:18:57 -0400 Message-Id: <1273400337-26501-11-git-send-email-vapier@gentoo.org> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1273400337-26501-1-git-send-email-vapier@gentoo.org> References: <1273400337-26501-1-git-send-email-vapier@gentoo.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Sonic Zhang If the platform data for the mii_bus is missing, gracefully error out rather than deference NULL pointers. Signed-off-by: Sonic Zhang Signed-off-by: Mike Frysinger --- drivers/net/bfin_mac.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index a4c9ab2..c65d5e1 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c @@ -1472,6 +1472,11 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev) } pd = pdev->dev.platform_data; lp->mii_bus = platform_get_drvdata(pd); + if (!lp->mii_bus) { + dev_err(&pdev->dev, "Cannot get mii_bus!\n"); + rc = -ENODEV; + goto out_err_mii_bus_probe; + } lp->mii_bus->priv = ndev; rc = mii_probe(ndev); @@ -1517,6 +1522,7 @@ out_err_request_irq: out_err_mii_probe: mdiobus_unregister(lp->mii_bus); mdiobus_free(lp->mii_bus); +out_err_mii_bus_probe: peripheral_free_list(pin_req); out_err_probe_mac: platform_set_drvdata(pdev, NULL);