From patchwork Wed Dec 2 16:15:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Havelange X-Patchwork-Id: 336558 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB4CBC71156 for ; Wed, 2 Dec 2020 16:17:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9C4282173E for ; Wed, 2 Dec 2020 16:17:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389043AbgLBQQ7 (ORCPT ); Wed, 2 Dec 2020 11:16:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389028AbgLBQQ6 (ORCPT ); Wed, 2 Dec 2020 11:16:58 -0500 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3637C0613D4 for ; Wed, 2 Dec 2020 08:16:17 -0800 (PST) Received: by mail-wr1-x442.google.com with SMTP id s8so4591818wrw.10 for ; Wed, 02 Dec 2020 08:16:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=essensium.com; s=google; h=from:to:cc:subject:date:message-id; bh=Hu9KgoIfbByheWddhHSVotGIyHUSFkyJms4K0ds5aD0=; b=duHzaQafKzr5OTS8xQc4UKF+O16r6//Zkv/JpJsy0o7VxwEEUT8+IWj4TO10nqgswF Ih+P38JSJtHoTW0zzQOL/9cc1Cacsd7o+DpWNh97yoJ6D4OJrmVyY+kUy1Y6cVchMinw HcjwTwAIrjWU24ATr2uePZ1ZyApOexopLIHGU8u2GGUdbxM3H1LfEkIbQT/EnAIMZGYI 4vUndHy7anJ0b/ZbhRxVs2858+BmhrLaMoZlKZt2zI0NPDiVw/doq0VTLXR1Ic2ODuR1 1LBJp+VQN+7tzrkeKHCpPG3ex+swrUCU17OY4P+FeP49NwPnX3QDEtXTXiKqcqzNXXVh TE0A== 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; bh=Hu9KgoIfbByheWddhHSVotGIyHUSFkyJms4K0ds5aD0=; b=U9L33QfchzlmTS7ImhR7vVJdFxeA4Axjdp3eirialbWAfIrnRpPCyQtcIUb/ZxaBYX x2elX7IwszXBQl5ZmOSpJwAZLR5QAB1m/Mt7dq455mlf2JEq0aT4bdcawIv8kXGdWuDZ uSSpjJAbzWF4LSQVx+4G+RyXHlCG6BGYle42P7WHquGv4QGOfGt6TeLLSP4BBXaFdPv5 UHNXHasLr1Tve8tQFvz4UJURapWpk2xfJf1iWA/vRLrdKnIAPboPeMMSJzatXI6za236 dTIw0JffbG9344t3Qrdshcs0uF2k3L+CLUFT7A6wabu+sMkRerWucIrrrDYn5ms4uYSo FExw== X-Gm-Message-State: AOAM532ik2AqavZAvJvv4txAPhZY915zvMV5kbw/WmP7tTAh680h/DFW HNQ2QqlcG9jRVDnAXRoEAN/U3A== X-Google-Smtp-Source: ABdhPJxzSnB7af/+kMCcoZgVsY0bVgy+9L0dUEwD440EDyJGJnNdc8d/Ao73PBYXXUa/4hPZ486dVg== X-Received: by 2002:a5d:620a:: with SMTP id y10mr4403497wru.236.1606925776527; Wed, 02 Dec 2020 08:16:16 -0800 (PST) Received: from belels006.local.ess-mail.com (ip-188-118-3-185.reverse.destiny.be. [188.118.3.185]) by smtp.gmail.com with ESMTPSA id s4sm2644505wru.56.2020.12.02.08.16.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Dec 2020 08:16:15 -0800 (PST) From: Patrick Havelange To: Madalin Bucur , "David S. Miller" , Jakub Kicinski , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Patrick Havelange Subject: [PATCH 1/4] net: freescale/fman: Split the main resource region reservation Date: Wed, 2 Dec 2020 17:15:57 +0100 Message-Id: <20201202161600.23738-1-patrick.havelange@essensium.com> X-Mailer: git-send-email 2.17.1 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The main fman driver is only using some parts of the fman memory region. Split the reservation of the main region in 2, so that the other regions that will be used by fman-port and fman-mac drivers can be reserved properly and not be in conflict with the main fman reservation. Signed-off-by: Patrick Havelange --- drivers/net/ethernet/freescale/fman/fman.c | 103 +++++++++++++-------- drivers/net/ethernet/freescale/fman/fman.h | 9 +- 2 files changed, 69 insertions(+), 43 deletions(-) diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c index ce0a121580f6..2e85209d560d 100644 --- a/drivers/net/ethernet/freescale/fman/fman.c +++ b/drivers/net/ethernet/freescale/fman/fman.c @@ -58,12 +58,15 @@ /* Modules registers offsets */ #define BMI_OFFSET 0x00080000 #define QMI_OFFSET 0x00080400 -#define KG_OFFSET 0x000C1000 -#define DMA_OFFSET 0x000C2000 -#define FPM_OFFSET 0x000C3000 -#define IMEM_OFFSET 0x000C4000 -#define HWP_OFFSET 0x000C7000 -#define CGP_OFFSET 0x000DB000 +#define SIZE_REGION_0 0x00081000 +#define POL_OFFSET 0x000C0000 +#define KG_OFFSET_FROM_POL 0x00001000 +#define DMA_OFFSET_FROM_POL 0x00002000 +#define FPM_OFFSET_FROM_POL 0x00003000 +#define IMEM_OFFSET_FROM_POL 0x00004000 +#define HWP_OFFSET_FROM_POL 0x00007000 +#define CGP_OFFSET_FROM_POL 0x0001B000 +#define SIZE_REGION_FROM_POL 0x00020000 /* Exceptions bit map */ #define EX_DMA_BUS_ERROR 0x80000000 @@ -1433,7 +1436,7 @@ static int clear_iram(struct fman *fman) struct fman_iram_regs __iomem *iram; int i, count; - iram = fman->base_addr + IMEM_OFFSET; + iram = fman->base_addr_pol + IMEM_OFFSET_FROM_POL; /* Enable the auto-increment */ iowrite32be(IRAM_IADD_AIE, &iram->iadd); @@ -1710,11 +1713,8 @@ static int set_num_of_open_dmas(struct fman *fman, u8 port_id, static int fman_config(struct fman *fman) { - void __iomem *base_addr; int err; - base_addr = fman->dts_params.base_addr; - fman->state = kzalloc(sizeof(*fman->state), GFP_KERNEL); if (!fman->state) goto err_fm_state; @@ -1740,13 +1740,14 @@ static int fman_config(struct fman *fman) fman->state->res = fman->dts_params.res; fman->exception_cb = fman_exceptions; fman->bus_error_cb = fman_bus_error; - fman->fpm_regs = base_addr + FPM_OFFSET; - fman->bmi_regs = base_addr + BMI_OFFSET; - fman->qmi_regs = base_addr + QMI_OFFSET; - fman->dma_regs = base_addr + DMA_OFFSET; - fman->hwp_regs = base_addr + HWP_OFFSET; - fman->kg_regs = base_addr + KG_OFFSET; - fman->base_addr = base_addr; + fman->fpm_regs = fman->dts_params.base_addr_pol + FPM_OFFSET_FROM_POL; + fman->bmi_regs = fman->dts_params.base_addr_0 + BMI_OFFSET; + fman->qmi_regs = fman->dts_params.base_addr_0 + QMI_OFFSET; + fman->dma_regs = fman->dts_params.base_addr_pol + DMA_OFFSET_FROM_POL; + fman->hwp_regs = fman->dts_params.base_addr_pol + HWP_OFFSET_FROM_POL; + fman->kg_regs = fman->dts_params.base_addr_pol + KG_OFFSET_FROM_POL; + fman->base_addr_0 = fman->dts_params.base_addr_0; + fman->base_addr_pol = fman->dts_params.base_addr_pol; spin_lock_init(&fman->spinlock); fman_defconfig(fman->cfg); @@ -1937,8 +1938,8 @@ static int fman_init(struct fman *fman) fman->state->exceptions &= ~FMAN_EX_QMI_SINGLE_ECC; /* clear CPG */ - memset_io((void __iomem *)(fman->base_addr + CGP_OFFSET), 0, - fman->state->fm_port_num_of_cg); + memset_io((void __iomem *)(fman->base_addr_pol + CGP_OFFSET_FROM_POL), + 0, fman->state->fm_port_num_of_cg); /* Save LIODN info before FMan reset * Skipping non-existent port 0 (i = 1) @@ -2717,13 +2718,11 @@ static struct fman *read_dts_node(struct platform_device *of_dev) { struct fman *fman; struct device_node *fm_node, *muram_node; - struct resource *res; + struct resource *tmp_res, *main_res; u32 val, range[2]; int err, irq; struct clk *clk; u32 clk_rate; - phys_addr_t phys_base_addr; - resource_size_t mem_size; fman = kzalloc(sizeof(*fman), GFP_KERNEL); if (!fman) @@ -2740,34 +2739,31 @@ static struct fman *read_dts_node(struct platform_device *of_dev) fman->dts_params.id = (u8)val; /* Get the FM interrupt */ - res = platform_get_resource(of_dev, IORESOURCE_IRQ, 0); - if (!res) { + tmp_res = platform_get_resource(of_dev, IORESOURCE_IRQ, 0); + if (!tmp_res) { dev_err(&of_dev->dev, "%s: Can't get FMan IRQ resource\n", __func__); goto fman_node_put; } - irq = res->start; + irq = tmp_res->start; /* Get the FM error interrupt */ - res = platform_get_resource(of_dev, IORESOURCE_IRQ, 1); - if (!res) { + tmp_res = platform_get_resource(of_dev, IORESOURCE_IRQ, 1); + if (!tmp_res) { dev_err(&of_dev->dev, "%s: Can't get FMan Error IRQ resource\n", __func__); goto fman_node_put; } - fman->dts_params.err_irq = res->start; + fman->dts_params.err_irq = tmp_res->start; /* Get the FM address */ - res = platform_get_resource(of_dev, IORESOURCE_MEM, 0); - if (!res) { + main_res = platform_get_resource(of_dev, IORESOURCE_MEM, 0); + if (!main_res) { dev_err(&of_dev->dev, "%s: Can't get FMan memory resource\n", __func__); goto fman_node_put; } - phys_base_addr = res->start; - mem_size = resource_size(res); - clk = of_clk_get(fm_node, 0); if (IS_ERR(clk)) { dev_err(&of_dev->dev, "%s: Failed to get FM%d clock structure\n", @@ -2832,22 +2828,47 @@ static struct fman *read_dts_node(struct platform_device *of_dev) } } - fman->dts_params.res = - devm_request_mem_region(&of_dev->dev, phys_base_addr, - mem_size, "fman"); - if (!fman->dts_params.res) { - dev_err(&of_dev->dev, "%s: request_mem_region() failed\n", + err = devm_request_resource(&of_dev->dev, &iomem_resource, main_res); + if (err) { + dev_err(&of_dev->dev, "%s: devm_request_resource() failed\n", + __func__); + goto fman_free; + } + + fman->dts_params.res = main_res; + + tmp_res = devm_request_mem_region(&of_dev->dev, main_res->start, + SIZE_REGION_0, "fman"); + if (!tmp_res) { + dev_err(&of_dev->dev, "%s: devm_request_mem_region() failed\n", __func__); goto fman_free; } - fman->dts_params.base_addr = - devm_ioremap(&of_dev->dev, phys_base_addr, mem_size); - if (!fman->dts_params.base_addr) { + fman->dts_params.base_addr_0 = + devm_ioremap(&of_dev->dev, tmp_res->start, + resource_size(tmp_res)); + if (!fman->dts_params.base_addr_0) { dev_err(&of_dev->dev, "%s: devm_ioremap() failed\n", __func__); goto fman_free; } + tmp_res = devm_request_mem_region(&of_dev->dev, + main_res->start + POL_OFFSET, + SIZE_REGION_FROM_POL, "fman"); + if (!tmp_res) { + dev_err(&of_dev->dev, "%s: devm_request_mem_region() failed\n", + __func__); + goto fman_free; + } + + fman->dts_params.base_addr_pol = + devm_ioremap(&of_dev->dev, tmp_res->start, + resource_size(tmp_res)); + if (!fman->dts_params.base_addr_pol) { + dev_err(&of_dev->dev, "%s: devm_ioremap() failed\n", __func__); + goto fman_free; + } fman->dev = &of_dev->dev; err = of_platform_populate(fm_node, NULL, NULL, &of_dev->dev); diff --git a/drivers/net/ethernet/freescale/fman/fman.h b/drivers/net/ethernet/freescale/fman/fman.h index f2ede1360f03..e6b339c57230 100644 --- a/drivers/net/ethernet/freescale/fman/fman.h +++ b/drivers/net/ethernet/freescale/fman/fman.h @@ -306,7 +306,11 @@ typedef irqreturn_t (fman_bus_error_cb)(struct fman *fman, u8 port_id, /* Structure that holds information received from device tree */ struct fman_dts_params { - void __iomem *base_addr; /* FMan virtual address */ + void __iomem *base_addr_0; /* FMan virtual address */ + void __iomem *base_addr_pol; /* FMan virtual address + * second region starting at + * policer offset + */ struct resource *res; /* FMan memory resource */ u8 id; /* FMan ID */ @@ -322,7 +326,8 @@ struct fman_dts_params { struct fman { struct device *dev; - void __iomem *base_addr; + void __iomem *base_addr_0; + void __iomem *base_addr_pol; struct fman_intr_src intr_mng[FMAN_EV_CNT]; struct fman_fpm_regs __iomem *fpm_regs; From patchwork Wed Dec 2 16:15:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Havelange X-Patchwork-Id: 337627 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0D48DC83013 for ; Wed, 2 Dec 2020 16:17:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C9FA621D7A for ; Wed, 2 Dec 2020 16:17:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389058AbgLBQRF (ORCPT ); Wed, 2 Dec 2020 11:17:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728419AbgLBQRF (ORCPT ); Wed, 2 Dec 2020 11:17:05 -0500 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD99AC0617A6 for ; Wed, 2 Dec 2020 08:16:18 -0800 (PST) Received: by mail-wr1-x441.google.com with SMTP id s8so4591882wrw.10 for ; Wed, 02 Dec 2020 08:16:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=essensium.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=32wijpVRZam48n6WcEbTQm6X2gRK0yzC2hG6Y0Y2+Lk=; b=PlyX+bAbaCJ+ViZ3xFGoPUhiuB+2K2BHJQpYjSn9xuCgAlXPdGx9ck4kZMLiKNqYPw 4YOSSXkVExGyKM71Um3KGpNbXs0B7shbuN5VRCT349Vd89LzeWx78sobdQxuea2b3LDY lIO2LXf0l1cgInR6lZnW/HDihBMsku+m/dB+0DLs3Lo1Nn5cyCkOVOs4cOo7zWiAfYYm J+tArr0vo9cKRrLuI+5D/rEA7Q7rPFtx+ENisJL+tn0YEit3M+xHE8NXY9VVkzWDbMbP O3ZjN7YhhUX9o2b04DH+eiMt6fix3aRcHgtU7miug3d1EF/lCG8mc5YDQZF2V3ufGBS1 aXLw== 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=32wijpVRZam48n6WcEbTQm6X2gRK0yzC2hG6Y0Y2+Lk=; b=Ktf8ZulfHzRjPvRY+ASSWgKCX38pNmEDi185aDjEC4dFdyKmAJBVQmoIpPrjY2oosL oysnPwrtbiokTX/Mn13pQVS8/n8jxW1seBpg8x41LHGktI5n0NRhfeHgTdj/lrWM+m3Z msaO99/3Zx2U9PnueX/d6rXgij4YH1WGGUpNmNA/hTqu0EnHOBcnbo3VL6oAXMIkeFFA CmNfvCGEq/cbHcbXiynsSUpQSnj2IqKizh64fbvEiIROHsBy/DjQCRLD1KBw9Rl8HALK /KCVqbwOJnddBbB/FLIGa9dYgPbeaUXKjpCHJymX8pKJj91XPOLs+WBHKTjjjsbH8+xh rUaA== X-Gm-Message-State: AOAM530zqKpQBc6fEQE7s0EmykNffINzXB9zUaggGdHuU5Y07o/W8p9k vCUV01iQd70fJ4BWHULZNeBhGw== X-Google-Smtp-Source: ABdhPJxE5Lx04xyZanZUDA81AWi0NhR2YFRrdwcY6RR+G2YIKZDWA9D5NJ+ziv0L9zugYHw5s6vs0Q== X-Received: by 2002:adf:eb91:: with SMTP id t17mr4358566wrn.330.1606925777480; Wed, 02 Dec 2020 08:16:17 -0800 (PST) Received: from belels006.local.ess-mail.com (ip-188-118-3-185.reverse.destiny.be. [188.118.3.185]) by smtp.gmail.com with ESMTPSA id s4sm2644505wru.56.2020.12.02.08.16.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Dec 2020 08:16:16 -0800 (PST) From: Patrick Havelange To: Madalin Bucur , "David S. Miller" , Jakub Kicinski , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Patrick Havelange Subject: [PATCH 2/4] net: freescale/fman-port: remove direct use of __devm_request_region Date: Wed, 2 Dec 2020 17:15:58 +0100 Message-Id: <20201202161600.23738-2-patrick.havelange@essensium.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201202161600.23738-1-patrick.havelange@essensium.com> References: <20201202161600.23738-1-patrick.havelange@essensium.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This driver was directly calling __devm_request_region with a specific resource on the stack as parameter. This is invalid as __devm_request_region expects the given resource passed as parameter to live longer than the call itself, as the pointer to the resource will be stored inside the internal struct used by the devres management. In addition to this issue, a related bug has been found by kmemleak with this trace : unreferenced object 0xc0000001efc01880 (size 64): comm "swapper/0", pid 1, jiffies 4294669078 (age 3620.536s) hex dump (first 32 bytes): 00 00 00 0f fe 4a c0 00 00 00 00 0f fe 4a cf ff .....J.......J.. c0 00 00 00 00 ee 9d 98 00 00 00 00 80 00 02 00 ................ backtrace: [] .alloc_resource+0xb8/0xe0 [] .__request_region+0x70/0x1c4 [] .__devm_request_region+0x8c/0x138 [] .fman_port_probe+0x170/0x420 [] .platform_drv_probe+0x84/0x108 [] .driver_probe_device+0x2c4/0x394 [] .__driver_attach+0x124/0x128 [] .bus_for_each_dev+0xb4/0x110 [] .driver_attach+0x34/0x4c [] .bus_add_driver+0x264/0x2a4 [] .driver_register+0x94/0x160 [] .__platform_driver_register+0x60/0x7c [] .fman_port_load+0x28/0x64 [] .do_one_initcall+0xd4/0x1a8 [] .kernel_init_freeable+0x1bc/0x2a4 [] .kernel_init+0x24/0x138 Indeed, the new resource (created in __request_region) will be linked to the given resource living on the stack, which will end its lifetime after the function calling __devm_request_region has finished. Meaning the new resource allocated is no longer reachable. Now that the main fman driver is no longer reserving the region used by fman-port, this previous hack is no longer needed and we can use the regular call to devm_request_mem_region instead, solving those bugs at the same time. Signed-off-by: Patrick Havelange --- drivers/net/ethernet/freescale/fman/fman_port.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/fman/fman_port.c b/drivers/net/ethernet/freescale/fman/fman_port.c index d9baac0dbc7d..354974939d9d 100644 --- a/drivers/net/ethernet/freescale/fman/fman_port.c +++ b/drivers/net/ethernet/freescale/fman/fman_port.c @@ -1878,10 +1878,10 @@ static int fman_port_probe(struct platform_device *of_dev) of_node_put(port_node); - dev_res = __devm_request_region(port->dev, &res, res.start, - resource_size(&res), "fman-port"); + dev_res = devm_request_mem_region(port->dev, res.start, + resource_size(&res), "fman-port"); if (!dev_res) { - dev_err(port->dev, "%s: __devm_request_region() failed\n", + dev_err(port->dev, "%s: devm_request_mem_region() failed\n", __func__); err = -EINVAL; goto free_port; From patchwork Wed Dec 2 16:15:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Havelange X-Patchwork-Id: 337626 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23BA2C64E7B for ; Wed, 2 Dec 2020 16:17:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C080621D7A for ; Wed, 2 Dec 2020 16:17:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389076AbgLBQRV (ORCPT ); Wed, 2 Dec 2020 11:17:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389070AbgLBQRU (ORCPT ); Wed, 2 Dec 2020 11:17:20 -0500 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E6314C061A47 for ; Wed, 2 Dec 2020 08:16:19 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id 64so4585767wra.11 for ; Wed, 02 Dec 2020 08:16:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=essensium.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7cVseWE6MIn0vIOshUQxsts71GrP62tJMM0vJ2mEO6M=; b=JPMZDn1Q25wUvfxd5NHJUlgs/Y8PdFBXa/MVT0UhCfSDQfXICkj59GPnUm3wuozxG4 UZ+ZjahG2yZHm8StlaVRYK+lgGj/uTSVF8EBVRoTLCOHYONUqktFbinfdcfvMPQXiXQB Fs/eqX57ZpU+WU2wHITndg3sXuIWc4YBUenchkoNPvGD2AAsu1/8l/FCFYUm9odgVGLB 1AfmO8klAYMdu9+BdSrjmcI3CIVaAAT8apQZTdlJLyYB01vOUnvKTTP+/L78HE6DkqK5 VI7i96lWnrmSvyHdZXoSxtRgLstxqO9zW0eXwVVgC98IXrcdCdAPPnBjWDYATo89qwDL 4WbA== 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=7cVseWE6MIn0vIOshUQxsts71GrP62tJMM0vJ2mEO6M=; b=REI42lGmyeOfqT6RUe85wMaAZ6p1pmNF/e82wWId13HOiC14rp4A5Eo42PnBHNhusC 7OMti+sBeSmEu55tnERJ3S7mkTF9soWDjTktF33A+AcbeXC1gw3o7sCXAQK5VfUSWv3A N6dEYoNmQe9skOpYANDrVpN6rmOX8Qsws+9MWGCFZT6QFheuvaKIuZMwKiWok9kvczg3 w30Oc+649K5Ubg0GUww53Sai4sUrW8KwvJ0NstB5PCcbIqsrwj8/gWUe3mSic2eHChGt TOr87szsT7g2t/QU5UBVrdxhv3X4ohZ6QvTElXRIbMgEldpNUHktrR4ASasWuzQnevI4 qjkw== X-Gm-Message-State: AOAM531Y0jSoF9gHoaaDqpfCwDtPf/WOzm8cWNWNO9YUpRhSlZ6PoLCo bzMEOTNsueUgHNdeKZgfcJUgLpkAq41V+Q== X-Google-Smtp-Source: ABdhPJwSjZL1OPGRCTWiQOlBQXtYSorpd0ICSpOhAQ4VJl5WT02dgUIr5pavqow6fS4l9GahL/u1/Q== X-Received: by 2002:adf:e44d:: with SMTP id t13mr4422657wrm.144.1606925778652; Wed, 02 Dec 2020 08:16:18 -0800 (PST) Received: from belels006.local.ess-mail.com (ip-188-118-3-185.reverse.destiny.be. [188.118.3.185]) by smtp.gmail.com with ESMTPSA id s4sm2644505wru.56.2020.12.02.08.16.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Dec 2020 08:16:17 -0800 (PST) From: Patrick Havelange To: Madalin Bucur , "David S. Miller" , Jakub Kicinski , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Patrick Havelange Subject: [PATCH 3/4] net: freescale/fman-mac: remove direct use of __devm_request_region Date: Wed, 2 Dec 2020 17:15:59 +0100 Message-Id: <20201202161600.23738-3-patrick.havelange@essensium.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201202161600.23738-1-patrick.havelange@essensium.com> References: <20201202161600.23738-1-patrick.havelange@essensium.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Since the main fman driver is no longer reserving the complete fman memory region, it is no longer needed to use a custom call to __devm_request_region, so replace it with devm_request_mem_region Signed-off-by: Patrick Havelange --- drivers/net/ethernet/freescale/fman/mac.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/freescale/fman/mac.c b/drivers/net/ethernet/freescale/fman/mac.c index 901749a7a318..35ca33335aed 100644 --- a/drivers/net/ethernet/freescale/fman/mac.c +++ b/drivers/net/ethernet/freescale/fman/mac.c @@ -690,12 +690,10 @@ static int mac_probe(struct platform_device *_of_dev) goto _return_of_get_parent; } - mac_dev->res = __devm_request_region(dev, - fman_get_mem_region(priv->fman), - res.start, resource_size(&res), - "mac"); + mac_dev->res = devm_request_mem_region(dev, res.start, + resource_size(&res), "mac"); if (!mac_dev->res) { - dev_err(dev, "__devm_request_mem_region(mac) failed\n"); + dev_err(dev, "devm_request_mem_region(mac) failed\n"); err = -EBUSY; goto _return_of_get_parent; } From patchwork Wed Dec 2 16:16:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Havelange X-Patchwork-Id: 336557 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER, INCLUDES_PATCH, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A791C71156 for ; Wed, 2 Dec 2020 16:17:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EEB8921D7F for ; Wed, 2 Dec 2020 16:17:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728826AbgLBQRj (ORCPT ); Wed, 2 Dec 2020 11:17:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59336 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728586AbgLBQRi (ORCPT ); Wed, 2 Dec 2020 11:17:38 -0500 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE9AAC061A48 for ; Wed, 2 Dec 2020 08:16:20 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id i2so4634127wrs.4 for ; Wed, 02 Dec 2020 08:16:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=essensium.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=n6zxn0ciPWvecDtaO/9pXlIMYf7CJlzucbFrKBsiNoc=; b=PFKmsM+rz5pWrC4hyjIRpp8wEsGNnX/2pKUjgW2vAioOJIULwPqBNsJOCGOmPppTpw PCUogDdRtoz2bhUWAoS8n6d1pxSLzYy2WWT3Lgc5QNAWItCq9vHBPVWrAlW9G9zlS6bp mbMcibpUMzJu3rgchGXRqYuzLOGZr4hHGloqAkCGh5M3QzhK5rhilYPIK0gj4N4Ttmnj kOlH80A0HaC4MPv8FZhxVY62hePGvx3m/hwNVAZTsw2Vminw3/mFF3LDNDz8GbFZM+FC DatoYsLK0ReGk/6GPxUsFSGJ7NTYneBJcAtAWDpydPcqVlSU9rJN/+Tw2jwY/a12R9Ts 4TVg== 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=n6zxn0ciPWvecDtaO/9pXlIMYf7CJlzucbFrKBsiNoc=; b=UZFmku6QOW35NxqzN3N0TmWQcsuK7GBYBHYOe4AinTrH4xr4BL6O6dRRDwvgRgpNco TBbN3+7BDeg/K8OqwoaLGQ0Tpz17JJn3cXm/8e+BMCGuYLzvio/R/MaLgsB/990HJA1D NuE/ocPxCWKSIolle5F73K3wvXaRD1LM9WRs3N3HJrGZLS+tq/I70pCSfTV+iYeJz9eq S3ap4VUy5HUiPZ5o7J2zIyfrh2NFKSsdVvsYJspMXLMIRpEVgrNSGmhByGleIL4qMFHO mvz3HDiq2nvUtv6c+42q/TRZAEgY7bdqg1BoUpT/yUZpbwiR4qbC0N7iHfI5pu4OHg8d N+MQ== X-Gm-Message-State: AOAM531t4yUkDEsmmv/3IFtYLy2kwVhYqlbOSaYYWylLgdS3I3tbqHB7 LJzqaI7uNslcTBiWq5d13UkIwg== X-Google-Smtp-Source: ABdhPJxLVNrN068k/FAiywPaBvuF1gJQ5HzHKm2PZFAwrFFYiA4prYxgNUk7lacSuz099v1rYPAy0A== X-Received: by 2002:adf:f181:: with SMTP id h1mr4305130wro.267.1606925779573; Wed, 02 Dec 2020 08:16:19 -0800 (PST) Received: from belels006.local.ess-mail.com (ip-188-118-3-185.reverse.destiny.be. [188.118.3.185]) by smtp.gmail.com with ESMTPSA id s4sm2644505wru.56.2020.12.02.08.16.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Dec 2020 08:16:19 -0800 (PST) From: Patrick Havelange To: Madalin Bucur , "David S. Miller" , Jakub Kicinski , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Patrick Havelange Subject: [PATCH 4/4] net: freescale/fman: remove fman_get_mem_region Date: Wed, 2 Dec 2020 17:16:00 +0100 Message-Id: <20201202161600.23738-4-patrick.havelange@essensium.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201202161600.23738-1-patrick.havelange@essensium.com> References: <20201202161600.23738-1-patrick.havelange@essensium.com> Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This function is no longer used, so we can remove it. The pointer to the resource that was kept inside struct fman_state_struct can also be removed for the same reason. Signed-off-by: Patrick Havelange --- drivers/net/ethernet/freescale/fman/fman.c | 17 ----------------- drivers/net/ethernet/freescale/fman/fman.h | 2 -- 2 files changed, 19 deletions(-) diff --git a/drivers/net/ethernet/freescale/fman/fman.c b/drivers/net/ethernet/freescale/fman/fman.c index 2e85209d560d..bf78e12a1683 100644 --- a/drivers/net/ethernet/freescale/fman/fman.c +++ b/drivers/net/ethernet/freescale/fman/fman.c @@ -531,8 +531,6 @@ struct fman_state_struct { u32 qman_channel_base; u32 num_of_qman_channels; - - struct resource *res; }; /* Structure that holds FMan initial configuration */ @@ -1737,7 +1735,6 @@ static int fman_config(struct fman *fman) fman->state->qman_channel_base = fman->dts_params.qman_channel_base; fman->state->num_of_qman_channels = fman->dts_params.num_of_qman_channels; - fman->state->res = fman->dts_params.res; fman->exception_cb = fman_exceptions; fman->bus_error_cb = fman_bus_error; fman->fpm_regs = fman->dts_params.base_addr_pol + FPM_OFFSET_FROM_POL; @@ -2405,20 +2402,6 @@ u32 fman_get_qman_channel_id(struct fman *fman, u32 port_id) } EXPORT_SYMBOL(fman_get_qman_channel_id); -/** - * fman_get_mem_region - * @fman: A Pointer to FMan device - * - * Get FMan memory region - * - * Return: A structure with FMan memory region information - */ -struct resource *fman_get_mem_region(struct fman *fman) -{ - return fman->state->res; -} -EXPORT_SYMBOL(fman_get_mem_region); - /* Bootargs defines */ /* Extra headroom for RX buffers - Default, min and max */ #define FSL_FM_RX_EXTRA_HEADROOM 64 diff --git a/drivers/net/ethernet/freescale/fman/fman.h b/drivers/net/ethernet/freescale/fman/fman.h index e6b339c57230..e326aa37b8b2 100644 --- a/drivers/net/ethernet/freescale/fman/fman.h +++ b/drivers/net/ethernet/freescale/fman/fman.h @@ -398,8 +398,6 @@ int fman_set_mac_max_frame(struct fman *fman, u8 mac_id, u16 mfl); u32 fman_get_qman_channel_id(struct fman *fman, u32 port_id); -struct resource *fman_get_mem_region(struct fman *fman); - u16 fman_get_max_frm(void); int fman_get_rx_extra_headroom(void);