From patchwork Wed Jun 27 00:06:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935186 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=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=mips.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=wavesemi.onmicrosoft.com header.i=@wavesemi.onmicrosoft.com header.b="k4J8564G"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjsD0CsGz9s29 for ; Wed, 27 Jun 2018 10:07:28 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754881AbeF0AHZ (ORCPT ); Tue, 26 Jun 2018 20:07:25 -0400 Received: from mail-eopbgr700099.outbound.protection.outlook.com ([40.107.70.99]:11034 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754733AbeF0AGh (ORCPT ); Tue, 26 Jun 2018 20:06:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wavesemi.onmicrosoft.com; s=selector1-wavecomp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/VYrvtm2Jk6y3KL/ZuMr7j8OPOvXuAG/zBdF+Ak3f5s=; b=k4J8564GxI5+GfwBf9tJrxjp5QWZyKt5vc4vz48rV0hXGqqdm4ZXG1mq3vqkSTIViDARVj6olL5vuReiLOXE6gg/DsfYICjtweNjIgvu6/+2Vef/QtChQ04DKz0IRPhhGbFK+JPQigqjymS2rwJ5Y55w7QqTuAxhoxSIXcqvIXI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=pburton@wavecomp.com; Received: from pburton-laptop.mipstec.com (4.16.204.77) by DM6PR08MB4940.namprd08.prod.outlook.com (2603:10b6:5:4b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.21; Wed, 27 Jun 2018 00:06:33 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 04/11] net: pch_gbe: Remove irq_sem Date: Tue, 26 Jun 2018 17:06:05 -0700 Message-Id: <20180627000612.27263-5-paul.burton@mips.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180627000612.27263-1-paul.burton@mips.com> References: <20180627000612.27263-1-paul.burton@mips.com> MIME-Version: 1.0 X-Originating-IP: [4.16.204.77] X-ClientProxiedBy: MWHPR1701CA0014.namprd17.prod.outlook.com (2603:10b6:301:14::24) To DM6PR08MB4940.namprd08.prod.outlook.com (2603:10b6:5:4b::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c9885e2a-c513-4f15-f524-08d5dbc1d795 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(8989117)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990107)(7048125)(7024125)(7027125)(7028125)(7023125)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:DM6PR08MB4940; X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 3:5TaEUV0+MFsKY3f6VYelI8llaTvn6BA9FPml/AuqUs5rlrAi91SaErOaJkXqFrnhEBgupVqL9EwhC1IxzO0v2aljj6H6ZLTv4RHA7P3J0cgJVLjcPy8cUJWDt4jlg6z/DK5cufOB3OcCNToOn7IYqbC1Z9r0DjnrZUBapplfbTYHq25ITqirNk92F4trU46mFHV1T3UZi/KgcoNR20U3tGYzfcX0Yrj8uS1gQP4PegxsMBkIb6b7eE5Bj5WqjwJC; 25:kXQ67M6k33OdhPiMc3sVEpkAad4E2KY4ZdT3y3DMa3zFZi6xvsv8J0+l1W3aqNwqKW4eqxq2iK1quB+tzJIvTT2PWdPRd3djqnDdPpuxgtddX/J3Z2MMAqFn2ZRbNbdtnjeIxCpBKfeDSnlTLCLw1cT+R3wSlTVCpawZxb+YnMhDYLHIrX4P8OSMDJwwoDy90OXksbR3fM5e3PAhZGHEF8tqBZ8Ag7BSoVIawq2oyVSsxp2W/A4q8nZRxnA+pyGiLM7tl2Ev5rvKlLZeo1grs1QR9kI5QYlpsw3S3IjfNrJYIaXO8cr6cl+QVEF7Fsl/6rTOuZscY/mt06esXlY+rA==; 31:hGo8eSP2Q8Eqe7e2Zo0O91t/yrKrj286GNFM6aXufDfZdtvV9I94X4YpslsmoY3B7EfLsljDBubxSZ7U/pi/fIkQF1Lnq//Z4Wih11L8NtsZVz/rE0iDI3aSCIBwoNlbU/wOAq3MJUBZWm+zz1/3jpa4fczSgl71pmxKUrrDzy9gOw63G8w+HvoPCcE6e3jbYQUryPJ6uhrJH/Mpmiv/NYiaFLw17zJSukcxoN0lLTc= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:585+WNA3jS9zi6M1WAEnlwXiN/OSKzbLHl3RcNayQBrfgTa4jBELijXUnY8Vft7KDCA0uNvP57cl6+Eyrf58+tVdz6zfuYhOza1ygdq6nrbY2TzHu3FLBOlxSQtLHIRXOypZenqtSjXK9PK5DECfpiAc4y3/Vda2PSDkbqLJZ+Dq1PMlnHvJ+1AHnXST1CkN+wdIDSysE6WtRzIPj1iR3Jq/Ixy0tzUKu0qC9UiPruY1NNfBWLRmtdXmiOVHxoGk; 4:OCM+CjYfg4STHaJwGwbn8ckAIbFBxfM9oP+AAwGht6s/S6F3qGdNvl149n9LVUapxamcHmboTnZsrHCD4g08pNZAvCs83tkxst4GhFmuXAPLVCmwmw5cpOG6IBgytpA+8JXGZNvjCZeEjsw9VyT0ha6v4zaxvLzyDVlobyGs7zvicOZRGLRaviA0scht7Ine3DcAXwZi0APCdKM5rLXjW6kAEdW+6DXGAA6lmGXYLY2jMHRjV7BzWjWPTDT6npClyBhHlgMmNtfBdo28eZA6XNDC1uQymPmJ6DtFMAXgxkbTvuwXfUmTKi9FrkFX1TH/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(2016111802025)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(6043046)(6072148)(201708071742011)(7699016); SRVR:DM6PR08MB4940; BCL:0; PCL:0; RULEID:; SRVR:DM6PR08MB4940; X-Forefront-PRVS: 0716E70AB6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(346002)(136003)(39840400004)(376002)(396003)(199004)(189003)(52116002)(36756003)(6666003)(5660300001)(16526019)(51416003)(66066001)(6916009)(2351001)(42882007)(14444005)(316002)(386003)(53416004)(54906003)(47776003)(26005)(76176011)(6506007)(186003)(16586007)(6486002)(2361001)(48376002)(486006)(6116002)(8936002)(956004)(476003)(50466002)(3846002)(446003)(1076002)(6512007)(69596002)(2906002)(25786009)(4326008)(81156014)(8676002)(50226002)(575784001)(107886003)(7736002)(2616005)(44832011)(106356001)(11346002)(97736004)(68736007)(105586002)(305945005)(478600001)(81166006)(53936002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR08MB4940; H:pburton-laptop.mipstec.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: wavecomp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 23:HBbzCMWoJWDPPMdl9nL+DhRq6ynjsaB20hb1jXj2qJ8PnZxTbcnhkPSjr0YjnV1Mek/jrEU1PCriOLpkkPNOf5f7oIahK2e6T1xIoNUKm6dVzl3XGa4PIoMBy+FUSDD8IuMGEMRNMJn26gEgRdilKZJV5vgtr6NrMwxHBOLT0X3bmBtY/deLdfrEu+ZEXx7Z6kVgb38EfO6OmgH6CpMsgPt9nV9F0uiDKGSOseKOHloGgsVXpMqlQsWLLmCh/uiACfhGDKvepvfOtRrqSloWx+1FBJdnfJ71Cxl0nLn4cEmLWFgTnRDeHef6O1ISMj4AQ/rTXgY/vhAB5Qe4Fa5KBxThm4y5YlPTQZPP/iPY7Q1gKH1f7Ud4IzunJBXLgPjr4w8fIA1PYHRR8ix6w6ji+kyNKzPBQgbTHrO8d8oH0EUlxgT9xFPNACNlnzaPw2Eta1qUIYlPevrzrD6Kee1ie171kySEjjh7OlgB0OJ7fm5ohOXqJuSxqJZlAsa/tCmDlrFi8NZObZxI4MYzjQ8o6KYYHnaRdq9qMxyFpbFJ7/OAOwNpkd6Zuep+gR7UHN5YV76uTjxX2IFJzSUROueIeDp3G+wB+j/UOBEaoY2kF5fjcwaz+CkqpdVBg1HM+ZTTCsNboAfFh6OeYDFz9Y7qhY3QJ087f4tdgaq9uaDYIfKEUaXFRU28BTvFq+nUuFKZGGbPf2duqgkgmTn+iJQqj99SkUDQJMy7xkafZU8ciYR1KzXGMUIN8Wbe38bhWvlXp4CB+XGRHXwWShX2BnYKKS+TOH9+Z2xVkIqWZVCXsS5bp1EX36WCFf+xqit7JHApYzAvBVV0aLxGlEPNDUzn82kVSHEvgdMCsPD04tCgm5KixDx5Y3fg8H3X87T7hBOQ35N4ZCnwIZ3j0epZLhbmMT5nn9AF0rApkJQdmENfa3wdjdmv8QoX5Gw0yN4GH0atKqdu0gy92fnXs0iowP7o5Ua16fffxxjLju/pFLO6Nf+OoQo+VMdw+1GnsxxVn7VikQPdo9027fSJ3mK9CMrVk7Ma0jC7BQlPaj+8o4Nh/LG2yDcisBShUFZAAQoQBqe4EZTGk/Khoh+9pV4O0euZokAOk0semxcN1u8WTt3ocpX1tNQapgbyC+8CVqAK9mscs3OnD3gS1jg1OygwSQZzf1HuXbZ4TToa30J4p+KyT1ndQpeTzO++NaAbxTRAO1S2usk6PmWCHJtHI5w9L3sWp6b9paHKH7I0pXnFnBRjFc+XEYLAL/eCZsDQ5a2Y++NxsHWw42h9YKU3zVLJcCdVqlt19flDUOOchXipjf5ms+wjY34fGfCOjrLrHvFwVmBjn8jIgw9aca3aOLXMJp0K1MSaw9Gk22dGwmVoEr/OMas= X-Microsoft-Antispam-Message-Info: cvH7MAoMDkptnq896XZIMRZ64JG2QR+x6pbDUlwlxpbiZ27GseITU5xvg5uKTiqOq8Zt3E8y1AhTLoMk3GAMKCiwTft0vyhyEcd5rryJhpqSHmpXrlzCcm8ucP7WTWNflvCrXybFjCJb06tYgvEvsNvHLGz6/G1rU98QySqr6xiw4oPzzqI1q3YtYN3d2VIMDyShNpqwgABTxKeREDnJY51lHFs9ZxSB6k955whTA7vqcnv/zj+8utcMnxq+vE38zm6hYt3mvGHBQpH6YWQVHVa72HxcIXYEby5zDEEdwvRZh5h75PdJEDDO3KIRN/p1CaklsCJNqeE1rdbRgaeHFQcaL1ySIytu3tcXk2U5+es= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:MuZ8Tn7zWGVxHwlZRZ/XHwhz2O9qwptiY4VRmlLaYoAzAe01m79kfYieRL7aWyHIoCHgUS6g81yvgmiy6EMROyq8VNWWqMjclRjkG2QyHQ/ZxvjzbVpDxw38toZQBgyvUsTnYZjdVpRrGGj3Fey0EsrCmNyU4wROePUiwjBCCoMgJPFQKt4YKDk20N+NqT51Pxl6GGfksYNK1m2+dO+LmqbF/KX2TRFCk0HDJ2GKSp3YwAM+jXlQGJsQK7q0iewAGKkXYDJ1Q9+mNPvNVsI0r4qHqGnHE0hFKppAMN5KbAClBCFAMaUChEFOkrqSgCIK22LojbZJ9wPyQvF4QiKmFVTwThxPSlW1KgpCsIZ8myvrE7OR5j5OzfwzlNYnjp3BowJVzaTOSUvWL+eOLT/sw1e9+46lgmscmqUjeMDwBn33d8Lm06cN5itKUxLa8qiQ6YRM1KGQxEVyh4VcDzTyOg==; 5:3jtbTvojq4lh0fJX+ZTU6t2vexZL8hD5dxC5XxYRETX3kjP+myZomcDaN9HScN/4wFOTidDjVv76PNh2Gp//Ztmnlw98vF3yZ2Yx8X/VJVf/fc1xKgWWfbOikQJbfLJNwb38k3Nm6JxMCzlH4MUzn0ctQejGkYuBIAcJgc1z4OA=; 24:ozdbmrewcER6+UffPjwIIOO6xiWf+gtXlP9lytawBmzfqz5AtTX2Ib+mzPSWuBVdvTbX35TMCMWWFSVR8+yVN0baRKAE2VkK4BVgOo5+8KQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:fXSLEXuGEfDPuAlkXxUxUDiTW8b2O4d37dJWrEPCX0r2ctU5MJHT8zt6fWQvomAkWNHrZ8JH26yHzi+XI/KvKpF7Hk01CUDcN2l8ILyBv5aLwRxCiGMl6zUzmTiBhBaU/kLEAmQw6Vz+2c/SH6IzdzDYfl5O/7VwQPDuq8BA/xGhQMGXZT9Z8DmDRqnoup1xDM7lr+y+uZlrum4PQ8IaznY10XPPS6xI1DtHbfWN+vPPISYnxBaIrCTTpRP+nOL7 X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:33.1320 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c9885e2a-c513-4f15-f524-08d5dbc1d795 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 463607d3-1db3-40a0-8a29-970c56230104 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB4940 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The pch_gbe driver uses an irq_sem variable to implement a sempahore that seems to inconsistently count the number of times we enable or disable interrupts, and only write to the interrupt enable register when this count hits 0. This makes absolutely no sense to me, both from the perspective of how the implementation is modifying the variable & more fundamentally the fact that we know when we want or do not want interrupts enabled without any need for the semaphore. This patch removes irq_sem, so pch_gbe_irq_enable() & pch_gbe_irq_disable() will both always write to the INT_EN register. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: New patch drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h | 2 -- drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 7 +------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h index be218ac81f21..1bb0ea4f5503 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h @@ -555,7 +555,6 @@ struct pch_gbe_privdata { /** * struct pch_gbe_adapter - board specific private data structure * @stats_lock: Spinlock structure for status - * @irq_sem: Semaphore for interrupt * @netdev: Pointer of network device structure * @pdev: Pointer of pci device structure * @napi: NAPI structure @@ -574,7 +573,6 @@ struct pch_gbe_privdata { struct pch_gbe_adapter { spinlock_t stats_lock; - atomic_t irq_sem; struct net_device *netdev; struct pci_dev *pdev; int irq; diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c index 5157cea16773..ee38bba8b9ce 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c @@ -761,7 +761,6 @@ static void pch_gbe_irq_disable(struct pch_gbe_adapter *adapter) { struct pch_gbe_hw *hw = &adapter->hw; - atomic_inc(&adapter->irq_sem); iowrite32(0, &hw->reg->INT_EN); ioread32(&hw->reg->INT_ST); synchronize_irq(adapter->irq); @@ -778,8 +777,7 @@ static void pch_gbe_irq_enable(struct pch_gbe_adapter *adapter) { struct pch_gbe_hw *hw = &adapter->hw; - if (likely(atomic_dec_and_test(&adapter->irq_sem))) - iowrite32(PCH_GBE_INT_ENABLE_MASK, &hw->reg->INT_EN); + iowrite32(PCH_GBE_INT_ENABLE_MASK, &hw->reg->INT_EN); ioread32(&hw->reg->INT_ST); netdev_dbg(adapter->netdev, "INT_EN reg : 0x%08x\n", ioread32(&hw->reg->INT_EN)); @@ -1345,7 +1343,6 @@ static irqreturn_t pch_gbe_intr(int irq, void *data) (adapter->rx_stop_flag)) { if (likely(napi_schedule_prep(&adapter->napi))) { /* Enable only Rx Descriptor empty */ - atomic_inc(&adapter->irq_sem); int_en = ioread32(&hw->reg->INT_EN); int_en &= ~(PCH_GBE_INT_RX_DMA_CMPLT | PCH_GBE_INT_TX_CMPLT); @@ -1954,7 +1951,6 @@ void pch_gbe_down(struct pch_gbe_adapter *adapter) /* signal that we're down so the interrupt handler does not * reschedule our watchdog timer */ napi_disable(&adapter->napi); - atomic_set(&adapter->irq_sem, 0); pch_gbe_irq_disable(adapter); pch_gbe_free_irq(adapter); @@ -2000,7 +1996,6 @@ static int pch_gbe_sw_init(struct pch_gbe_adapter *adapter) } spin_lock_init(&adapter->hw.miim_lock); spin_lock_init(&adapter->stats_lock); - atomic_set(&adapter->irq_sem, 0); pch_gbe_irq_disable(adapter); pch_gbe_init_stats(adapter);