From patchwork Tue Apr 4 06:17:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96682 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48255qgd; Mon, 3 Apr 2017 23:18:14 -0700 (PDT) X-Received: by 10.84.148.134 with SMTP id k6mr27329211pla.128.1491286694780; Mon, 03 Apr 2017 23:18:14 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.14; Mon, 03 Apr 2017 23:18:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751952AbdDDGSO (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:14 -0400 Received: from mail-pg0-f48.google.com ([74.125.83.48]:36005 "EHLO mail-pg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbdDDGSN (ORCPT ); Tue, 4 Apr 2017 02:18:13 -0400 Received: by mail-pg0-f48.google.com with SMTP id g2so140810694pge.3 for ; Mon, 03 Apr 2017 23:18:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vjbPVhUxjZoRmwb6Vl2TXFc9Lu4gLHzkG2m19o3s9EU=; b=TtzM7ai37nGwcnCB+H+hQMfXqynKOKG+vCrYpuTX3lL/8QcjCz5sSUdm063GNb8Wtp bLCcB46Uwm8DGzNPubK/hXYS0KIi7IYpjxr0PSrjst6Ta+l0flbI9aA1G+0GIGKgY+nx z3TQhubMC+n+w/ikoqEA7BN7gsGanoWJwyeVk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vjbPVhUxjZoRmwb6Vl2TXFc9Lu4gLHzkG2m19o3s9EU=; b=fhuWORhq/W+IMblTnQHPQIt59HsIWLYt9oQhidKReBOanizDFMByWNQhDDd2L9+vOJ ycY2SMo/jVTP8YY2pzcTa6OAn/FXzZrnfYaNjB9whCKGkyFrvq36X1vrJCU2U+iMbd20 bSa0QTjMrlzi3fruD4Jxh1Sl3AwXDZ8eaSHHizdpNYzzWaMVCyBSOJTKq2MVkCHOGlnF j7LdV5xYrmi2mYCEGQn4dSDyO9KG9z6wkX79+WCgkZxpafoBvWlU5f1l9T9Ve2WU4cor GCihPOYlAvh+vol60KNKn0ASsdSpqXemUBrOUK+z9WuGex5RdU1YrIlMuRpTALuS3WWH XwwA== X-Gm-Message-State: AFeK/H1FKY5jXR7abjnqqvewq3ymLPggi95x+EQ76zDLNLVZuPZbvSYgeEpj9b5HSunfUqiZ X-Received: by 10.98.30.3 with SMTP id e3mr20826362pfe.48.1491286692649; Mon, 03 Apr 2017 23:18:12 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:12 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , "David S . Miller" Subject: [PATCH 20/33] net: bgmac: allocate struct bgmac just once & don't copy it Date: Tue, 4 Apr 2017 11:47:59 +0530 Message-Id: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki So far were were allocating struct bgmac in 3 places: platform code, bcma code and shared bgmac_enet_probe function. The reason for this was bgmac_enet_probe: 1) Requiring early-filled struct bgmac 2) Calling alloc_etherdev on its own in order to use netdev_priv later This solution got few drawbacks: 1) Was duplicating allocating code 2) Required copying early-filled struct 3) Resulted in platform/bcma code having access only to unused struct Solve this situation by simply extracting some probe code into the new bgmac_alloc function. Signed-off-by: Rafał Miłecki Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller (cherry picked from commit 34a5102c3235c470a6c77fba16cb971964d9c136) Signed-off-by: Amit Pundir --- drivers/net/ethernet/broadcom/bgmac-bcma.c | 4 +--- drivers/net/ethernet/broadcom/bgmac-platform.c | 2 +- drivers/net/ethernet/broadcom/bgmac.c | 25 +++++++++++++++++-------- drivers/net/ethernet/broadcom/bgmac.h | 3 ++- 4 files changed, 21 insertions(+), 13 deletions(-) -- 2.7.4 diff --git a/drivers/net/ethernet/broadcom/bgmac-bcma.c b/drivers/net/ethernet/broadcom/bgmac-bcma.c index c16ec3a..5b0c7a7 100644 --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c @@ -99,12 +99,11 @@ static int bgmac_probe(struct bcma_device *core) u8 *mac; int err; - bgmac = kzalloc(sizeof(*bgmac), GFP_KERNEL); + bgmac = bgmac_alloc(&core->dev); if (!bgmac) return -ENOMEM; bgmac->bcma.core = core; - bgmac->dev = &core->dev; bgmac->dma_dev = core->dma_dev; bgmac->irq = core->irq; @@ -285,7 +284,6 @@ static int bgmac_probe(struct bcma_device *core) err1: bcma_mdio_mii_unregister(bgmac->mii_bus); err: - kfree(bgmac); bcma_set_drvdata(core, NULL); return err; diff --git a/drivers/net/ethernet/broadcom/bgmac-platform.c b/drivers/net/ethernet/broadcom/bgmac-platform.c index be52f27..020f487 100644 --- a/drivers/net/ethernet/broadcom/bgmac-platform.c +++ b/drivers/net/ethernet/broadcom/bgmac-platform.c @@ -93,7 +93,7 @@ static int bgmac_probe(struct platform_device *pdev) struct resource *regs; const u8 *mac_addr; - bgmac = devm_kzalloc(&pdev->dev, sizeof(*bgmac), GFP_KERNEL); + bgmac = bgmac_alloc(&pdev->dev); if (!bgmac) return -ENOMEM; diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c index 49f4cafe..537b00b 100644 --- a/drivers/net/ethernet/broadcom/bgmac.c +++ b/drivers/net/ethernet/broadcom/bgmac.c @@ -1459,22 +1459,32 @@ static int bgmac_phy_connect(struct bgmac *bgmac) return 0; } -int bgmac_enet_probe(struct bgmac *info) +struct bgmac *bgmac_alloc(struct device *dev) { struct net_device *net_dev; struct bgmac *bgmac; - int err; /* Allocation and references */ - net_dev = alloc_etherdev(sizeof(*bgmac)); + net_dev = devm_alloc_etherdev(dev, sizeof(*bgmac)); if (!net_dev) - return -ENOMEM; + return NULL; net_dev->netdev_ops = &bgmac_netdev_ops; net_dev->ethtool_ops = &bgmac_ethtool_ops; + bgmac = netdev_priv(net_dev); - memcpy(bgmac, info, sizeof(*bgmac)); + bgmac->dev = dev; bgmac->net_dev = net_dev; + + return bgmac; +} +EXPORT_SYMBOL_GPL(bgmac_alloc); + +int bgmac_enet_probe(struct bgmac *bgmac) +{ + struct net_device *net_dev = bgmac->net_dev; + int err; + net_dev->irq = bgmac->irq; SET_NETDEV_DEV(net_dev, bgmac->dev); @@ -1501,7 +1511,7 @@ int bgmac_enet_probe(struct bgmac *info) err = bgmac_dma_alloc(bgmac); if (err) { dev_err(bgmac->dev, "Unable to alloc memory for DMA\n"); - goto err_netdev_free; + goto err_out; } bgmac->int_mask = BGMAC_IS_ERRMASK | BGMAC_IS_RX | BGMAC_IS_TX_MASK; @@ -1537,8 +1547,7 @@ int bgmac_enet_probe(struct bgmac *info) phy_disconnect(net_dev->phydev); err_dma_free: bgmac_dma_free(bgmac); -err_netdev_free: - free_netdev(net_dev); +err_out: return err; } diff --git a/drivers/net/ethernet/broadcom/bgmac.h b/drivers/net/ethernet/broadcom/bgmac.h index 80836b4..69d478a 100644 --- a/drivers/net/ethernet/broadcom/bgmac.h +++ b/drivers/net/ethernet/broadcom/bgmac.h @@ -515,7 +515,8 @@ struct bgmac { u32 set); }; -int bgmac_enet_probe(struct bgmac *info); +struct bgmac *bgmac_alloc(struct device *dev); +int bgmac_enet_probe(struct bgmac *bgmac); void bgmac_enet_remove(struct bgmac *bgmac); struct mii_bus *bcma_mdio_mii_register(struct bcma_device *core, u8 phyaddr); From patchwork Tue Apr 4 06:18:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96683 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48259qgd; Mon, 3 Apr 2017 23:18:16 -0700 (PDT) X-Received: by 10.99.168.5 with SMTP id o5mr21930895pgf.19.1491286696840; Mon, 03 Apr 2017 23:18:16 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.16; Mon, 03 Apr 2017 23:18:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751998AbdDDGSQ (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:16 -0400 Received: from mail-pg0-f48.google.com ([74.125.83.48]:33352 "EHLO mail-pg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbdDDGSP (ORCPT ); Tue, 4 Apr 2017 02:18:15 -0400 Received: by mail-pg0-f48.google.com with SMTP id x125so142559317pgb.0 for ; Mon, 03 Apr 2017 23:18:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z7/8MGhk2+RLjIpN9lMQqhZhUFDWMmmEWxzA+0CbQ0k=; b=elbCdILT8B5dVu35728X3BP4vpug2Sza79EJDmjs1u1AHIl3jGLvMTkxWpqe9jUey3 1WUdrUagTmMeO6PlpUZwT8jqtv4sHAgcg+aXzn5qU5zI0rHhAFGtm6Hsl2cJ2jnfwz2w TFJEAsYcqU8RJNl7lRltF1dy5fX5gmP3bMCKU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z7/8MGhk2+RLjIpN9lMQqhZhUFDWMmmEWxzA+0CbQ0k=; b=J6GfBjSZS5bz8pdCNbKjFCzWAgo8PN3Vi/kCr69/UrhBa4Vpwu/vpsJGSd7wZ1YuUY dwpausu9lH+9kA1FH5GjbXxZOSCKZBswIDLouzQbWuhCR4Kp/yj17eRZLk/Lj/Oo7CaV 148af2DXbasM7rGdPeiWpT21HJosdhl5169k4q8M8nW0TRKv3XyqcJhCfPocW6UOVbyh CfO5A1gZbZCQ5n5rOtfU4Boa5PCrkJ+CoGw/VBgaUBkn3brVj6tSnSHIu4y+sH+Lpr64 9kLAhw/iaS8hhdWUSwJ19paLdsViFBIUMYVHbHXCFE1TDIhuCm9usLV8QenCCM0igboU Y9DA== X-Gm-Message-State: AFeK/H3k6RovIiWFq/ID4J5eNiyElAo6QL2r6boQZAJQj8SDwhoDlM6sE42X33YDIClCfR1G X-Received: by 10.84.160.227 with SMTP id v32mr27314153plg.87.1491286694781; Mon, 03 Apr 2017 23:18:14 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:14 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , "David S . Miller" Subject: [PATCH 21/33] net: bgmac: drop struct bcma_mdio we don't need anymore Date: Tue, 4 Apr 2017 11:48:00 +0530 Message-Id: <1491286688-31314-2-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki Adding struct bcma_mdio was a workaround for bcma code not having access to the struct bgmac used in the core code. Now we don't duplicate this struct we can just use it internally in bcma code. This simplifies code & allows access to all bgmac driver details from all places in bcma code. Signed-off-by: Rafał Miłecki Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller (cherry picked from commit aa8863e5d49417094b9457a0d53e8505e95a1863) Signed-off-by: Amit Pundir --- drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c | 98 ++++++++++--------------- drivers/net/ethernet/broadcom/bgmac-bcma.c | 2 +- drivers/net/ethernet/broadcom/bgmac.h | 2 +- 3 files changed, 42 insertions(+), 60 deletions(-) -- 2.7.4 diff --git a/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c b/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c index 7c19c8e..9d99849 100644 --- a/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma-mdio.c @@ -12,11 +12,6 @@ #include #include "bgmac.h" -struct bcma_mdio { - struct bcma_device *core; - u8 phyaddr; -}; - static bool bcma_mdio_wait_value(struct bcma_device *core, u16 reg, u32 mask, u32 value, int timeout) { @@ -37,7 +32,7 @@ static bool bcma_mdio_wait_value(struct bcma_device *core, u16 reg, u32 mask, * PHY ops **************************************************/ -static u16 bcma_mdio_phy_read(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg) +static u16 bcma_mdio_phy_read(struct bgmac *bgmac, u8 phyaddr, u8 reg) { struct bcma_device *core; u16 phy_access_addr; @@ -56,12 +51,12 @@ static u16 bcma_mdio_phy_read(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg) BUILD_BUG_ON(BGMAC_PC_MCT_SHIFT != BCMA_GMAC_CMN_PC_MCT_SHIFT); BUILD_BUG_ON(BGMAC_PC_MTE != BCMA_GMAC_CMN_PC_MTE); - if (bcma_mdio->core->id.id == BCMA_CORE_4706_MAC_GBIT) { - core = bcma_mdio->core->bus->drv_gmac_cmn.core; + if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) { + core = bgmac->bcma.core->bus->drv_gmac_cmn.core; phy_access_addr = BCMA_GMAC_CMN_PHY_ACCESS; phy_ctl_addr = BCMA_GMAC_CMN_PHY_CTL; } else { - core = bcma_mdio->core; + core = bgmac->bcma.core; phy_access_addr = BGMAC_PHY_ACCESS; phy_ctl_addr = BGMAC_PHY_CNTL; } @@ -87,7 +82,7 @@ static u16 bcma_mdio_phy_read(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg) } /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipphywr */ -static int bcma_mdio_phy_write(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg, +static int bcma_mdio_phy_write(struct bgmac *bgmac, u8 phyaddr, u8 reg, u16 value) { struct bcma_device *core; @@ -95,12 +90,12 @@ static int bcma_mdio_phy_write(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg, u16 phy_ctl_addr; u32 tmp; - if (bcma_mdio->core->id.id == BCMA_CORE_4706_MAC_GBIT) { - core = bcma_mdio->core->bus->drv_gmac_cmn.core; + if (bgmac->bcma.core->id.id == BCMA_CORE_4706_MAC_GBIT) { + core = bgmac->bcma.core->bus->drv_gmac_cmn.core; phy_access_addr = BCMA_GMAC_CMN_PHY_ACCESS; phy_ctl_addr = BCMA_GMAC_CMN_PHY_CTL; } else { - core = bcma_mdio->core; + core = bgmac->bcma.core; phy_access_addr = BGMAC_PHY_ACCESS; phy_ctl_addr = BGMAC_PHY_CNTL; } @@ -110,8 +105,8 @@ static int bcma_mdio_phy_write(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg, tmp |= phyaddr; bcma_write32(core, phy_ctl_addr, tmp); - bcma_write32(bcma_mdio->core, BGMAC_INT_STATUS, BGMAC_IS_MDIO); - if (bcma_read32(bcma_mdio->core, BGMAC_INT_STATUS) & BGMAC_IS_MDIO) + bcma_write32(bgmac->bcma.core, BGMAC_INT_STATUS, BGMAC_IS_MDIO); + if (bcma_read32(bgmac->bcma.core, BGMAC_INT_STATUS) & BGMAC_IS_MDIO) dev_warn(&core->dev, "Error setting MDIO int\n"); tmp = BGMAC_PA_START; @@ -132,39 +127,39 @@ static int bcma_mdio_phy_write(struct bcma_mdio *bcma_mdio, u8 phyaddr, u8 reg, } /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipphyinit */ -static void bcma_mdio_phy_init(struct bcma_mdio *bcma_mdio) +static void bcma_mdio_phy_init(struct bgmac *bgmac) { - struct bcma_chipinfo *ci = &bcma_mdio->core->bus->chipinfo; + struct bcma_chipinfo *ci = &bgmac->bcma.core->bus->chipinfo; u8 i; if (ci->id == BCMA_CHIP_ID_BCM5356) { for (i = 0; i < 5; i++) { - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x008b); - bcma_mdio_phy_write(bcma_mdio, i, 0x15, 0x0100); - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x000f); - bcma_mdio_phy_write(bcma_mdio, i, 0x12, 0x2aaa); - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x000b); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x008b); + bcma_mdio_phy_write(bgmac, i, 0x15, 0x0100); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f); + bcma_mdio_phy_write(bgmac, i, 0x12, 0x2aaa); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b); } } if ((ci->id == BCMA_CHIP_ID_BCM5357 && ci->pkg != 10) || (ci->id == BCMA_CHIP_ID_BCM4749 && ci->pkg != 10) || (ci->id == BCMA_CHIP_ID_BCM53572 && ci->pkg != 9)) { - struct bcma_drv_cc *cc = &bcma_mdio->core->bus->drv_cc; + struct bcma_drv_cc *cc = &bgmac->bcma.core->bus->drv_cc; bcma_chipco_chipctl_maskset(cc, 2, ~0xc0000000, 0); bcma_chipco_chipctl_maskset(cc, 4, ~0x80000000, 0); for (i = 0; i < 5; i++) { - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x000f); - bcma_mdio_phy_write(bcma_mdio, i, 0x16, 0x5284); - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x000b); - bcma_mdio_phy_write(bcma_mdio, i, 0x17, 0x0010); - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x000f); - bcma_mdio_phy_write(bcma_mdio, i, 0x16, 0x5296); - bcma_mdio_phy_write(bcma_mdio, i, 0x17, 0x1073); - bcma_mdio_phy_write(bcma_mdio, i, 0x17, 0x9073); - bcma_mdio_phy_write(bcma_mdio, i, 0x16, 0x52b6); - bcma_mdio_phy_write(bcma_mdio, i, 0x17, 0x9273); - bcma_mdio_phy_write(bcma_mdio, i, 0x1f, 0x000b); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f); + bcma_mdio_phy_write(bgmac, i, 0x16, 0x5284); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b); + bcma_mdio_phy_write(bgmac, i, 0x17, 0x0010); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000f); + bcma_mdio_phy_write(bgmac, i, 0x16, 0x5296); + bcma_mdio_phy_write(bgmac, i, 0x17, 0x1073); + bcma_mdio_phy_write(bgmac, i, 0x17, 0x9073); + bcma_mdio_phy_write(bgmac, i, 0x16, 0x52b6); + bcma_mdio_phy_write(bgmac, i, 0x17, 0x9273); + bcma_mdio_phy_write(bgmac, i, 0x1f, 0x000b); } } } @@ -172,17 +167,17 @@ static void bcma_mdio_phy_init(struct bcma_mdio *bcma_mdio) /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipphyreset */ static int bcma_mdio_phy_reset(struct mii_bus *bus) { - struct bcma_mdio *bcma_mdio = bus->priv; - u8 phyaddr = bcma_mdio->phyaddr; + struct bgmac *bgmac = bus->priv; + u8 phyaddr = bgmac->phyaddr; - if (bcma_mdio->phyaddr == BGMAC_PHY_NOREGS) + if (phyaddr == BGMAC_PHY_NOREGS) return 0; - bcma_mdio_phy_write(bcma_mdio, phyaddr, MII_BMCR, BMCR_RESET); + bcma_mdio_phy_write(bgmac, phyaddr, MII_BMCR, BMCR_RESET); udelay(100); - if (bcma_mdio_phy_read(bcma_mdio, phyaddr, MII_BMCR) & BMCR_RESET) - dev_err(&bcma_mdio->core->dev, "PHY reset failed\n"); - bcma_mdio_phy_init(bcma_mdio); + if (bcma_mdio_phy_read(bgmac, phyaddr, MII_BMCR) & BMCR_RESET) + dev_err(bgmac->dev, "PHY reset failed\n"); + bcma_mdio_phy_init(bgmac); return 0; } @@ -202,16 +197,12 @@ static int bcma_mdio_mii_write(struct mii_bus *bus, int mii_id, int regnum, return bcma_mdio_phy_write(bus->priv, mii_id, regnum, value); } -struct mii_bus *bcma_mdio_mii_register(struct bcma_device *core, u8 phyaddr) +struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac) { - struct bcma_mdio *bcma_mdio; + struct bcma_device *core = bgmac->bcma.core; struct mii_bus *mii_bus; int err; - bcma_mdio = kzalloc(sizeof(*bcma_mdio), GFP_KERNEL); - if (!bcma_mdio) - return ERR_PTR(-ENOMEM); - mii_bus = mdiobus_alloc(); if (!mii_bus) { err = -ENOMEM; @@ -221,15 +212,12 @@ struct mii_bus *bcma_mdio_mii_register(struct bcma_device *core, u8 phyaddr) mii_bus->name = "bcma_mdio mii bus"; sprintf(mii_bus->id, "%s-%d-%d", "bcma_mdio", core->bus->num, core->core_unit); - mii_bus->priv = bcma_mdio; + mii_bus->priv = bgmac; mii_bus->read = bcma_mdio_mii_read; mii_bus->write = bcma_mdio_mii_write; mii_bus->reset = bcma_mdio_phy_reset; mii_bus->parent = &core->dev; - mii_bus->phy_mask = ~(1 << phyaddr); - - bcma_mdio->core = core; - bcma_mdio->phyaddr = phyaddr; + mii_bus->phy_mask = ~(1 << bgmac->phyaddr); err = mdiobus_register(mii_bus); if (err) { @@ -242,23 +230,17 @@ struct mii_bus *bcma_mdio_mii_register(struct bcma_device *core, u8 phyaddr) err_free_bus: mdiobus_free(mii_bus); err: - kfree(bcma_mdio); return ERR_PTR(err); } EXPORT_SYMBOL_GPL(bcma_mdio_mii_register); void bcma_mdio_mii_unregister(struct mii_bus *mii_bus) { - struct bcma_mdio *bcma_mdio; - if (!mii_bus) return; - bcma_mdio = mii_bus->priv; - mdiobus_unregister(mii_bus); mdiobus_free(mii_bus); - kfree(bcma_mdio); } EXPORT_SYMBOL_GPL(bcma_mdio_mii_unregister); diff --git a/drivers/net/ethernet/broadcom/bgmac-bcma.c b/drivers/net/ethernet/broadcom/bgmac-bcma.c index 5b0c7a7..e0e4509 100644 --- a/drivers/net/ethernet/broadcom/bgmac-bcma.c +++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c @@ -159,7 +159,7 @@ static int bgmac_probe(struct bcma_device *core) if (!bgmac_is_bcm4707_family(core) && !(ci->id == BCMA_CHIP_ID_BCM53573 && core->core_unit == 1)) { - mii_bus = bcma_mdio_mii_register(core, bgmac->phyaddr); + mii_bus = bcma_mdio_mii_register(bgmac); if (IS_ERR(mii_bus)) { err = PTR_ERR(mii_bus); goto err; diff --git a/drivers/net/ethernet/broadcom/bgmac.h b/drivers/net/ethernet/broadcom/bgmac.h index 69d478a..780cef2 100644 --- a/drivers/net/ethernet/broadcom/bgmac.h +++ b/drivers/net/ethernet/broadcom/bgmac.h @@ -519,7 +519,7 @@ struct bgmac *bgmac_alloc(struct device *dev); int bgmac_enet_probe(struct bgmac *bgmac); void bgmac_enet_remove(struct bgmac *bgmac); -struct mii_bus *bcma_mdio_mii_register(struct bcma_device *core, u8 phyaddr); +struct mii_bus *bcma_mdio_mii_register(struct bgmac *bgmac); void bcma_mdio_mii_unregister(struct mii_bus *mii_bus); static inline u32 bgmac_read(struct bgmac *bgmac, u16 offset) From patchwork Tue Apr 4 06:18:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96684 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48268qgd; Mon, 3 Apr 2017 23:18:19 -0700 (PDT) X-Received: by 10.99.149.16 with SMTP id p16mr21768739pgd.112.1491286699116; Mon, 03 Apr 2017 23:18:19 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.18; Mon, 03 Apr 2017 23:18:19 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752011AbdDDGSS (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:18 -0400 Received: from mail-pg0-f52.google.com ([74.125.83.52]:33802 "EHLO mail-pg0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbdDDGSS (ORCPT ); Tue, 4 Apr 2017 02:18:18 -0400 Received: by mail-pg0-f52.google.com with SMTP id 21so142764562pgg.1 for ; Mon, 03 Apr 2017 23:18:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wPWiBRR2YfGVDa/mBMprL/d2J77eMvXTr5UMN/e2Iro=; b=iFMDZRA+Z6za6S0L0YkQ1vndkiKjdvR5/6N7L0QJQpnWQ2M8wAnfUzMgOhiK3ai2Ap Gvyncxbyfgjnp7c3GQnB/v6pwl8iPLVyi7gE2xCeNVCnqeUuD8hx9TRJKXLBcpUmul+q 7bKF8HLNdWOHwMOOQ9fZcYWGLaxLMzgU1fCLo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=wPWiBRR2YfGVDa/mBMprL/d2J77eMvXTr5UMN/e2Iro=; b=DdFaqkkTP6ujdjAOOEEoKXOwT0XjD046F3CZkeY45ibhot4uSSppiCzxr0SMqEYyTO nuThg4DLYYJKqf+5sCVcLOoPBKaMcJxcHg3UJ4P39t5LvELIOMccQX5yB29BaX/qbXBN YOqLXH8yGeO/VFdXUUJqCWD+hCk9oe+IHiwy/pNjM2JfaKxZKrhOI0fgQTyH9PnkfY2c gL47Erc5bLJzJrIueOBZ7A5RdI14vi8Fllkulbi2A3+99c9Bn1muKGDp85Y6k6ClIXne YlTzNE3lXsWT0yQX2NYtSNU72aFksbf2aydD2ptvgmQ+TrqMADo7MnyZpwmXBjygnY4r B5CQ== X-Gm-Message-State: AFeK/H2qBtdEr4788vbKugdeno2+UE87KSWh6+IyCm3G7ZhaMavr8gB24tw6M3nNvR24T8Bs X-Received: by 10.84.238.132 with SMTP id v4mr26818028plk.101.1491286697316; Mon, 03 Apr 2017 23:18:17 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:16 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, Tobias Wolf , Sergei Shtylyov , linux-mips@linux-mips.org, Ralf Baechle Subject: [PATCH 22/33] of: Add check to of_scan_flat_dt() before accessing initial_boot_params Date: Tue, 4 Apr 2017 11:48:01 +0530 Message-Id: <1491286688-31314-3-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Tobias Wolf An empty __dtb_start to __dtb_end section might result in initial_boot_params being null for arch/mips/ralink. This showed that the boot process hangs indefinitely in of_scan_flat_dt(). Signed-off-by: Tobias Wolf Cc: Sergei Shtylyov Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/14605/ Signed-off-by: Ralf Baechle (cherry picked from commit 3ec754410cb3e931a6c4920b1a150f21a94a2bf4) Signed-off-by: Amit Pundir --- drivers/of/fdt.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 2.7.4 diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index c89d5d2..6c07f2c 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -738,9 +738,12 @@ int __init of_scan_flat_dt(int (*it)(unsigned long node, const char *pathp; int offset, rc = 0, depth = -1; - for (offset = fdt_next_node(blob, -1, &depth); - offset >= 0 && depth >= 0 && !rc; - offset = fdt_next_node(blob, offset, &depth)) { + if (!blob) + return 0; + + for (offset = fdt_next_node(blob, -1, &depth); + offset >= 0 && depth >= 0 && !rc; + offset = fdt_next_node(blob, offset, &depth)) { pathp = fdt_get_name(blob, offset, NULL); if (*pathp == '/') From patchwork Tue Apr 4 06:18:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96685 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48275qgd; Mon, 3 Apr 2017 23:18:21 -0700 (PDT) X-Received: by 10.84.230.131 with SMTP id e3mr27232028plk.100.1491286701360; Mon, 03 Apr 2017 23:18:21 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.21; Mon, 03 Apr 2017 23:18:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752234AbdDDGSU (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:20 -0400 Received: from mail-pg0-f50.google.com ([74.125.83.50]:33817 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750962AbdDDGSU (ORCPT ); Tue, 4 Apr 2017 02:18:20 -0400 Received: by mail-pg0-f50.google.com with SMTP id 21so142765313pgg.1 for ; Mon, 03 Apr 2017 23:18:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gWWLtYgR+28iDYGboDx9FD+W2yEYNmZR099TamDo6KQ=; b=PuLQFmUTMYivehEXQxbYyKbxeGGWUN8Om0McvJlcx28SY9UvSbz5QnHiRNOWeq4sfQ hCPh7uUO7HHQvxa7kCiWhRW7Iixe7FdCpzWjM8uGRyn+KfSeisYlSw+TSHIxUh+TC0jN fjWYYcbkSZj2lr1ImMNV8TN4aL6SlnWo14kdg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gWWLtYgR+28iDYGboDx9FD+W2yEYNmZR099TamDo6KQ=; b=Y5VYKRvFi22PZ9kwuLYocmv1T+9x0rB7CaySugyktaFwIlFhXYskq+pGpmTZTVC8LI kSPo7DQ0ENVUv6blAmxB9eg76fn7kTsPbhIOAGXigxlcR8Y28gchmivT8MdoxxfgB2TL nlo6ZyJfB0cdXvFz9uZBM5tSsoBMtdTw6mFRjTUWMgyVg9dihV+ZdIgqBY2DpMdmGs+v Blo5FH7uh0+nn1XfY6P/x878f0gk0+xUnYGLFqFZApZJxEDoWlUg7kuR1c/N5Edxdcbv jr6pSPlhXQRLUICjwd0dv9FSmEdGRc4K8+ZpW+PBZetclw72lSgTexuBkOsSDAxRvFIU 9YMQ== X-Gm-Message-State: AFeK/H1ny+ORdBGDwMnwgC2s05rZc4LHJf11QxqMU3h4WFHPjKpOLPmp9CYKQe8efUqKEdgu X-Received: by 10.98.142.26 with SMTP id k26mr7464293pfe.30.1491286699416; Mon, 03 Apr 2017 23:18:19 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:18 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, Arnd Bergmann , Kalle Valo Subject: [PATCH 23/33] rt2500usb: don't mark register accesses as inline Date: Tue, 4 Apr 2017 11:48:02 +0530 Message-Id: <1491286688-31314-4-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Arnd Bergmann When CONFIG_KASAN is set, we get a rather large stack here: drivers/net/wireless/ralink/rt2x00/rt2500usb.c: In function 'rt2500usb_set_device_state': drivers/net/wireless/ralink/rt2x00/rt2500usb.c:1074:1: error: the frame size of 3032 bytes is larger than 100 bytes [-Werror=frame-larger-than=] If we don't force those functions to be inline, the compiler can figure this out better itself and not inline the functions when doing so would be harmful, reducing the stack size to a merge 256 bytes. Note that there is another problem that manifests in this driver, as a result of the typecheck() macro causing even larger stack frames. Signed-off-by: Arnd Bergmann Signed-off-by: Kalle Valo (cherry picked from commit 7272416609126e8910b7f0d0e3dba008aa87830c) Signed-off-by: Amit Pundir --- drivers/net/wireless/ralink/rt2x00/rt2500usb.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c index 2d64611..5b3aae3 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2500usb.c @@ -55,7 +55,7 @@ MODULE_PARM_DESC(nohwcrypt, "Disable hardware encryption."); * If the csr_mutex is already held then the _lock variants must * be used instead. */ -static inline void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 *value) { @@ -66,7 +66,7 @@ static inline void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, *value = le16_to_cpu(reg); } -static inline void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 *value) { @@ -77,16 +77,7 @@ static inline void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, *value = le16_to_cpu(reg); } -static inline void rt2500usb_register_multiread(struct rt2x00_dev *rt2x00dev, - const unsigned int offset, - void *value, const u16 length) -{ - rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_READ, - USB_VENDOR_REQUEST_IN, offset, - value, length); -} - -static inline void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 value) { @@ -96,7 +87,7 @@ static inline void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, ®, sizeof(reg)); } -static inline void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, const unsigned int offset, u16 value) { @@ -106,7 +97,7 @@ static inline void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, ®, sizeof(reg), REGISTER_TIMEOUT); } -static inline void rt2500usb_register_multiwrite(struct rt2x00_dev *rt2x00dev, +static void rt2500usb_register_multiwrite(struct rt2x00_dev *rt2x00dev, const unsigned int offset, void *value, const u16 length) { From patchwork Tue Apr 4 06:18:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96686 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48281qgd; Mon, 3 Apr 2017 23:18:23 -0700 (PDT) X-Received: by 10.98.137.204 with SMTP id n73mr20653450pfk.5.1491286703663; Mon, 03 Apr 2017 23:18:23 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.23; Mon, 03 Apr 2017 23:18:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752477AbdDDGSX (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:23 -0400 Received: from mail-pg0-f48.google.com ([74.125.83.48]:33835 "EHLO mail-pg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751074AbdDDGSW (ORCPT ); Tue, 4 Apr 2017 02:18:22 -0400 Received: by mail-pg0-f48.google.com with SMTP id 21so142766201pgg.1 for ; Mon, 03 Apr 2017 23:18:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=u90ti+p3dk2sh4ycOoEW1lyTgDHSsuGZudJ78Xag5TA=; b=RLTxUVHp+YRqDUsiIfMoydc0eqn3EGqhX6OENDAmAJ1Fx3m8p7GetufbFxseDXP4jQ HqjFVarFR7hGxqGSXuE76nL7ZsozXw6ldVcR3i2H3qi2AVQ+pr53VESd4IiIGXr5m7jJ k7O3PohZgS/NOfij3A4hhFH/Y6qYOgtRSIHGU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=u90ti+p3dk2sh4ycOoEW1lyTgDHSsuGZudJ78Xag5TA=; b=AuBgp76cHi8dfKos/IW+GjpM8oupGaEPpdHRXTtqkr7aqQPJ5laztzq/MFN2hLYFcE raVRJMzHUuuZ8GkwR0cRwsZH8ppLHldVQbVmvhgkS85zwrUFhD6q7AUInigKSm7E6Z27 LuIuS31vQT8wXU7IdmcPKbj1e0BAIV8tX0oJ805uS2cPeg2yEeTwJoiN2aXvLRFXuBEJ 5ktKX1ICSi2d7JhiJKfi2tuvKjKeJZzRqbL4tzQpFfgKPiTwmPh6+yneIyoK+UWqryMe mUCJkKAj7zsURQHY7FWMjxOIZafBfI/2lkjzO/yVLqYW94rpwTMF75KYIKU8FU8cDW0z L3PA== X-Gm-Message-State: AFeK/H3M/eLJKtAYjosVPenPZc3MoNv0BYR1u9+OZrdM0Cu8gpIfQ5qjJspFSFAPm2SU9mL+ X-Received: by 10.98.216.202 with SMTP id e193mr20514461pfg.80.1491286701792; Mon, 03 Apr 2017 23:18:21 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:21 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Kalle Valo Subject: [PATCH 24/33] brcmfmac: check brcmf_bus_get_memdump result for error Date: Tue, 4 Apr 2017 11:48:03 +0530 Message-Id: <1491286688-31314-5-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki This method may be unsupported (see: USB bus) or may just fail (see: SDIO bus). While at it rework logic in brcmf_sdio_bus_get_memdump function to avoid too many conditional code nesting levels. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo (cherry picked from commit f4737a62033d7f3e0db740c449fc62119da7ab8a) Signed-off-by: Amit Pundir --- .../wireless/broadcom/brcm80211/brcmfmac/debug.c | 23 +++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c index e64557c..6f8a4b0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c @@ -32,16 +32,25 @@ static int brcmf_debug_create_memdump(struct brcmf_bus *bus, const void *data, { void *dump; size_t ramsize; + int err; ramsize = brcmf_bus_get_ramsize(bus); - if (ramsize) { - dump = vzalloc(len + ramsize); - if (!dump) - return -ENOMEM; - memcpy(dump, data, len); - brcmf_bus_get_memdump(bus, dump + len, ramsize); - dev_coredumpv(bus->dev, dump, len + ramsize, GFP_KERNEL); + if (!ramsize) + return -ENOTSUPP; + + dump = vzalloc(len + ramsize); + if (!dump) + return -ENOMEM; + + memcpy(dump, data, len); + err = brcmf_bus_get_memdump(bus, dump + len, ramsize); + if (err) { + vfree(dump); + return err; } + + dev_coredumpv(bus->dev, dump, len + ramsize, GFP_KERNEL); + return 0; } From patchwork Tue Apr 4 06:18:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96687 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48297qgd; Mon, 3 Apr 2017 23:18:27 -0700 (PDT) X-Received: by 10.98.149.147 with SMTP id c19mr21038602pfk.36.1491286707007; Mon, 03 Apr 2017 23:18:27 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.26; Mon, 03 Apr 2017 23:18:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752482AbdDDGS0 (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:26 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:36093 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751074AbdDDGSZ (ORCPT ); Tue, 4 Apr 2017 02:18:25 -0400 Received: by mail-pg0-f42.google.com with SMTP id g2so140815045pge.3 for ; Mon, 03 Apr 2017 23:18:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aOn0rH8E18s2UPmSH3X5OOoIuN5ob2pcg0w+Uqx6pPw=; b=jTXSjMeqEbJFEGhgHApm776BzBY2eFlfkhd86pyK+P0azsrKT+WEbh6IAKZssD877i cX1J9ONji9rJ5BfMZH4HrjbDiZ4+d1aw1JrIi5k8Bk1TIyd7D5MyTOdVYO8QRk2i/c3R rxyMATIhshHFuSN7vhh2ddTo8lMDltTJthg58= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aOn0rH8E18s2UPmSH3X5OOoIuN5ob2pcg0w+Uqx6pPw=; b=aXKiBaQ8wuZllVVOxRk210I0B1h8l+iD1QRawf0nxmUX3WSpUyPU5bYCy+X1SBPAem RAD+eCtI3h+wdViq4+k/rqBgcK+VwAfbH58WbI6ezYhZk8bXGJ4yCz5W+fCO8uaOXZSZ 8R7hblk6F6MdNucKWsCtmWGN10nHQTBEUAaf7tA23GEGiRkpSgUNaV9i5/cCDV6O0UYT zu9eeUErFoZDS3rEnGpqfDQ7JU9+Em3CFKyB8fIfXdM6wdQTnKffcIOskeJMF4vbyO+g RPNVy11h/FsC/VrONPKi1ZY+jGdHCRSMkipgZdcHXuAF4i21TKCR5M8DjBdt8qB7ZSAB LKCw== X-Gm-Message-State: AFeK/H1rczCG4v3mabt7fy8Osc9AhQjNNt4swJRm5CEeGqj00UsW6iFfowK6L20yqNeunsrT X-Received: by 10.99.119.69 with SMTP id s66mr21727839pgc.196.1491286703956; Mon, 03 Apr 2017 23:18:23 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:23 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Kalle Valo Subject: [PATCH 25/33] brcmfmac: be more verbose when PSM's watchdog fires Date: Tue, 4 Apr 2017 11:48:04 +0530 Message-Id: <1491286688-31314-6-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki It's important to inform user so he knows things went wrong. He may also want to get memory dump for further debugging purposes. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo (cherry picked from commit 36401cb7ffae731295a6dd1ce2b40d7ad74245f4) Signed-off-by: Amit Pundir --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c index 6f8a4b0..f4644cf 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.c @@ -58,10 +58,18 @@ static int brcmf_debug_psm_watchdog_notify(struct brcmf_if *ifp, const struct brcmf_event_msg *evtmsg, void *data) { + int err; + brcmf_dbg(TRACE, "enter: bsscfgidx=%d\n", ifp->bsscfgidx); - return brcmf_debug_create_memdump(ifp->drvr->bus_if, data, - evtmsg->datalen); + brcmf_err("PSM's watchdog has fired!\n"); + + err = brcmf_debug_create_memdump(ifp->drvr->bus_if, data, + evtmsg->datalen); + if (err) + brcmf_err("Failed to get memory dump, %d\n", err); + + return err; } void brcmf_debugfs_init(void) From patchwork Tue Apr 4 06:18:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96688 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48301qgd; Mon, 3 Apr 2017 23:18:28 -0700 (PDT) X-Received: by 10.98.71.24 with SMTP id u24mr20721492pfa.180.1491286707944; Mon, 03 Apr 2017 23:18:27 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.27; Mon, 03 Apr 2017 23:18:27 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752497AbdDDGS1 (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:27 -0400 Received: from mail-pg0-f42.google.com ([74.125.83.42]:36109 "EHLO mail-pg0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751074AbdDDGS0 (ORCPT ); Tue, 4 Apr 2017 02:18:26 -0400 Received: by mail-pg0-f42.google.com with SMTP id g2so140815888pge.3 for ; Mon, 03 Apr 2017 23:18:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DD6O32VKunMiV1g5HyDlQRPVVld62FXY6h9wIHMkfRQ=; b=GKOiBd54uaoD0gJSEf5AzUy1UCXCkTjOZeobblcY57iw4+8ishCtydQuvsNCxLCYVN OO86IUs/yZsvzTBL4XLWHztmkqn3gVy/TOO2CMMkDeqxEMUas4tAqfEP7BvbnZIX8ENl LvzK5sTasi8gbSRePHixuU+nnUo71LFkBxaUA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DD6O32VKunMiV1g5HyDlQRPVVld62FXY6h9wIHMkfRQ=; b=d2he05WxKgJjGzbQ/RTOS7Za+HEYXhKMQ5yhADn45zoiTpy5RWWaq7xMBIhj0PEySQ y9jPvq9vQ1DaarRSoqLR4PE9gP+RJOSbu1QQR45ARborSiHPV/dqj1Y/FObbZp1VoRWO 5UyBGF7emRmXrQ4VuBBhU2+ONseyemzqWeOCEcxv5KWC0HUtOgxyEyojZTxDy0uP2D2I onHUNclEQNRPV4IH5nET2toJ442ePbg3LXasYoJvKzxpvopXlh4ulpFEKDWaR/kGIoIz jRcqzDyyX/JhftQ480jx2sB/vcFd5/vhrJKT+NsESNjAwaJW6bZcrNWqv1i1xNY8JTWN NDwQ== X-Gm-Message-State: AFeK/H1X6BC464jheZWO1Ygaqx1VyVdqodPRJLNk0oubg/3oaNsa/lvqvAFLkd2v2hCnlPwY X-Received: by 10.84.198.3 with SMTP id o3mr26350825pld.8.1491286705996; Mon, 03 Apr 2017 23:18:25 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:25 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Kalle Valo Subject: [PATCH 26/33] brcmfmac: merge two brcmf_err macros into one Date: Tue, 4 Apr 2017 11:48:05 +0530 Message-Id: <1491286688-31314-7-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki This allows simplifying the code by adding a simple IS_ENABLED check for CONFIG_BRCMDB symbol. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo (cherry picked from commit 9587a01a7ead9efc5032c16e0d9668de58be1186) Signed-off-by: Amit Pundir --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h index 6687812..1fe4aa9 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h @@ -45,20 +45,16 @@ #undef pr_fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#ifndef CONFIG_BRCM_TRACING /* Macro for error messages. net_ratelimit() is used when driver * debugging is not selected. When debugging the driver error * messages are as important as other tracing or even more so. */ -#ifndef CONFIG_BRCM_TRACING -#ifdef CONFIG_BRCMDBG -#define brcmf_err(fmt, ...) pr_err("%s: " fmt, __func__, ##__VA_ARGS__) -#else #define brcmf_err(fmt, ...) \ do { \ - if (net_ratelimit()) \ + if (IS_ENABLED(CONFIG_BRCMDBG) || net_ratelimit()) \ pr_err("%s: " fmt, __func__, ##__VA_ARGS__); \ } while (0) -#endif #else __printf(2, 3) void __brcmf_err(const char *func, const char *fmt, ...); From patchwork Tue Apr 4 06:18:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96689 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48313qgd; Mon, 3 Apr 2017 23:18:30 -0700 (PDT) X-Received: by 10.99.96.72 with SMTP id u69mr21817908pgb.194.1491286710037; Mon, 03 Apr 2017 23:18:30 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.29; Mon, 03 Apr 2017 23:18:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752295AbdDDGS3 (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:29 -0400 Received: from mail-pg0-f50.google.com ([74.125.83.50]:35289 "EHLO mail-pg0-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751074AbdDDGS2 (ORCPT ); Tue, 4 Apr 2017 02:18:28 -0400 Received: by mail-pg0-f50.google.com with SMTP id 81so142717337pgh.2 for ; Mon, 03 Apr 2017 23:18:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fokY1GsduFBds/k77siHsDGemCGdOJb8EJ0OnKUTxh8=; b=EuIS7KIsD3fucypsXtPrTIzkVF9Ptmz93pqFmEkpt6LSuptHL+A+mvgePimBLZ5xXW wrIu/qGo49gesWidWDYwzFZWcKniqDdwDuHfLkYLv6WQs2O8vPdCISBo1FxSyEKuHqDw UucCAvUplw5EYQSdQNQ7T6iP5PD/FTgVJETvU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=fokY1GsduFBds/k77siHsDGemCGdOJb8EJ0OnKUTxh8=; b=iPoLy9ZjNhDq6pRkrCi9V45lM9/RMfn/mLRGnrNotPSfm5u3/FnIyfeEVoxE0QOo4v dIvkclmKcXNxz0JWaI1t5InxGHeu41GnohR9Xm1YZP5zrh+Zu9XmXYQXIsLtEJLyPBPR dmF6t9u0Or6teU5/DkdO/7h0qBOMLftbwM+bf/Ke4Si5LHXSWPYh4BwI8YUdibH5+3q1 c0a7ewf2hEmnKU4X5Yc7cZ9tt0EoiH2ExFN4yWet4QrYneMGvBjvb5ENDbA/BwQQpvNi 0nZ+vfxrRqqa8zTrFm8sCtYrRWJrtm+RbiuU9x767i1BsxfJFZIdRkJwsncJ+B8Ml31S 8tSg== X-Gm-Message-State: AFeK/H3nHGwpw8Th5upOOwDsQQrLDn9dB7RrSMmA+U7wO5JqXcJFazHMooNYzqxOiS/xVYH7 X-Received: by 10.84.222.4 with SMTP id w4mr5700974pls.184.1491286708062; Mon, 03 Apr 2017 23:18:28 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:27 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Kalle Valo Subject: [PATCH 27/33] brcmfmac: switch to C function (__brcmf_err) for printing errors Date: Tue, 4 Apr 2017 11:48:06 +0530 Message-Id: <1491286688-31314-8-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki This will allow extending code and using more detailed messages e.g. with the help of dev_err. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo (cherry picked from commit 087fa712a00685dac4bcc64b7c3dc8ae6bee8026) Signed-off-by: Amit Pundir --- .../net/wireless/broadcom/brcm80211/brcmfmac/common.c | 16 ++++++++++++++++ drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h | 6 +++--- 2 files changed, 19 insertions(+), 3 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c index 3e15d64..2dcca71 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c @@ -218,6 +218,22 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp) return err; } +#ifndef CONFIG_BRCM_TRACING +void __brcmf_err(const char *func, const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + pr_err("%s: %pV", func, &vaf); + + va_end(args); +} +#endif + #if defined(CONFIG_BRCM_TRACING) || defined(CONFIG_BRCMDBG) void __brcmf_dbg(u32 level, const char *func, const char *fmt, ...) { diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h index 1fe4aa9..441a666 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h @@ -45,6 +45,8 @@ #undef pr_fmt #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +__printf(2, 3) +void __brcmf_err(const char *func, const char *fmt, ...); #ifndef CONFIG_BRCM_TRACING /* Macro for error messages. net_ratelimit() is used when driver * debugging is not selected. When debugging the driver error @@ -53,11 +55,9 @@ #define brcmf_err(fmt, ...) \ do { \ if (IS_ENABLED(CONFIG_BRCMDBG) || net_ratelimit()) \ - pr_err("%s: " fmt, __func__, ##__VA_ARGS__); \ + __brcmf_err(__func__, fmt, ##__VA_ARGS__); \ } while (0) #else -__printf(2, 3) -void __brcmf_err(const char *func, const char *fmt, ...); #define brcmf_err(fmt, ...) \ __brcmf_err(__func__, fmt, ##__VA_ARGS__) #endif From patchwork Tue Apr 4 06:18:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96690 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48323qgd; Mon, 3 Apr 2017 23:18:32 -0700 (PDT) X-Received: by 10.99.140.27 with SMTP id m27mr22350514pgd.174.1491286711944; Mon, 03 Apr 2017 23:18:31 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.31; Mon, 03 Apr 2017 23:18:31 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752527AbdDDGSb (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:31 -0400 Received: from mail-pg0-f48.google.com ([74.125.83.48]:33469 "EHLO mail-pg0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752498AbdDDGSa (ORCPT ); Tue, 4 Apr 2017 02:18:30 -0400 Received: by mail-pg0-f48.google.com with SMTP id x125so142565157pgb.0 for ; Mon, 03 Apr 2017 23:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SNCIiq1yLeT7V6fpfpRTFk3xHM5FIQKHIUTT63v0N58=; b=g6vIxowBTC9cV+ApmvHddQxIRgz8o+Mfx05gLtIKzzniosokNZahbynY0JIdMSXLYW S6NW27mQi0Uw420Aw4sHEGGqGTJuGyXfbBGygHbd3ZTsU5guqIldPPNvNcGoXYrPu55L 86Ld5Jg0POAbuKajN7YHwctXGw0574hnQh8Ps= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SNCIiq1yLeT7V6fpfpRTFk3xHM5FIQKHIUTT63v0N58=; b=anyIWnAZvEXLLEmii5HYD4S8JpXAR9+n7fuktcn7bRfudRlm99CRb9lkUFMXIM65dT JSmGeKn78GH1UpZAPeJutTh9afNgMKPSZCBqknO2O/ojdZUeusCUiUGRnexbGiy0OUlT fMv3dBoqq2SGMdCvw7AxY8LVL0FCHvJHiAnv0o5yn26P6s8nHMmAI5BI04tSDRBEUEyq CmmdH+nHMHkPRNRyWsxAs0/kgmMsaH4WEi516ChZGPaIxTAARiIK6TTV86StMWDXuIQt ouQlHMls1YcvCkUYym1idcLCsdLNOmONbWCjT6mufPmK0V1irXOW2i6uo3iZCfZ1HtZS 6OPA== X-Gm-Message-State: AFeK/H2s/GdSFOKr7TKx0Zrb66llqDGhwzS3o+KPxJEw4tXg6tJMHBs6//HJLWLtrt9BNKA1 X-Received: by 10.84.248.79 with SMTP id e15mr26721682pln.44.1491286710193; Mon, 03 Apr 2017 23:18:30 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:29 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , Kalle Valo Subject: [PATCH 28/33] brcmfmac: merge two remaining brcmf_err macros Date: Tue, 4 Apr 2017 11:48:07 +0530 Message-Id: <1491286688-31314-9-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Rafał Miłecki Now we always have __brcmf_err function we can do perfectly fine with just one macro. Signed-off-by: Rafał Miłecki Acked-by: Arend van Spriel Signed-off-by: Kalle Valo (cherry picked from commit d0630555650a394cf5743268820511f527a561a5) Signed-off-by: Amit Pundir --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h index 441a666..0661261 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/debug.h @@ -47,20 +47,16 @@ __printf(2, 3) void __brcmf_err(const char *func, const char *fmt, ...); -#ifndef CONFIG_BRCM_TRACING -/* Macro for error messages. net_ratelimit() is used when driver - * debugging is not selected. When debugging the driver error - * messages are as important as other tracing or even more so. +/* Macro for error messages. When debugging / tracing the driver all error + * messages are important to us. */ #define brcmf_err(fmt, ...) \ do { \ - if (IS_ENABLED(CONFIG_BRCMDBG) || net_ratelimit()) \ + if (IS_ENABLED(CONFIG_BRCMDBG) || \ + IS_ENABLED(CONFIG_BRCM_TRACING) || \ + net_ratelimit()) \ __brcmf_err(__func__, fmt, ##__VA_ARGS__); \ } while (0) -#else -#define brcmf_err(fmt, ...) \ - __brcmf_err(__func__, fmt, ##__VA_ARGS__) -#endif #if defined(DEBUG) || defined(CONFIG_BRCM_TRACING) __printf(3, 4) From patchwork Tue Apr 4 06:18:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amit Pundir X-Patchwork-Id: 96691 Delivered-To: patch@linaro.org Received: by 10.140.89.233 with SMTP id v96csp48338qgd; Mon, 3 Apr 2017 23:18:34 -0700 (PDT) X-Received: by 10.98.137.68 with SMTP id v65mr7409606pfd.125.1491286714485; Mon, 03 Apr 2017 23:18:34 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a9si746909pgf.57.2017.04.03.23.18.34; Mon, 03 Apr 2017 23:18:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752534AbdDDGSd (ORCPT + 6 others); Tue, 4 Apr 2017 02:18:33 -0400 Received: from mail-pg0-f49.google.com ([74.125.83.49]:36157 "EHLO mail-pg0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752498AbdDDGSd (ORCPT ); Tue, 4 Apr 2017 02:18:33 -0400 Received: by mail-pg0-f49.google.com with SMTP id g2so140818313pge.3 for ; Mon, 03 Apr 2017 23:18:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=PCYY+IhJASKbsIhTOvS70uMqhXXK8MAsIpBq+FYE6VI=; b=C+x/Onf5pzq4vuUOHynx9IpYnKK/AYlFeLXGwzZiubXRub07LUe+S7/WdoziF1yWt0 +f5D5awZlCZGd6ZRolEdWAWXVSPgS3LkcjHjYmXyqc8U56aEhKQJx6ndB8rSXSxi7MAt RnQaWZ6trK0TmbWFR/AQ5HIyCvV/txAM/BRuc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=PCYY+IhJASKbsIhTOvS70uMqhXXK8MAsIpBq+FYE6VI=; b=q/wpqib7/BxLKcGxFgj+OsAe+XaG7e9jYExuDJvpJMuE//GwmFp++CbfpEGSc3/cd/ UMf/9mexR7/T0R8iJOSYGKVaLERCQMB8vCGbIg8Mm3vm8qD9CYDjhZX4yWiRr7KmqDDV eeHmQR3Vcx7PaaaiMO3Wv4xcrnIa08jj0piUy/wHSLwl+JgNZ4PXq9a1Wztaiy/Et3Of PeRVayE1J2R66AX882vJlsq2dXgfnqnRK0ptJKRDRfhFR3bd+XSvUwMO9fQ39fPXm1az /nsHiovOJPf9M0KkH5jR1EgBTXOt+IBbe/uuP0xyIdXwR9r6Esm7pPAM0HkzubavmJjS qJVg== X-Gm-Message-State: AFeK/H2gOgsAvzZtNlSJOPHN2K4LxKFdmZ54bEVhet9cjU1MOIDJlXGIU3SynRrEAiQF6btc X-Received: by 10.84.233.205 with SMTP id m13mr26568162pln.92.1491286712495; Mon, 03 Apr 2017 23:18:32 -0700 (PDT) Received: from localhost.localdomain ([106.51.240.246]) by smtp.gmail.com with ESMTPSA id m20sm29331500pgd.32.2017.04.03.23.18.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 03 Apr 2017 23:18:32 -0700 (PDT) From: Amit Pundir To: gregkh@linuxfoundation.org Cc: stable@vger.kernel.org, Stanislaw Gruszka , Vishal Thanki , Kalle Valo Subject: [PATCH 29/33] rt2x00usb: do not anchor rx and tx urb's Date: Tue, 4 Apr 2017 11:48:08 +0530 Message-Id: <1491286688-31314-10-git-send-email-amit.pundir@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> References: <1491286688-31314-1-git-send-email-amit.pundir@linaro.org> Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Stanislaw Gruszka We might kill TX or RX urb during rt2x00usb_flush_entry(), what can cause anchor list corruption like shown below: [ 2074.035633] WARNING: CPU: 2 PID: 14480 at lib/list_debug.c:33 __list_add+0xac/0xc0 [ 2074.035634] list_add corruption. prev->next should be next (ffff88020f362c28), but was dead000000000100. (prev=ffff8801d161bb70). [ 2074.035670] Call Trace: [ 2074.035672] [] dump_stack+0x63/0x8c [ 2074.035674] [] __warn+0xd1/0xf0 [ 2074.035676] [] warn_slowpath_fmt+0x5f/0x80 [ 2074.035678] [] ? rt2x00usb_register_write_lock+0x3d/0x60 [rt2800usb] [ 2074.035679] [] __list_add+0xac/0xc0 [ 2074.035681] [] usb_anchor_urb+0x4c/0xa0 [ 2074.035683] [] rt2x00usb_kick_rx_entry+0xaf/0x100 [rt2x00usb] [ 2074.035684] [] rt2x00usb_clear_entry+0x22/0x30 [rt2x00usb] To fix do not anchor TX and RX urb's, it is not needed as during shutdown we kill those urbs in rt2x00usb_free_entries(). Cc: Vishal Thanki Fixes: 8b4c0009313f ("rt2x00usb: Use usb anchor to manage URB") Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo (cherry picked from commit 93c7018ec16bb83399dd4db61c361a6d6aba0d5a) Signed-off-by: Amit Pundir --- drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 4 ---- 1 file changed, 4 deletions(-) -- 2.7.4 diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c index 6005e14..efe2501 100644 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c @@ -319,10 +319,8 @@ static bool rt2x00usb_kick_tx_entry(struct queue_entry *entry, void *data) entry->skb->data, length, rt2x00usb_interrupt_txdone, entry); - usb_anchor_urb(entry_priv->urb, rt2x00dev->anchor); status = usb_submit_urb(entry_priv->urb, GFP_ATOMIC); if (status) { - usb_unanchor_urb(entry_priv->urb); if (status == -ENODEV) clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags); set_bit(ENTRY_DATA_IO_FAILED, &entry->flags); @@ -410,10 +408,8 @@ static bool rt2x00usb_kick_rx_entry(struct queue_entry *entry, void *data) entry->skb->data, entry->skb->len, rt2x00usb_interrupt_rxdone, entry); - usb_anchor_urb(entry_priv->urb, rt2x00dev->anchor); status = usb_submit_urb(entry_priv->urb, GFP_ATOMIC); if (status) { - usb_unanchor_urb(entry_priv->urb); if (status == -ENODEV) clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags); set_bit(ENTRY_DATA_IO_FAILED, &entry->flags);