Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2537054pxb; Sun, 23 Jan 2022 07:48:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJzLS23+AAouuSMKuNCVRaUUGW/CDzPYooteQ7WozXG85EKu9wBYz1gQU+8BO9CH4PyanEss X-Received: by 2002:a17:902:ce8e:b0:14b:3589:6c30 with SMTP id f14-20020a170902ce8e00b0014b35896c30mr5435000plg.61.1642952923084; Sun, 23 Jan 2022 07:48:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642952923; cv=none; d=google.com; s=arc-20160816; b=ri956xn3F9ao24LjmXx+GECLxZU5mnQx8PnhixAwlZptK89/phMZ1jOkuoJv67GW9X HbkBS9I2frODGC9YskT+eIvv7wobq7uMAEqHrFRmvnKWLvDxQ/UKF9ULv5Zyh5jrX+pQ Zktgp0K3UHFOEUpnCQbX7Z1Ah/T1z9q/3tt00mHm2a4Kg8Ve6aaS3xanOikufbDd5AWG defPoSaxz+khGXkNKIbXvqmTUShXOVifO07PEdxZYlbtRioUxzqFrlFCBoAFSdiqKxnG kis3vRRsvHQu+Hf++umgGI9UvmvYqTCKK3yzW47mBvM8icdQ5TQmhcREv9bTbcnkZ0n2 iGrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=yReEyDljeJdv8C22t6ovBpcK3F5nD6ArYVXeiZOiEsA=; b=fh4z8+c6AqJh4q+cCqtzF7V/wiGq9ikDLlFOYz3Qd7G5EmD5h0FroEiU1zDMNxVa8c 4ZqsVWcXl20OtClq6GyVBR9Jy6hhA+KC6LYDjbJFtIc5vx0vkPuWPiG+0Xli6uclgXhJ UJvGyzIkyY1pNHHIeW9IitU5Us0zQmcMc9Okvtp6wQ9j6OLZH9GyfiZDKPVpp1TfwQPb A0WHGATVB4SwQPpSwrFdfgxbqqTsoWHpmfZh264DLvc58To9zpVNkfuwKHPjZubu7fCB emJFp71K/P2xQsxoE3DZ1yB4lqbOoCnQ7YwGk5jfKrQ+SVDnetRzCSM96dfc5HviYjIh ETjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KKy1MHzH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i4si4788380pfr.258.2022.01.23.07.48.31; Sun, 23 Jan 2022 07:48:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KKy1MHzH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236102AbiAWAPt (ORCPT + 99 others); Sat, 22 Jan 2022 19:15:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37062 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235580AbiAWAO1 (ORCPT ); Sat, 22 Jan 2022 19:14:27 -0500 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5BA99C0617A3; Sat, 22 Jan 2022 16:13:16 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id EE0B260F7E; Sun, 23 Jan 2022 00:13:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7EEA5C340E5; Sun, 23 Jan 2022 00:13:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1642896795; bh=nOZqidlBsMvnXmjfiL/xkOVQFef8EkqG6j8UkzbKfW4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KKy1MHzHm3b4wW/CnZJohhhcJ4CZV7H0oFwFyGJSF57LG/e3tAjizhcS+CgHZg/i5 xk2W3Vgl0jxaF/wt6Duc4NU5L7wpPTx+MF8pCTZ5SMIAAXHcEjRgCs+G6Z0ZBmgieM bX4kvDFdAX32+O1LC1TScO0TJHGUia4JLBjqwJz/QHeJSrdLPxocyDRFLAkIm1pe0l 2jpI4dEBxRrOCUaxDpX3tfh50vTji6LNw2QRcJewTBv/pYo8IQIAj9nhGGV06kp4Gm 8xGjWIXM03OZLflt80UP6F//fqjdZZ8hygO7IDwbM21gpD5ZMz+ay6QLGnMdZNrw4Y 4ZEUnrOjWa5Ag== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Michael Ellerman , Jakub Kicinski , "David S . Miller" , Sasha Levin , tanghui20@huawei.com, netdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.10 5/9] net: apple: mace: Fix build since dev_addr constification Date: Sat, 22 Jan 2022 19:12:54 -0500 Message-Id: <20220123001258.2460594-5-sashal@kernel.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220123001258.2460594-1-sashal@kernel.org> References: <20220123001258.2460594-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Ellerman [ Upstream commit 6c8dc12cd925e5fa8c152633338b2b35c4c89258 ] Since commit adeef3e32146 ("net: constify netdev->dev_addr") the mace driver no longer builds with various errors (pmac32_defconfig): linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_probe’: linux/drivers/net/ethernet/apple/mace.c:170:20: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)j)’ 170 | dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j]; | ^ linux/drivers/net/ethernet/apple/mace.c: In function ‘mace_reset’: linux/drivers/net/ethernet/apple/mace.c:349:32: warning: passing argument 2 of ‘__mace_set_address’ discards ‘const’ qualifier from pointer target type 349 | __mace_set_address(dev, dev->dev_addr); | ~~~^~~~~~~~~~ linux/drivers/net/ethernet/apple/mace.c:93:62: note: expected ‘void *’ but argument is of type ‘const unsigned char *’ 93 | static void __mace_set_address(struct net_device *dev, void *addr); | ~~~~~~^~~~ linux/drivers/net/ethernet/apple/mace.c: In function ‘__mace_set_address’: linux/drivers/net/ethernet/apple/mace.c:388:36: error: assignment of read-only location ‘*(dev->dev_addr + (sizetype)i)’ 388 | out_8(&mb->padr, dev->dev_addr[i] = p[i]); | ^ Fix it by making the modifications to a local macaddr variable and then passing that to eth_hw_addr_set(), as well as adding some missing const qualifiers. Signed-off-by: Michael Ellerman Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/apple/mace.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/apple/mace.c b/drivers/net/ethernet/apple/mace.c index 9e5006e592155..f96df8e46afdd 100644 --- a/drivers/net/ethernet/apple/mace.c +++ b/drivers/net/ethernet/apple/mace.c @@ -90,7 +90,7 @@ static void mace_set_timeout(struct net_device *dev); static void mace_tx_timeout(struct timer_list *t); static inline void dbdma_reset(volatile struct dbdma_regs __iomem *dma); static inline void mace_clean_rings(struct mace_data *mp); -static void __mace_set_address(struct net_device *dev, void *addr); +static void __mace_set_address(struct net_device *dev, const void *addr); /* * If we can't get a skbuff when we need it, we use this area for DMA. @@ -112,6 +112,7 @@ static int mace_probe(struct macio_dev *mdev, const struct of_device_id *match) struct net_device *dev; struct mace_data *mp; const unsigned char *addr; + u8 macaddr[ETH_ALEN]; int j, rev, rc = -EBUSY; if (macio_resource_count(mdev) != 3 || macio_irq_count(mdev) != 3) { @@ -167,8 +168,9 @@ static int mace_probe(struct macio_dev *mdev, const struct of_device_id *match) rev = addr[0] == 0 && addr[1] == 0xA0; for (j = 0; j < 6; ++j) { - dev->dev_addr[j] = rev ? bitrev8(addr[j]): addr[j]; + macaddr[j] = rev ? bitrev8(addr[j]): addr[j]; } + eth_hw_addr_set(dev, macaddr); mp->chipid = (in_8(&mp->mace->chipid_hi) << 8) | in_8(&mp->mace->chipid_lo); @@ -369,11 +371,12 @@ static void mace_reset(struct net_device *dev) out_8(&mb->plscc, PORTSEL_GPSI + ENPLSIO); } -static void __mace_set_address(struct net_device *dev, void *addr) +static void __mace_set_address(struct net_device *dev, const void *addr) { struct mace_data *mp = netdev_priv(dev); volatile struct mace __iomem *mb = mp->mace; - unsigned char *p = addr; + const unsigned char *p = addr; + u8 macaddr[ETH_ALEN]; int i; /* load up the hardware address */ @@ -385,7 +388,10 @@ static void __mace_set_address(struct net_device *dev, void *addr) ; } for (i = 0; i < 6; ++i) - out_8(&mb->padr, dev->dev_addr[i] = p[i]); + out_8(&mb->padr, macaddr[i] = p[i]); + + eth_hw_addr_set(dev, macaddr); + if (mp->chipid != BROKEN_ADDRCHG_REV) out_8(&mb->iac, 0); } -- 2.34.1