From patchwork Mon Jun 29 13:13:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Edich X-Patchwork-Id: 216919 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=-4.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, UNWANTED_LANGUAGE_BODY, URIBL_BLOCKED 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 526D0C433E0 for ; Mon, 29 Jun 2020 19:32:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2BBD62072D for ; Mon, 29 Jun 2020 19:32:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="LwqiYTJf"; dkim=pass (1024-bit key) header.d=microchiptechnology.onmicrosoft.com header.i=@microchiptechnology.onmicrosoft.com header.b="cM46dfaQ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733154AbgF2Tci (ORCPT ); Mon, 29 Jun 2020 15:32:38 -0400 Received: from esa4.microchip.iphmx.com ([68.232.154.123]:52992 "EHLO esa4.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733203AbgF2Tc2 (ORCPT ); Mon, 29 Jun 2020 15:32:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1593459147; x=1624995147; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=SzBLcgs+1p2Hz0iEpqyOPX09S3kEDr1v/1gMBfPkxiI=; b=LwqiYTJfGgalrz1ussISuCuvvSN+87quNuNAwi6qNrI9MAAfH9ooNZP8 pF+qcIxYU23BdnKIk/M7+lanaZpACwjDPUgDtUavXJR8uIA4Fh0Sez0Lm +Qz/JL66uIZOTIK0BsLnkW0u9ngRw3d+jtLolBH+7lsXsqd2x87Hfirao tGR3+xK4coj4abu+l2DNtPfW/GNKNrp4ulJ571Sclf5KZpumG1jJbnyFz tPq+LTcEm6UKv14pII3tPj5gDu8VzDsaSKpEr5ScTR+cod1fBqMw2EhnK H4NETiOw6Q1SnSklT5rucVqQRWnAx5SQ3tyTcOM/CRZlKb7nnAjFv6bkh g==; IronPort-SDR: Vrx+fx9+F4tlUS0lzTouFftccBFQocgXxE3oB9TF9rYSWrQ5telijtThDEnTCV5CFHhnshGvDq JUsarnlua0WxEYm0hUFEf7W0LkEL6hAyKfkbFc1WLFr+DDfiqHkbkcKOCBvE3D4rsd4vFM3XvW CFt1YU7mlE8TDe2KQl+CTtisugg7kHf9cdciel/sHtvT+yM2lPfrhj9+ff5UE9QdL/dFSTXYrG oDt2zcc6rTn1UQanw+G9avgY2RPyAPAIZXk26pas6w0CZ3yFvARuaVB8c4fCFjprEYcWDMsCxA R7g= X-IronPort-AV: E=Sophos;i="5.75,294,1589266800"; d="scan'208";a="78142155" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa4.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 29 Jun 2020 06:13:46 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Mon, 29 Jun 2020 06:13:46 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Mon, 29 Jun 2020 06:13:29 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DGYBg4kyAD5a2unUgk5AqGEzHp7gNNnoQwL8GshLQhkU10vTfivFKXWQ5g3G1NybUhmBA8ZTaU/UhrO0qXNC51f21DMfCkizqFME9W3quaGN16vjlKxC1DXtnTepPekSU4Sib2G8s6s1NlEKolP5WItGJAy5n76smoiPv9lGf0fIDGSSj0gX9QlFVad4/kV+NynPlw7KBs0sQWl/kLTzE0fb5nmiBOwNZNXnZ2vMim1r+ClXP8t4QzfjnJ43TrkCT8rz+9MDx4JjbdwJ8hbLAECgRC5xLWaGQVlWQo8Nx9eidldweZO6ksuL1eS3FKDQ8J9qcJ0N5E6QmWU1uOaMhQ== 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=SzBLcgs+1p2Hz0iEpqyOPX09S3kEDr1v/1gMBfPkxiI=; b=R4uDZ1g6j4l+ahD4XU0290adi5xASML+3vx85TgR3WM/fc3zJeE/C7J/uhNDW7zVSiYuvX+WUJ3LAqljHYcCJ98YXYjMGdbNvmzo2jqXubgf7SFMpnFdSquic+2CR/sIjbrVuUyI6B3jOPPfbSrEjwmoYyZ+SN/Rj0YnxSELQ/f2g5mdDfwz9R3zCq/xyi/FFCAc5Dl/ThI/aTHNX4bYB2tSsB59wbBVAUz4yI5mOaBadXmTyp9OLqojGG0VFA44R+ikjTUjs1G0M/zDkpsK9cY+gTeYo94aiRJYOvzh10kpuhxP7O6uUk51dy57K437sODGGpdvcm4Ln41dSsjvYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SzBLcgs+1p2Hz0iEpqyOPX09S3kEDr1v/1gMBfPkxiI=; b=cM46dfaQbKAEnUqPMLg1Is+1srdYmZ3WNJJba3jb4dRoJQmvsgsWiD6Qx1FpGujWoRtf10XrIp7iLbHrgM8BDvRn0LvrmpievNkKmWNp2eLJrbcnr4s4DiRiRd7CrplPG0Z2U8MDLPdZQmTBQz8ofMwjVqFIw1+xw/uMni93g0Q= Received: from BY5PR11MB3927.namprd11.prod.outlook.com (2603:10b6:a03:186::21) by BY5PR11MB4434.namprd11.prod.outlook.com (2603:10b6:a03:1c2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.20; Mon, 29 Jun 2020 13:13:44 +0000 Received: from BY5PR11MB3927.namprd11.prod.outlook.com ([fe80::5993:d0ac:9849:d311]) by BY5PR11MB3927.namprd11.prod.outlook.com ([fe80::5993:d0ac:9849:d311%7]) with mapi id 15.20.3131.027; Mon, 29 Jun 2020 13:13:44 +0000 From: To: , , CC: Subject: [PATCH net-next 8/8] smsc95xx: use usbnet->driver_priv Thread-Topic: [PATCH net-next 8/8] smsc95xx: use usbnet->driver_priv Thread-Index: AQHWThcd7UxOiFPhLk64/q2MqybuwQ== Date: Mon, 29 Jun 2020 13:13:44 +0000 Message-ID: <337cd4d2f179130826339cc40491345e1ee84957.camel@microchip.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.3 authentication-results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=microchip.com; x-originating-ip: [93.202.178.57] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c65483a5-0ee9-4756-4877-08d81c2e4023 x-ms-traffictypediagnostic: BY5PR11MB4434: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-bypassexternaltag: True x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 044968D9E1 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FbZ/1c6H/pcQzKAzCLJ7ryXiTMf9F5IMBuhnb74aR165DxSN/mVjhLCq0I2JtX7T7CE04IOOaAF3IbNCp+EvbXbyv8O9E1n8nrbDvbv/yEhohjagXI4MOjexeuNtwDgwUN6LSnNPTT8EuAzgUd2sJCeJdTEk+ueO/fPF9jW9VbEN/xcz1cpUr+gGGli4CL93L7JfgUGy3GKCz+nPkIz1NHmLquQNy3tAg5bvMNwIqwjacqpbUOADmaQ2ZxSN34EyVyxY7CVGZz7WdvTqxwTHjEVtx11EgDmEx7kYspDwUcTB7UNB5PqWOL7kbh4MLjNk x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB3927.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(396003)(366004)(136003)(39860400002)(346002)(376002)(83380400001)(6512007)(8676002)(8936002)(5660300002)(36756003)(110136005)(4326008)(316002)(2906002)(6486002)(107886003)(66946007)(6506007)(2616005)(76116006)(91956017)(66476007)(66556008)(64756008)(66446008)(186003)(26005)(478600001)(86362001)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: Vy5jpe+26wOo4sAOJrZcqdlPKtxkb9kfZC0pLG3VCp6K7Vr+rhexj+lpQfegaPmvax5ReYSkmG8pijLr9+I9yEy6hQmSTi2uTJSkMhVWYluVmaeNACk0DH+ke5qoOINmvwstciYuTNJlr3n9P2t2H2AGDhBPltyL3l0o5z6n7yaFtPeYWpg3WEjeDlexCJRd9c5b+zZU2c8I5qoPoWRIlDbl+GdWTHJi75w/O9wqW5QpybZ4sTYrRgRgZgmYcKA1sm3pE+7tp9qOZUz97H92mrhWEuXd3sGQ0R7vbiQb+XpytssMWDv/pFvrf4hhglidB29UxJqcsVo1U+cLh/i3o2L5CKaE7UW3Nn3LXkeZDWEqLtKxPqCb5fGvBjuUDgA7xqtncE6JfnUFbbv+B1QEVtuQwEL0NGld6+JL2pVsKvPDYQJXdt6MH/wNWgML22nEYGDvS113jMgQp89ksf3wywUtaObmqbNMcd5yLous0pH4Cj/sZgxsLIyPUSB27VZO Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB3927.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c65483a5-0ee9-4756-4877-08d81c2e4023 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2020 13:13:44.1363 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: KEBZPq4/VQi5HSKOLia1pxJZ7I+Yo5uNArreiFogKI0aXczt9D1A33b7oJboo28P1iKbj6lcmSZ52UalEQdtHaNRp1UY30UENZ+k49O/WsQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4434 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Using `void *driver_priv` instead of `unsigned long data[]` is more straightforward way to recover the `struct smsc95xx_priv *` from the `struct net_device *`. Signed-off-by: Andre Edich --- drivers/net/usb/smsc95xx.c | 61 +++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 33 deletions(-) int ret; @@ -558,7 +558,7 @@ static int smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex, static int smsc95xx_link_reset(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; struct ethtool_link_ksettings cmd; unsigned long flags; u16 lcladv, rmtadv; @@ -716,7 +716,7 @@ static void smsc95xx_ethtool_get_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo) { struct usbnet *dev = netdev_priv(net); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; wolinfo->supported = SUPPORTED_WAKE; wolinfo->wolopts = pdata->wolopts; @@ -726,7 +726,7 @@ static int smsc95xx_ethtool_set_wol(struct net_device *net, struct ethtool_wolinfo *wolinfo) { struct usbnet *dev = netdev_priv(net); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; int ret; if (wolinfo->wolopts & ~SUPPORTED_WAKE) @@ -744,7 +744,7 @@ static int smsc95xx_ethtool_set_wol(struct net_device *net, static int get_mdix_status(struct net_device *net) { struct usbnet *dev = netdev_priv(net); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 val; int buf; @@ -766,7 +766,7 @@ static int get_mdix_status(struct net_device *net) static void set_mdix_status(struct net_device *net, __u8 mdix_ctrl) { struct usbnet *dev = netdev_priv(net); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; int buf; if (pdata->mdix_ctrl == mdix_ctrl) @@ -810,7 +810,7 @@ static int smsc95xx_get_link_ksettings(struct net_device *net, struct ethtool_link_ksettings *cmd) { struct usbnet *dev = netdev_priv(net); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; int retval; retval = phy_ethtool_get_link_ksettings(net, cmd); @@ -903,7 +903,7 @@ static int smsc95xx_set_mac_address(struct usbnet *dev) /* starts the TX path */ static int smsc95xx_start_tx_path(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; unsigned long flags; int ret; @@ -923,7 +923,7 @@ static int smsc95xx_start_tx_path(struct usbnet *dev) /* Starts the Receive path */ static int smsc95xx_start_rx_path(struct usbnet *dev, int in_pm) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; unsigned long flags; spin_lock_irqsave(&pdata->mac_cr_lock, flags); @@ -935,7 +935,7 @@ static int smsc95xx_start_rx_path(struct usbnet *dev, int in_pm) static int smsc95xx_reset(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 read_buf, write_buf, burst_cap; int ret = 0, timeout; @@ -1148,7 +1148,7 @@ static void smsc95xx_handle_link_change(struct net_device *net) static int smsc95xx_start_phy(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; struct net_device *net = dev->net; int ret; @@ -1194,7 +1194,7 @@ static const struct net_device_ops smsc95xx_netdev_ops = { static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf) { - struct smsc95xx_priv *pdata = NULL; + struct smsc95xx_priv *pdata; u32 val; int ret; @@ -1206,13 +1206,12 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf) return ret; } - dev->data[0] = (unsigned long)kzalloc(sizeof(struct smsc95xx_priv), - GFP_KERNEL); - - pdata = (struct smsc95xx_priv *)(dev->data[0]); + pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); if (!pdata) return -ENOMEM; + dev->driver_priv = pdata; + spin_lock_init(&pdata->mac_cr_lock); /* LAN95xx devices do not alter the computed checksum of 0 to 0xffff. @@ -1311,16 +1310,12 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf) static void smsc95xx_unbind(struct usbnet *dev, struct usb_interface *intf) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; - if (pdata) { - mdiobus_unregister(pdata->mdiobus); - mdiobus_free(pdata->mdiobus); - netif_dbg(dev, ifdown, dev->net, "free pdata\n"); - kfree(pdata); - pdata = NULL; - dev->data[0] = 0; - } + mdiobus_unregister(pdata->mdiobus); + mdiobus_free(pdata->mdiobus); + netif_dbg(dev, ifdown, dev->net, "free pdata\n"); + kfree(pdata); } static u32 smsc_crc(const u8 *buffer, size_t len, int filter) @@ -1370,7 +1365,7 @@ static int smsc95xx_link_ok_nopm(struct usbnet *dev) static int smsc95xx_enter_suspend0(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 val; int ret; @@ -1409,7 +1404,7 @@ static int smsc95xx_enter_suspend0(struct usbnet *dev) static int smsc95xx_enter_suspend1(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 val; int ret; @@ -1456,7 +1451,7 @@ static int smsc95xx_enter_suspend1(struct usbnet *dev) static int smsc95xx_enter_suspend2(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 val; int ret; @@ -1478,7 +1473,7 @@ static int smsc95xx_enter_suspend2(struct usbnet *dev) static int smsc95xx_enter_suspend3(struct usbnet *dev) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 val; int ret; @@ -1517,7 +1512,7 @@ static int smsc95xx_enter_suspend3(struct usbnet *dev) static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; int ret; if (!netif_running(dev->net)) { @@ -1565,7 +1560,7 @@ static int smsc95xx_autosuspend(struct usbnet *dev, u32 link_up) static int smsc95xx_suspend(struct usb_interface *intf, pm_message_t message) { struct usbnet *dev = usb_get_intfdata(intf); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; u32 val, link_up; int ret; @@ -1830,7 +1825,7 @@ static int smsc95xx_resume(struct usb_interface *intf) u32 val; BUG_ON(!dev); - pdata = (struct smsc95xx_priv *)(dev->data[0]); + pdata = dev->driver_priv; suspend_flags = pdata->suspend_flags; netdev_dbg(dev->net, "resume suspend_flags=0x%02x\n", suspend_flags); @@ -2050,7 +2045,7 @@ static struct sk_buff *smsc95xx_tx_fixup(struct usbnet *dev, static int smsc95xx_manage_power(struct usbnet *dev, int on) { - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; dev->intf->needs_remote_wakeup = on; diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index 06fcc2518305..76d03652477d 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -463,7 +463,7 @@ static unsigned int smsc95xx_hash(char addr[ETH_ALEN]) static void smsc95xx_set_multicast(struct net_device *netdev) { struct usbnet *dev = netdev_priv(netdev); - struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev- >data[0]); + struct smsc95xx_priv *pdata = dev->driver_priv; unsigned long flags;