Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp494109yba; Mon, 1 Apr 2019 10:25:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqx/IoFPRrdWe5/Lt1qMF4rXi5vBgCob5rxBKlS0Zmmk6ry5Tok4x/7ZX4lzd2eErtYGlXbf X-Received: by 2002:a65:4108:: with SMTP id w8mr61839516pgp.236.1554139504373; Mon, 01 Apr 2019 10:25:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554139504; cv=none; d=google.com; s=arc-20160816; b=GsIUDlG8mKbHlX4CfIUhjpYA7kv0TDuylImxtNFQ11Ke9EbVdouxqI/tN5JLQISUyJ fKcB4NPUNQdEtCL9JMj7L8qDmqzYBUq1yS+6g5fGdhY8BsLvzZoeFxoU5V6QM9++kU9A cz/EkbJcUPiLHzDrZ85DSKjwDVaPuBhKrXbK6LRyuZc65kpT+rgtJ1EAf37wEthZSD6x qIy2IzPDES3boE3sMBBm3InyrvQIZNaTyKo47bsu34J7kPHdHe/uIkt3z/R6WXSUdlri 38DbmEJw7xw9VuuuJVG/f5eG0Y7ltgLSNDehK7Nlx7bciSIgX7DBdEpeCzPtoqiOe2Is dqjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ehor8IopCUhKdXb1QnDfKA+Yqc7c0dQTa4cuf5tg2lc=; b=lfwx3JBS3CiywNYhIpvdmG3uUGO4HaIZsXCJqtPtSFN9IbzMzRQho+vsjVHuoCZPqd UCYgQOjsbvYEkZXbadcxSDR5LSF+Rkxbmbe0sSVlLqAoq037FQs0o7FW4DYHIbYv/xd2 1G5ugRhmZBa51S+z3tqSq2qodoXdPOZtKL3iecqARZ+18Fx9+jFHVmrHgfg7W413VMJY ZrO5IpOWkhyzSc+YFGi8z0SKX/HL8NTAfCvEnrAVZ++l5Z0RW1aySDnwLT2g6KRp6CXB yFnPwdUo9iXe1oxlmhvF6I1rULV34qtFHh9GVK1wzEurXN+L6adce4QcozQccOKx+Whg lejQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="xd16/v8u"; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l127si9258621pfl.2.2019.04.01.10.24.49; Mon, 01 Apr 2019 10:25:04 -0700 (PDT) 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; dkim=pass header.i=@kernel.org header.s=default header.b="xd16/v8u"; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732235AbfDARYQ (ORCPT + 99 others); Mon, 1 Apr 2019 13:24:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:54612 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731448AbfDARYO (ORCPT ); Mon, 1 Apr 2019 13:24:14 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7BB2C2063F; Mon, 1 Apr 2019 17:24:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554139454; bh=GyUE/v4EMr99R0Lr2eEkWN/SmCtLTR29Tp54oE6lVNk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xd16/v8ur94BDe7bpjtUKwgrKYcvlDUzT0YcDjvsysomsQmmnGxfbQmb72xYvf+yj FdGfcbG8/CbbVcsPJHPNQ0nr4415zNOFYhMWAiar9zJlX5y7v3kUJ7ktkn8BYHpq+8 8MSCFrZxJX2IQ6qsGBFRt1qzmv/xlTtEK2WNYG/c= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Malcolm Priestley Subject: [PATCH 4.14 079/107] staging: vt6655: Fix interrupt race condition on device start up. Date: Mon, 1 Apr 2019 19:02:34 +0200 Message-Id: <20190401170052.824119728@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190401170045.246405031@linuxfoundation.org> References: <20190401170045.246405031@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Malcolm Priestley commit 3b9c2f2e0e99bb67c96abcb659b3465efe3bee1f upstream. It appears on some slower systems that the driver can find its way out of the workqueue while the interrupt is disabled by continuous polling by it. Move MACvIntEnable to vnt_interrupt_work so that it is always enabled on all routes out of vnt_interrupt_process. Move MACvIntDisable so that the device doesn't keep polling the system while the workqueue is being processed. Signed-off-by: Malcolm Priestley CC: stable@vger.kernel.org # v4.2+ Signed-off-by: Greg Kroah-Hartman --- drivers/staging/vt6655/device_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/drivers/staging/vt6655/device_main.c +++ b/drivers/staging/vt6655/device_main.c @@ -973,8 +973,6 @@ static void vnt_interrupt_process(struct return; } - MACvIntDisable(priv->PortOffset); - spin_lock_irqsave(&priv->lock, flags); /* Read low level stats */ @@ -1062,8 +1060,6 @@ static void vnt_interrupt_process(struct } spin_unlock_irqrestore(&priv->lock, flags); - - MACvIntEnable(priv->PortOffset, IMR_MASK_VALUE); } static void vnt_interrupt_work(struct work_struct *work) @@ -1073,6 +1069,8 @@ static void vnt_interrupt_work(struct wo if (priv->vif) vnt_interrupt_process(priv); + + MACvIntEnable(priv->PortOffset, IMR_MASK_VALUE); } static irqreturn_t vnt_interrupt(int irq, void *arg) @@ -1081,6 +1079,8 @@ static irqreturn_t vnt_interrupt(int irq schedule_work(&priv->interrupt_work); + MACvIntDisable(priv->PortOffset); + return IRQ_HANDLED; }