Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2677888imj; Mon, 11 Feb 2019 06:54:50 -0800 (PST) X-Google-Smtp-Source: AHgI3IaesIGgJFkBZo1Ln3HQqpKDawqYmdrEgUcjDCYNszHmU9ZtV5ivJD+zDEVxznNQYIvaclAe X-Received: by 2002:a63:da0e:: with SMTP id c14mr9790711pgh.247.1549896890239; Mon, 11 Feb 2019 06:54:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549896890; cv=none; d=google.com; s=arc-20160816; b=Dd3fjpGRelPtYL2fu5ln1dNqfV0srbk5YoEmiZ3SuZE+84pJzKnQlKOaPT7Q9pV2ZL pfSJLzrtl139GDx5Fmiin/UuMTWQYMUYFr/Ys0ylmsjaAsYuDMcktI7PUd+mUnn/cRAb rR9PX8vSCySHZFJIleT3UsooulyQqYIhr6p9bZLY96k4u1xgBCo/o0TVEmxewqSnJ8Md DJMgeh26O6QPTBFeiBE2Huk84Jf/Kp71gaisa5Z0jhBH+Pt1EebNGhQI2/vtZ9Fo9cZ2 68w2Tpa//84HoW7QYjT0bHLsBp6OeBRjuUpIgupo0GBxAa+JCm+LmZO5W35n+/8408Id sk9Q== 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=RMTkpVIm7uVOcrrDA7b3F/M7t2tHHUS7Cl0H+kHOJzI=; b=iANBuwHX6UDH9WWTGCSlSJZEeoaFoOsXD/ioGUe9uYkOgfcxme6cKFOs3ayRAoTEt6 D7ksHv2+pcv+PjrGmLiE44NeybRrdgm9r3DBpyxp2lVk7jyvidybJ2qn0H4WsJsswpzC qkYcwEvBVlIxDYoqEWXPzw6K7Z3vNqkADDlyVBH5qtld7sQc1sFFzbiiSoiERGpxOdjX 01f2OIODGO0m9Cjb6L8WjsA6oTx3VDxjz3mJvNvRalzNK3upF59VMjCnnqbxKJ95wUfJ z6jN38Gdmdis4o1lq2/syfN99PMCIk1t+7AJcl8hiMI65zQRNTAcZdHZ4qlSzPY0iAkx Z2Sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=LR1Vew1U; 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 j14si7802786pgg.44.2019.02.11.06.54.34; Mon, 11 Feb 2019 06:54:50 -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; dkim=pass header.i=@kernel.org header.s=default header.b=LR1Vew1U; 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 S2388657AbfBKOxh (ORCPT + 99 others); Mon, 11 Feb 2019 09:53:37 -0500 Received: from mail.kernel.org ([198.145.29.99]:40040 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729682AbfBKOxe (ORCPT ); Mon, 11 Feb 2019 09:53:34 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.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 3B11720700; Mon, 11 Feb 2019 14:53:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1549896813; bh=Tb65VDAzKMhpRA8zRt2w32UidqnNVmyMSM1wlDis+3w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LR1Vew1Up0m4B29UBjQIWiyy3S5N84aBVfrtKn0df36cmBZY5tYQtxeFv74Um/MMu 5joVEQQl54IXsD/ti/foSgFxNt7daWY8979H1sfbR85SroHb2VpHQnEFnHU1+25Do7 FIbzrpuFiQqaiJBbE4+f0BeBNb1klOEum7ILmyP8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chris Brandt Subject: [PATCH 4.19 310/313] serial: sh-sci: Do not free irqs that have already been freed Date: Mon, 11 Feb 2019 15:19:50 +0100 Message-Id: <20190211141913.504580446@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190211141852.749630980@linuxfoundation.org> References: <20190211141852.749630980@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.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Chris Brandt commit 4d95987a32db53f3beca76f8c4c8309ef6a5f192 upstream. Since IRQs might be muxed on some parts, we need to pay attention when we are freeing them. Otherwise we get the ugly WARNING "Trying to free already-free IRQ 20". Fixes: 628c534ae735 ("serial: sh-sci: Improve support for separate TEI and DRI interrupts") Cc: stable Signed-off-by: Chris Brandt Signed-off-by: Greg Kroah-Hartman --- drivers/tty/serial/sh-sci.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- a/drivers/tty/serial/sh-sci.c +++ b/drivers/tty/serial/sh-sci.c @@ -1921,7 +1921,7 @@ out_nomem: static void sci_free_irq(struct sci_port *port) { - int i; + int i, j; /* * Intentionally in reverse order so we iterate over the muxed @@ -1937,6 +1937,13 @@ static void sci_free_irq(struct sci_port if (unlikely(irq < 0)) continue; + /* Check if already freed (irq was muxed) */ + for (j = 0; j < i; j++) + if (port->irqs[j] == irq) + j = i + 1; + if (j > i) + continue; + free_irq(port->irqs[i], port); kfree(port->irqstr[i]);