From mboxrd@z Thu Jan 1 00:00:00 1970 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,MSGID_FROM_MTA_HEADER,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 17E46C4338F for ; Tue, 24 Aug 2021 12:02:28 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3125961262 for ; Tue, 24 Aug 2021 12:02:27 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 3125961262 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3D28E82F2B; Tue, 24 Aug 2021 14:01:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="avEtGLcX"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3659E81F74; Tue, 24 Aug 2021 14:01:14 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02on062c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe07::62c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B212A82D95 for ; Tue, 24 Aug 2021 14:01:01 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=vladimir.oltean@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EYCX7AzoTx26zgEPkd+l1NbgQRoa3zYSMya6CG2skzf6aMuk755cxlfvvtUs6A7g8hCQ73rJM5+WQLMEv5jPJNgqgD5991NI4yxnnC2b2qe6lW58GlNXh0ti7ObpjIrYiM9UDpv2bilwNIssa13gBc/0z5Tq6kmaQdczgK9Xk3pqiHdHmCtspEcAUxSt/FTdkUmgj1S+PbGnCJ3tD79fuFmoUDYhp8TtvoIDPNYCm6q25lfPQhJgm7F8J2IY7Xdbn9CSzjvcfgBxi/oJIkIIkqmBYwLvB2eWp/tF1FiWGOrKpkaItUSn0fAh/vua9160NKU+X09bPoYowpYTCxb+wQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YVF7HgPbUL2R8fxWueffX4DoYa2BcYvPKIiCChI0R8Y=; b=BeRIzf1Zs1bqyKWrfEkzTvzBH06Gu/gC8NfOMT1ny1KYDw8/rmSNifyVA2moWT+p96Io+R2z63G2DsdgTn2cqBkX5G8YauQMm0h5JihZp3L1BQZxjNyenqAzCYvxkDUKUIzeqRZrwO7rmVdd8SjNt/jg8YRyj/9qUlA4BUkOHaj8apAOcfXCjoCPyjO+j9f97DTIbAko7/0/Wc5eIkJ+Bdf9s1vYfHNSxBtb5R2i9ejoPbhWBCE3VuGxRnSOgMSU9Efl7AKN5/hV4xq9QkQ9QPlLhlXSa40EsovlFHvgL+LeyzoldPde3tqV9T4gt1+Lz4KSuxuMqKMWkO7tl6zYDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YVF7HgPbUL2R8fxWueffX4DoYa2BcYvPKIiCChI0R8Y=; b=avEtGLcXpio98oQJ62SOjrTUGfK+4e5aQoehJRT8rG1FORqQumdnaZLY3TPeTAWGLGSnpJmrw7tb2kvqhu7I9eg/w3bZiMwSr7mwDqRg5hncSqWNKzYXClR2AC9deZyI4wS3ZbyQgymGditluy6nZi2tLYClwQRMqhwk7EddqvM= Authentication-Results: ni.com; dkim=none (message not signed) header.d=none;ni.com; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) by VE1PR04MB7374.eurprd04.prod.outlook.com (2603:10a6:800:1ac::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.22; Tue, 24 Aug 2021 12:01:01 +0000 Received: from VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::109:1995:3e6b:5bd0]) by VI1PR04MB5136.eurprd04.prod.outlook.com ([fe80::109:1995:3e6b:5bd0%2]) with mapi id 15.20.4436.025; Tue, 24 Aug 2021 12:01:00 +0000 From: Vladimir Oltean To: Joe Hershberger , Ramon Fried , u-boot@lists.denx.de Cc: Claudiu Manoil , Michael Walle , Priyanka Jain Subject: [PATCH v2 3/6] net: dsa: refactor the code to set the port MAC address into a dedicated function Date: Tue, 24 Aug 2021 15:00:40 +0300 Message-Id: <20210824120043.3823931-4-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210824120043.3823931-1-vladimir.oltean@nxp.com> References: <20210824120043.3823931-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: PR3P192CA0010.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::15) To VI1PR04MB5136.eurprd04.prod.outlook.com (2603:10a6:803:55::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (188.25.144.60) by PR3P192CA0010.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17 via Frontend Transport; Tue, 24 Aug 2021 12:01:00 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 88f2f9b3-3360-4ecb-807e-08d966f6d71e X-MS-TrafficTypeDiagnostic: VE1PR04MB7374: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I2VKgtaDq+JW9GTj7iXNBEgI41ua5sTD4eoYBtgu9fv4J4zTXvgMcVUl3ivkMMEAr0rUo+tIJi1wiLjT77jOZ5EqEs98bbo9ah+u2OtkFf8fr2mo/GDDmbUK/W/a77gZmYJMPw/fw02ZaWbg5nKJq4sM/jzY25HpdGz7xf6R8E15Frx/2Bc4LM37Qy46ljXaCnIC/iTKFD72hsIdlVzbS7SgKFzjypUY6aPwIkk2Mv9PmOt88/fwYekH3yqBnAZ+MQ/AF/DMastiIa1we2pIVOsOscXQSogY7/rUVhOTIt2f9JHbU9xI0pzK/++GMCGfLKbm2y7kIy3i/huvsESOoU9wbHDCdhIbRFBKYXC8JKE70aoVH57ucKlgFP3g16HdplUHyqRah31+tnqcLGguRKZXv5TJB3AYuHamzofh5uGYMIJ8dDl8mPuqv+EeX/ZMjx2NkaahGcwF49auZPf8xqTuY21JxKJzuUMJLLwUiKXDceKPxbQB3su5M0+MkrXsYx5+6kkyFHdVmBw+DhTqKfqMK9OwIr3AfXG3KaE6A7p+fragvZ4JXBELTrcivVxsr9qVWeDsX6aRj9CkFtxeXLh10s4HTn9UaoicxEBRPhghV+zNpVn11Zv69rff9ukF2nBrHxGm8B9ExAe/GtuFwvlYeciKr74j3q8Xn3bj7DJoff11FlMtknMDCNK/COJFLe5LY2YNbWGosnrKLNoDog== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB5136.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(396003)(376002)(39850400004)(346002)(110136005)(8936002)(54906003)(316002)(956004)(2906002)(6512007)(6506007)(83380400001)(36756003)(44832011)(478600001)(4326008)(2616005)(66946007)(66556008)(1076003)(6486002)(66476007)(86362001)(6666004)(186003)(38100700002)(38350700002)(26005)(8676002)(5660300002)(52116002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ccnSvBTpy91cXUvqoArSV826/2bADpML9i/oeiW3JBW6HLnMXIewOy47HwJA?= =?us-ascii?Q?sBfVcnQmnts7aZy/Nt/4OVTPxrgjPfatrj+uEatqPfkx+zlvQJNTTtKhQuQh?= =?us-ascii?Q?ZbHcATsqR97ljSWQWVtnSwRFss/97Om9tuG9w9Kyt6ZDODrbVo9q1pMU0M4q?= =?us-ascii?Q?3sZiG5hpfEPeCMDQdGlT8OM3aj/QjuCjW/gcylgVKYpA3RGuw/Wf1DNMwbL/?= =?us-ascii?Q?4x8QEV+dFhWbUq0mEBTfR+UelqYr0mGj7gHy6cfLczIOI4cumlcUN8g3Q+HX?= =?us-ascii?Q?qGLIHy7KTHB7oHeAmpCk16ZCdx/fndyhvSRXc1lhtWvF9/+1tIQ7W/tQKjai?= =?us-ascii?Q?Vvf+f09xJMDZtXgnoCWosoKhOL2mq+CV7W7Deasua7IdPmlkDxACxc2ZrTzW?= =?us-ascii?Q?qJ+TgBifsEYq9GWFv866yCSfAgSyVFAj5YrPuo6oH0/1XY967XM91qS86hSx?= =?us-ascii?Q?Flhr6w54YLnh622ZikoMzgb8PDlke3z/rxQtLqDoIpls11gXWQtBo6hHSoHL?= =?us-ascii?Q?No++F1WlKJXN54Z97n+16iXbweDPSVceFACU0XZIrfSA43bkF3GSDCIux2xM?= =?us-ascii?Q?64bsAWjBRu+g6E8C34FTs0NIV6WasqoSg8xbsAkULtiTg6JwfSQx2uCoBVht?= =?us-ascii?Q?awBMEvJJgWzmJmXM64K9aeB+p8lHTU1AbJtuTrtRp4t4bIKi4N4sk26wIjlb?= =?us-ascii?Q?m8LQ9dfVApdFJ/BwC9ZZxAbDIoAEGzkzTi1wkvQGRWlOXCdhJeUofxjm6kmQ?= =?us-ascii?Q?GP/xDPUr9dprB/9bHkvtGoCb07DGAiGCR0rMjBgJ2i5yaHtIUIgTRrG4Ksps?= =?us-ascii?Q?Qeow8F4E49Jcoh2hg01m7z8DWhjT/dG0FD/qDLApqb322gUgBZy5lhgAnK3L?= =?us-ascii?Q?/ufPgHcEerDWEkKaKWvuZb4wa/cECH81K5KyqepBeVGrHvVfGRFdAZfeLGkX?= =?us-ascii?Q?aH1CB7a3jS1yL86/YTm91DC03V+6MWe6wt0P8WVy+nSoycgTVZ+eL2YpVLaZ?= =?us-ascii?Q?tUdTmfqidqbVnZ3pFCwSraglUNRrc4RR1Xzpta0r2pyB9t4+YQlGNH83vWzD?= =?us-ascii?Q?BlH2eqDYV3Q0xpjrHvZQq8cWhpbW+9/xNFjV3GiDL5KsKc9QaqDmV9cab0LG?= =?us-ascii?Q?K6mLs/vjj7EaDiCtQn3ktxqPEfiNTrK2iuOEg0fnf/17Al0ZHNkpSmC8TYR+?= =?us-ascii?Q?GG0h5pqTtu9pm0wTHL4WBfnn4398jnS7ets76SnXjyaO6ggNaq8cRlEj+NQe?= =?us-ascii?Q?XlkYxCX5K1HsjbP7xHvz3Yhw9S5NL/ybaMkMwipLU5s5yjtTlLq0O1gWufDm?= =?us-ascii?Q?Q1dpHu6Uh4LNnSNjrGrSp/Bq?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88f2f9b3-3360-4ecb-807e-08d966f6d71e X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5136.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2021 12:01:00.8193 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1oOq8OGtvmKYt96+Mh8Z1rjT3WcyY4212zpe0nnrvfF+CNAsc+KlF8owR1oBvR8DB7lbkpNO3CiZ0WdXkvG6ug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR04MB7374 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean This snippet of code has a bothering "if (...) return 0" in it which assumes it is the last piece of code running in dsa_port_probe(). This makes it difficult to add further code at the end of dsa_port_probe() which does not depend on MAC address stuff. So move the code to a dedicated function which returns void and let the code flow through. Signed-off-by: Vladimir Oltean Reviewed-by: Ramon Fried Tested-by: Michael Walle --- net/dsa-uclass.c | 50 +++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/net/dsa-uclass.c b/net/dsa-uclass.c index f279ca7d2d6c..dbd8558b6486 100644 --- a/net/dsa-uclass.c +++ b/net/dsa-uclass.c @@ -240,11 +240,36 @@ static const struct eth_ops dsa_port_ops = { .free_pkt = dsa_port_free_pkt, }; -static int dsa_port_probe(struct udevice *pdev) +/* + * Inherit port's hwaddr from the DSA master, unless the port already has a + * unique MAC address specified in the environment. + */ +static void dsa_port_set_hwaddr(struct udevice *pdev, struct udevice *master) { - struct udevice *dev = dev_get_parent(pdev); struct eth_pdata *eth_pdata, *master_pdata; unsigned char env_enetaddr[ARP_HLEN]; + + eth_env_get_enetaddr_by_index("eth", dev_seq(pdev), env_enetaddr); + if (!is_zero_ethaddr(env_enetaddr)) { + /* individual port mac addrs require master to be promisc */ + struct eth_ops *eth_ops = eth_get_ops(master); + + if (eth_ops->set_promisc) + eth_ops->set_promisc(master, 1); + + return; + } + + master_pdata = dev_get_plat(master); + eth_pdata = dev_get_plat(pdev); + memcpy(eth_pdata->enetaddr, master_pdata->enetaddr, ARP_HLEN); + eth_env_set_enetaddr_by_index("eth", dev_seq(pdev), + master_pdata->enetaddr); +} + +static int dsa_port_probe(struct udevice *pdev) +{ + struct udevice *dev = dev_get_parent(pdev); struct dsa_port_pdata *port_pdata; struct dsa_priv *dsa_priv; struct udevice *master; @@ -272,26 +297,7 @@ static int dsa_port_probe(struct udevice *pdev) if (err) return err; - /* - * Inherit port's hwaddr from the DSA master, unless the port already - * has a unique MAC address specified in the environment. - */ - eth_env_get_enetaddr_by_index("eth", dev_seq(pdev), env_enetaddr); - if (!is_zero_ethaddr(env_enetaddr)) { - /* individual port mac addrs require master to be promisc */ - struct eth_ops *eth_ops = eth_get_ops(master); - - if (eth_ops->set_promisc) - eth_ops->set_promisc(master, 1); - - return 0; - } - - master_pdata = dev_get_plat(master); - eth_pdata = dev_get_plat(pdev); - memcpy(eth_pdata->enetaddr, master_pdata->enetaddr, ARP_HLEN); - eth_env_set_enetaddr_by_index("eth", dev_seq(pdev), - master_pdata->enetaddr); + dsa_port_set_hwaddr(pdev, master); return 0; } -- 2.25.1