From patchwork Mon Jun 29 20:02:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andre Edich X-Patchwork-Id: 1319137 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=quarantine dis=none) header.from=microchip.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=microchip.com header.i=@microchip.com header.a=rsa-sha256 header.s=mchp header.b=uDyoxjJ/; dkim=pass (1024-bit key; unprotected) header.d=microchiptechnology.onmicrosoft.com header.i=@microchiptechnology.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-microchiptechnology-onmicrosoft-com header.b=D+Qy2UGN; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49wdhx6z3cz9sWK for ; Tue, 30 Jun 2020 06:03:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388358AbgF2UD3 (ORCPT ); Mon, 29 Jun 2020 16:03:29 -0400 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:37764 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388692AbgF2UCs (ORCPT ); Mon, 29 Jun 2020 16:02:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1593460968; x=1624996968; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=vhHxoitwLNvh4sPqW8n1vCfPr1Utq7aEAM5FszThTIQ=; b=uDyoxjJ/AWH+vZv16pqGfWcMbYF06GRkcTlQnJ1hdtuhUWv1OSiNqA7v pGMlqrzf/0to7bJ8CDeOsVHvF8vN58ph+qrXlZZ/mIbu0eaGZv7xgNDx1 VWEQ5+jk9XWX9/Gh9Nda8Spxj9odNct25lO8BOZZs5gjs1CM8HvLHvSOh PAnoK9M47NnVFkKHs/aeiRPHOpL1jL/hnCzHOpbRPsBwSsvijk8xUNO0U Uhwu7MkHwrxDumbZ/jsmGPa1h2IaqT41xYNHqho2aLe6pFA/zr4aoFuvG /hDbeWWysFhXanjpGbi/EC8hDN3Wx2B8LJVuNqQT5AvKiLqBiyGyd1Qr0 g==; IronPort-SDR: WqH3QwhOwn0C72AYik8uhgMphW2HHIgNngCTaFqz6NcDLLpUlqcNdONpNHE2Chu5k62x+pjw+D FxjQ3M53KDXU8MmGaIQiku9sIZ/ByL5x51k1mBI5WisGn/SyCfxq0Gbbp+JHLdT4je3TixrNS2 FmJtZU7wLcooiJTNZszBHs9CyhrSlDn7f8R7FImSLxzrManVhm72fhDw8zpFkA+J3wHIB8HSXH k914a+ssWCzlwFtS+BP4gzP4+LdS+vLD8vtJwY4D+Pl9VTExClpaE/ZTqcmjwBqPPB/EiBmolO ubI= X-IronPort-AV: E=Sophos;i="5.75,295,1589266800"; d="scan'208";a="81282383" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 29 Jun 2020 13:02:22 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex03.mchp-main.com (10.10.85.151) 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 13:02:21 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.151) 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 13:02:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RJzdEpdRunaN3L4CU7kI8ybEKQsowcSKE1qOLQpdouJRJoHAw+tjQIIr1RYgntpPuiPT8iKD4ndy8ljLv0xHToD6b0e3hNR16kK17SmZ9k4dDxZD0GoB/+BjhFdBcCcjAaPsQt3CelmhViW8uf6IQcIBrvtF41xb4yy/N5KxsNuhBswKxo6L1pvMYVHsDw46gSEqYUYVyVl1SHtAEQnE1TASrB+bf6Jx8f35aiYd2AU7V/V78Tw4sb+YHG7496C6biAfjk5PPkREjfjCf+6yyS+4zR4BALyETMQljcmFlQ8yugS77gPLBiafuuNBbZOyfqtIVyA+ukVj0k7acv1STw== 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=vhHxoitwLNvh4sPqW8n1vCfPr1Utq7aEAM5FszThTIQ=; b=ULjl6u76DZUb4Y2KLicle/WH5V0TxORxEmNyq6q4t+eQqgwjc+ZHEHbNEkXEKHni0zhZauI6fuIA4hwEx5x0CUcT6Fw9EGP5WaX+tqUtO5toQS2g1CoEwbyrfZz2eig9MxzRIEiH5TosYrWBqfg+ETm21vzdEFt2lqV4v3J9lc5OgNEQ/tw5KDRBys0OdLMtb3fIBP3a1xZ4yRs7/GfwuOkdnGILfXnK6LPKp2xEWSDpkeuqDecje/5N0ual9Azq65Lqe3ev7CXhYumkIBpDuZJG+wRAxBYOYpO/iYZLHTXtFaeIpi2QPf4ID4AbTTP3ZjQNvYOqGnFx8MgFDJmkSQ== 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=vhHxoitwLNvh4sPqW8n1vCfPr1Utq7aEAM5FszThTIQ=; b=D+Qy2UGNcH9zXuPApqbBiy0pc1c3fkE82GKH0l2I1miB0m1vZptKJAspcVuL8bmrXBu0aIDVKZLFUct4BGGNVnfrhz3zFurrhkr0k+dcb7FoPK3rllgRwAY85+hFjy2mStzc7BaOP0EuBPNkMst2yX8yyXeh1pOklV7oy1lBdgc= Received: from BY5PR11MB3927.namprd11.prod.outlook.com (2603:10b6:a03:186::21) by BYAPR11MB3045.namprd11.prod.outlook.com (2603:10b6:a03:88::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.26; Mon, 29 Jun 2020 20:02:19 +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 20:02:19 +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: AQHWTlAxnz5NCPMffUSKWU9ZdB7y0g== Date: Mon, 29 Jun 2020 20:02:19 +0000 Message-ID: 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: fd67b616-aba5-4cc5-3cc7-08d81c67547f x-ms-traffictypediagnostic: BYAPR11MB3045: 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: eVhBxeMO0+ZLIeY7dJ1uae7CPOKwR0/U20VSMEH0owEAgbjFYJ6cJ4NHNxBfJMXkkPIoeESboxfiAz8+xNmmDzjLNnYBQ3I5pB9o43OLxC1itWlTWCgjwkmIFFTzkhPHuRabuaQFGks4T5JPDn7jYT+hwzm9FITbTjLZOVkWJ2hw7L1xfpTOq0qZysstZUz/IjRZaGAIed3yu9UC+rMSw/8W30VxOSN7P73ylER/TcF9J9RF5IPNC/oC9199pyzg7VljV8LznrIOzCRiabBmYwjCVbL/p3Ag+uXJZLmHnPlWJu59sUNWgGMPaGsxw9G6 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:(39860400002)(396003)(346002)(376002)(366004)(136003)(110136005)(478600001)(36756003)(8936002)(5660300002)(107886003)(2616005)(6512007)(316002)(66556008)(64756008)(66446008)(86362001)(71200400001)(66946007)(66476007)(91956017)(76116006)(4326008)(8676002)(6486002)(6506007)(26005)(186003)(83380400001)(2906002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: wR9aDIOtU+hrfFXWWki//WqZEHS/ThtX93Nd62fPvciWLd9Hkbi0QjfopwJQDsgGZYwttpP9NG+TYkJ/NrCnPX0081HQ+Pfm1z+LpM4dMh9RjjE8Jz9wCVdwEiJYe6OOKIVMWYs0asNwforBK9LUlEMEQc8WbS8JjM2beJQCrc/xmFzpCK0eN9SaTGY9nTNQ2gm+LWOafny49w/Cng0hBBOz901n7y1aGBzGvXzmiAW1UpBzsppduxBPpmYa++yF4oDFQmIB8Xt5xy6+D8ITirMK81TeZKRQIWZD40xCJYLZXpufnystA6rzFu9upB4GhsfLgeb5g1lRAhD/2n/Y/UhFsuHzrOu+iAe53KttOuI+UnXW14YMVRpyms27Jq10uiCr476pTUkBDtZyHKAR4o0qIUIwJlM0K1L/z9i7VuzFMvEr9/NEashPvA3UvkPKJWX3kS9H2CMvRLd5xaU3nxPsPbbTM3KeDLpTYN/LaIHqgnCgkt+psVIOf7YAENvX Content-ID: <39B223FD0797164A8D435D18B567CA80@namprd11.prod.outlook.com> 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: fd67b616-aba5-4cc5-3cc7-08d81c67547f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2020 20:02:19.5600 (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: XCCUUXwTiWOJj7yM80Q+D3lvUAbo7ySVT5DJsUG6uigYMq20pNvc3JKA7aPS4ZSHr4TFAi9VBmTukVf4yHGQaaKCKtm8x59NQU4yEo+wjzw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3045 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;