Received: by 10.223.176.5 with SMTP id f5csp260436wra; Fri, 26 Jan 2018 22:48:39 -0800 (PST) X-Google-Smtp-Source: AH8x2247AvGPWvbuNlcaIfPdR9VWeaR5Bf0TM6YUNjD0pGrJPgiWgJTZ1yfOVzdvU4poEAgMxETL X-Received: by 10.99.56.85 with SMTP id h21mr16974697pgn.402.1517035719823; Fri, 26 Jan 2018 22:48:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517035719; cv=none; d=google.com; s=arc-20160816; b=UD3GhqVVeALiHFvvWfHDAYz8qWcQozVtn7fsJ+x1sXrAw1Aq0xtwc4pK3xb+xMlyb5 nIDeOnjxve8pD1hVsPxyLxUXO5eiyi8x33MlexGJ45mJ1uDE8NZoDvvEs2Je4rxAOORF BId9kFPqfdcgNxDGzm3t+10XMr0ga91h8HGqILIdBpW3i+Zw8ozMjKVHzIp2LSGCVpXo XPyw2jMoF2wKMCPCp+co+czdM583F/x74SJriW0Ngf36+YEhQVxOLDs4mHZqja/NyAme lmB/6IwXtya+TB3t5xeW/nbbhQ7Ja4UPoHAWd8+yLhxajtUDXteEbIU9gb8wChDfl/6E rlvg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:message-id:date:subject:cc:to :from:arc-authentication-results; bh=6DzA4W9hzgt1QOj5DkSA8gwNoeEQqNFF3Q9x/+RdOCU=; b=g8qmKda2BMJTAAuKrl0FEK4J/qBtW0+xwE73S1mnPAdgPMeYr+qYADVmUZ5xTKxOXV UcnA/iEHfRQnolB+6Izi/+V9veTNeIyMqbKkxJskMSyppTE31cOu1m8or278TTq9sbPB T5sl7qOtL2U5PurKFQa/HHFbAAqeG1HHPuexnfln86ayaXNKI7pNpn+eD6zEj/2WuxBM McbtysX2wUUq7OjPPRLqcaHB0Mp7agGVS66eZFmNPJbp67PmQqYjUAdmBcY4LniGN9Fq fLN/8hXg3sQV5K7JfUCiv2fPNECeZg52I/I4I4NfAFu6JxdZf2j6z6/Ph32ueokQz0su Kt3A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s13-v6si4890343plq.779.2018.01.26.22.48.13; Fri, 26 Jan 2018 22:48:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751595AbeA0Grh (ORCPT + 99 others); Sat, 27 Jan 2018 01:47:37 -0500 Received: from mail-by2nam03on0058.outbound.protection.outlook.com ([104.47.42.58]:51397 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751344AbeA0Grf (ORCPT ); Sat, 27 Jan 2018 01:47:35 -0500 Received: from CY4PR02CA0021.namprd02.prod.outlook.com (2603:10b6:903:18::31) by CY4PR02MB2328.namprd02.prod.outlook.com (2603:10b6:903:b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Sat, 27 Jan 2018 06:47:33 +0000 Received: from CY1NAM02FT026.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::201) by CY4PR02CA0021.outlook.office365.com (2603:10b6:903:18::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.444.14 via Frontend Transport; Sat, 27 Jan 2018 06:47:33 +0000 Authentication-Results: spf=softfail (sender IP is 149.199.60.83) smtp.mailfrom=gmail.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=fail action=none header.from=gmail.com; Received-SPF: SoftFail (protection.outlook.com: domain of transitioning gmail.com discourages use of 149.199.60.83 as permitted sender) Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT026.mail.protection.outlook.com (10.152.75.157) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.444.13 via Frontend Transport; Sat, 27 Jan 2018 06:47:33 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1efKGy-00079r-Co; Fri, 26 Jan 2018 22:47:32 -0800 Received: from [127.0.0.1] (helo=xsj-smtp-dlp1.xlnx.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1efKGy-0006ky-90; Fri, 26 Jan 2018 22:47:32 -0800 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id w0R6lUj7008963; Fri, 26 Jan 2018 22:47:31 -0800 Received: from [172.23.37.92] (helo=xhdharinik40.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1efKGw-0006kp-Bz; Fri, 26 Jan 2018 22:47:30 -0800 From: To: , , CC: , , , , Harini Katakam , Michal Simek Subject: [PATCH v3] net: macb: Handle HRESP error Date: Sat, 27 Jan 2018 12:09:01 +0530 Message-ID: <1517035141-14565-1-git-send-email-harinikatakamlinux@gmail.com> X-Mailer: git-send-email 2.7.4 X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-Result: No-4.112-7.0-31-1 X-imss-scan-details: No-4.112-7.0-31-1;No-4.112-5.0-31-1 X-TM-AS-User-Approved-Sender: No;No X-TM-AS-Result-Xfilter: Match text exemption rules:No X-EOPAttributedMessage: 0 X-Matching-Connectors: 131615092535104985;(f9e945fa-a09a-4caa-7158-08d2eb1d8c44);() X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(979002)(39380400002)(346002)(376002)(396003)(39860400002)(2980300002)(189003)(199004)(450100002)(316002)(2906002)(54906003)(106466001)(105596002)(498600001)(50466002)(305945005)(61266001)(76482006)(107886003)(47776003)(356003)(4326008)(5890100001)(86362001)(16586007)(110136005)(55446002)(63266004)(36756003)(59450400001)(81166006)(86152003)(51416003)(73392002)(8676002)(87572001)(6666003)(5660300001)(50226002)(77096007)(26005)(8936002)(81156014)(336011)(9786002)(2876002)(2201001)(82202002)(48376002)(81442002)(7049001)(83322999)(73972006)(107986001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR02MB2328;H:xsj-pvapsmtpgw01;FPR:;SPF:SoftFail;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT026;1:Jlghqfo8VC4DYxD85rVS0IJV2HYPO9wQhs+QPi0ZSsxFVoIFiRPY2+OdTyVdjwzOiEKapupbRNip04kUY04vK+wER/L8Ln4lMg3zxBc+za0YZNooGghE1qjr8xSq/9Qa MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e8b2f43e-f0ae-4297-0c5f-08d56551d810 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(5600026)(4604075)(2017052603307);SRVR:CY4PR02MB2328; X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB2328;3:rnpmv6T44/oMX5VAaDAcpfnf1Kv+IJ5+x3LZTLRt3y1epX0tpiC4VT/F5yT7pPb2WwgXPcVd+NqDERGrZY+kCK7CvSMIcy48wkrqQ7dUgbUsl3uFJwSqvRx7HYPbNuFKvpTNS+RGOXPE55i0M6l+OMDNkiiEoabkqFbvbiZetPDv0vyZ9rrzfyd3M2SaAfG5Ua4ztKnGnxKTEWZo0diXR2l9Bo3qxU0R2qf6UVkEhek0PbD3JRILWH8eZBN18i/KAYvwZ8JkSTA6ubihLqzFxf2j/PIqhjWAvv1fcIjo+DM6atyBH+MdGwkKoVaxfNlgc/sL9mna1GHUJcWw6mrBcfCh0YEW4jycHzS33D7DQug=;25:mAYOeCUkPXlY4R/dab5ZkdjcFgjwslzg6oQ2vN/TTvt5kKy93oMFU69/b07KEMOuAwNMaPgC3+r2oSlAx3QwNEYF31QGyxGUgvzwWLhj07q/Q12PmVadDQ9YRmxD78Dj6kyN/tmDyuUkNq1iUfvuYDSZ1gNWqtE7TLCEWZTLk4OXITZdArV7RPUwaXCKYlc8wEGOpEszki8ctgT41702YS+00H+JWXRB0G5qKFQFnTFj7iFMA8YD6cQBxGiRBSML+lqdlYlc0mC4BMi3vd9QQogQO3Kget2wf1EhwHn7rq+rmnAbriAato5dA0rHFNbnJsxKi2kXq3B2mNcs0tm/kA== X-MS-TrafficTypeDiagnostic: CY4PR02MB2328: X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB2328;31:IzEM3MVsIepQDZZE6v+tHWkGvgAUvn6MLDCXzdEcmSWW4RkINuZG1RaazsSq4rVdYn54R6DKbqNDxV+afIHVggbNGRcEnw/m/uWHujLRdD046deMTWvSdk8lvef6DXAfIqO4hw0SHF68SEuqekJX2gV83CmrtlCaP8dTv0rLZ0KyBYGWLEEHZzDL3x8xwYIWuS7nF8eTssCfn4nat4qoCPATvzw5GH8wZ/QT3VeB6/Q=;4:pZ0B/8/nb3s/hM9WqPXg3snHzNsv4C3ShdcQMMmxUmKyVQKBCt0D6mklBEqfipTx/N5T1a9FYVRRR5FGvJKrNERs9Ou5i8Qr1jo/QQAxABGWFREs1Lck8jcAfBFK3vm4RDppuq4JJEuuYs29HEAPWbyPNfUf9dOFRD2M58NGpN9yrKbjF5Aa4+HsYUIGWvvRxkobyAU+q5XMUD4x03CYgYqKCrA7Wm/Ql5Y3K06fW2JsdUUaMbjF6qmMx0N4XHANN+5ZhC3fRFAy67BkmXopaHlvtT43maFfYJZsr/c8JJPCJbvp5IQedy/SPmrMqknM X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(2401047)(5005006)(8121501046)(3231083)(2400081)(944501161)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123556025)(20161123559100)(20161123565025)(20161123563025)(20161123561025)(201703131430075)(201703131448075)(201703131433075)(201703151042153)(201708071742011);SRVR:CY4PR02MB2328;BCL:0;PCL:0;RULEID:(400006);SRVR:CY4PR02MB2328; X-Forefront-PRVS: 056544FBEE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY4PR02MB2328;23:lK5vJ1Pg5W8ZuH8KFjgYwr2vK1VbA9GVc3GVqPwSg?= =?us-ascii?Q?bZP+aMQf0/UFs8miJiYLCENRs5NGnXUb4IoQaF8k0AgUvRFJ0l6NJXwSwyko?= =?us-ascii?Q?KfMTyJRfVQP69B4EItqtz9tC+PDZ4cA2Nr9sBPJVRpwP+U6Fy9SI23ki6nyG?= =?us-ascii?Q?m/Is8NH4E/Ztgyo17rE1vSNp19tlIDrqSuFcZxf0hNMPkhEIO5h4RO/pspK9?= =?us-ascii?Q?+ms9KfV5rRlNL7jb4XzUp63fWEYigPMCtBLvcCLp6bnG0c4DprzSfVaiztxy?= =?us-ascii?Q?l8CajMhht3ll8if2n3nuhtBH+sudqthv2EugAd9WLOO6C8VDGaJNAfQ1h+7P?= =?us-ascii?Q?1OR/j2CEHHR4w0/i+nX4YxWRVKvB2TnQp8JlWiWxYsPSnoQBTpEu32ol3WSR?= =?us-ascii?Q?DEz4j+kduP7ZE4afJfjoL9gChRVHvZB/vEfAA1WwY6hLFhZYaVD/e8QF5GuN?= =?us-ascii?Q?gqw18sew14FIkyJCHj1YslJxUQ4ctn5dCbzpXZVrpyvZGh00RHwz46/kxjom?= =?us-ascii?Q?TGnMNdU9ha7ek1cnMmFc0MPNoYRpt6yxs8vkw9/6ayjAWPKXcx5c8XJB1Zoh?= =?us-ascii?Q?HMZDWtuH4/+UNYMBhDpYgPPNZnVCRwtw0GseqzlnKC88QSQsade1mSIlTtTA?= =?us-ascii?Q?ZGWOtjZIx9fdI4/Gkrm+HvzGIpNCD0cnUU8obxRH97IJYbEFk57qxxBvKwVF?= =?us-ascii?Q?Rb4aJdIggzvX0cWGi9SJ3a0PxnQrzZdhNPapAomgOLxbA8Q9RinlR4XBkdk8?= =?us-ascii?Q?ISvuWBbt9XN8DfMsRoePGAp+eSJp4cdo7wlbFlwtErUOQrTZSXM4xAQ/GIfh?= =?us-ascii?Q?HP3USk7TkssdrEP0uPidYCRVMhucsC88BNeC5z+aqOW2Zw6tS73mTAwNcdkL?= =?us-ascii?Q?ElugreE/SDJ6bb/xrsvct5sVO688rVMXspMeQ+L4Y1JSd+exU2P6YLmFzyVP?= =?us-ascii?Q?mCiOT07zkRHQTJpMSTbJ9h/EvtjGBUO0C5rSn1353ISATtg97cMpL+RxOROu?= =?us-ascii?Q?hqO6o1RuWKM5uVp7LBOgA3cF1fwGg/X55lEpv4sVTeLHkJ+y2c/G3yMwkTaX?= =?us-ascii?Q?yhRXHU1Edf6d6agW17DSirvh3YMYH7xpqla8oe0fb+SJ75fna633q6t6xzIV?= =?us-ascii?Q?WLCRwQ++wK1byREahfsgekPn6xtyRb/VUqS9Xt94pIAX9YIoZfIJxFCNnEz1?= =?us-ascii?Q?IdcZqd7RxGDNxZOSKyUG/YAtrpAGRcBw0/WREMfzAxx/S+bRWJw2UAuBXHgM?= =?us-ascii?Q?AUH6aTqDmePYtwJ0CQSJhQVa7Q+TCKfkSzgaRxLP28tAHQ3HnjiM8luQnvzF?= =?us-ascii?Q?/Cb+0Pzg2qdfDv+aU/bqBPVH0Nd+qYZJ0YqAJd9Cp+gLFnT8W3t9tvdaxSju?= =?us-ascii?Q?4O3H9Aung0T2vKy0aVsHo9qpFw=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR02MB2328;6:tbLOzCAb3X9sPo8Z+ffAyf/RlhESR0EaXvQVVY91Q09ep1LR/UDiiqxvaZJRp4cdcbfsldOV8Gts9nrnafFpWRdZoNJuRMMEBxQQInpK0t5iTYRQZkl+RG3MpTbY6rGW+JqWibDjzB6p6tQb0cSZyMPKfvayKgPIK/SKXng6C9UPPlxb9QhpA1rKmmg41RKIzpYq8olv25UyOssrtwfo/iK+vIcQsEXBny5nTgrF5G4duuOfxmCBi7CdkrEly6g2WJ5F5G/Ph8BjFg3eDfxNOj8WfYpaf+eZ8gjR3JxKNM2gmDwLZgDz7FWG3dCZk734ggwCsuGc0EAZrBJJ1ZfaGusJWoTmGY4nQKonMd2ZYGQ=;5:9xv4HtBvldBWQCjF4D3l0eVG9MnUbX8b3Wxj0haUke5w97TICclNNqP6YyIW382w17311hsbGS2gCV4x0cFPiJIwj+dqj9Kp1d8OfWv92p7AcYM4zEDFDGY/Ff54B9Jc8+6tzQ5HN6yo/yxZqZMFj7fLzDNgYF6fK/goreoWDrE=;24:kFPbuj1E5cNvmXnsGWAz8iBZvn/8NOEbdHaGq9xn3ZgonSHu0sfp/bqTGDvIFlund/rYoyLQoik9F7QPL3Z3YqV6Fejm23Gqp/+35JfE35c=;7:rK+iiBkG8o/dk7P9vSVfx8rlPtTUl23uzXfQrQMKsdraaE2cLYauOdafbrqygut7xrh/332tXHvQS2W5657qE/0Pvklzznt3rvy9N14thElkCgp4/jjKBYn0+JRIQTGonEQarKLpGWZle+Y7fhXxpf3u0FBl5/TG0cTe6sjNE5HuMJD64oCb6DL+yyRGXzAsSKgVV7NF/cu0o9PGqYfUrCd0iMWwzElpY4+fJjRFVINPiA/f3YC9GZXnq0DhFHmz SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2018 06:47:33.2136 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e8b2f43e-f0ae-4297-0c5f-08d56551d810 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR02MB2328 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Harini Katakam Handle HRESP error by doing a SW reset of RX and TX and re-initializing the descriptors, RX and TX queue pointers. Signed-off-by: Harini Katakam Signed-off-by: Michal Simek --- v3 and v2 changes: Fixed patch formatting errors Rebased on latest net-next and reinitialized multiple rx queues in error handling. drivers/net/ethernet/cadence/macb.h | 3 ++ drivers/net/ethernet/cadence/macb_main.c | 59 +++++++++++++++++++++++++++++--- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h index c50c5ec..8665982 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -13,6 +13,7 @@ #include #include #include +#include #if defined(CONFIG_ARCH_DMA_ADDR_T_64BIT) || defined(CONFIG_MACB_USE_HWSTAMP) #define MACB_EXT_DESC @@ -1200,6 +1201,8 @@ struct macb { struct ethtool_rx_fs_list rx_fs_list; spinlock_t rx_fs_lock; unsigned int max_tuples; + + struct tasklet_struct hresp_err_tasklet; }; #ifdef CONFIG_MACB_USE_HWSTAMP diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c index 234667e..e84afcf 100644 --- a/drivers/net/ethernet/cadence/macb_main.c +++ b/drivers/net/ethernet/cadence/macb_main.c @@ -1258,6 +1258,57 @@ static int macb_poll(struct napi_struct *napi, int budget) return work_done; } +static void macb_hresp_error_task(unsigned long data) +{ + struct macb *bp = (struct macb *)data; + struct net_device *dev = bp->dev; + struct macb_queue *queue = bp->queues; + unsigned int q; + u32 ctrl; + + for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) { + queue_writel(queue, IDR, MACB_RX_INT_FLAGS | + MACB_TX_INT_FLAGS | + MACB_BIT(HRESP)); + } + ctrl = macb_readl(bp, NCR); + ctrl &= ~(MACB_BIT(RE) | MACB_BIT(TE)); + macb_writel(bp, NCR, ctrl); + + netif_tx_stop_all_queues(dev); + netif_carrier_off(dev); + + bp->macbgem_ops.mog_init_rings(bp); + + /* Initialize TX and RX buffers */ + for (q = 0, queue = bp->queues; q < bp->num_queues; ++q, ++queue) { + queue_writel(queue, RBQP, lower_32_bits(queue->rx_ring_dma)); +#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT + if (bp->hw_dma_cap & HW_DMA_CAP_64B) + queue_writel(queue, RBQPH, + upper_32_bits(queue->rx_ring_dma)); +#endif + queue_writel(queue, TBQP, lower_32_bits(queue->tx_ring_dma)); +#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT + if (bp->hw_dma_cap & HW_DMA_CAP_64B) + queue_writel(queue, TBQPH, + upper_32_bits(queue->tx_ring_dma)); +#endif + + /* Enable interrupts */ + queue_writel(queue, IER, + MACB_RX_INT_FLAGS | + MACB_TX_INT_FLAGS | + MACB_BIT(HRESP)); + } + + ctrl |= MACB_BIT(RE) | MACB_BIT(TE); + macb_writel(bp, NCR, ctrl); + + netif_carrier_on(dev); + netif_tx_start_all_queues(dev); +} + static irqreturn_t macb_interrupt(int irq, void *dev_id) { struct macb_queue *queue = dev_id; @@ -1347,10 +1398,7 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id) } if (status & MACB_BIT(HRESP)) { - /* TODO: Reset the hardware, and maybe move the - * netdev_err to a lower-priority context as well - * (work queue?) - */ + tasklet_schedule(&bp->hresp_err_tasklet); netdev_err(dev, "DMA bus error: HRESP not OK\n"); if (bp->caps & MACB_CAPS_ISR_CLEAR_ON_WRITE) @@ -3937,6 +3985,9 @@ static int macb_probe(struct platform_device *pdev) goto err_out_unregister_mdio; } + tasklet_init(&bp->hresp_err_tasklet, macb_hresp_error_task, + (unsigned long)bp); + phy_attached_info(phydev); netdev_info(dev, "Cadence %s rev 0x%08x at 0x%08lx irq %d (%pM)\n", -- 2.7.4