From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A206AC43387 for ; Wed, 16 Jan 2019 23:43:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 664AE20675 for ; Wed, 16 Jan 2019 23:43:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=linaro.org header.i=@linaro.org header.b="cIk0rdm0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727567AbfAPXnO (ORCPT ); Wed, 16 Jan 2019 18:43:14 -0500 Received: from mail-lj1-f196.google.com ([209.85.208.196]:37414 "EHLO mail-lj1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727477AbfAPXnN (ORCPT ); Wed, 16 Jan 2019 18:43:13 -0500 Received: by mail-lj1-f196.google.com with SMTP id t18-v6so6994597ljd.4 for ; Wed, 16 Jan 2019 15:43:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=7W247NiwCjt4gKXUi0BkDpaHSZZSdPj4KA1sVn9dEKU=; b=cIk0rdm0Lbi0tJq+n78XW4DK4K1sTyM8az/Sk9aTlY8qa1dcYEIv9NeRGRZO1F3fG4 kF3TTX0RSJsqzQAxC4LCnLq8iVJ/VSNsUr1H/1nMEDJaXiWrrR6etEffJ/dbvWTPWKC0 JLkH17LI6cI1pxxFE53iGpxAtrFdmoI5jm/YM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=7W247NiwCjt4gKXUi0BkDpaHSZZSdPj4KA1sVn9dEKU=; b=NivemeT7zDru0P74jfsSp8YTCPwJI9o2nlH6KmMVyZiRmrYRIRKuUZElwpMD41UP38 msDb0i8g6nBcUsYn0iXyCS2AWhz8xZujpH0MtoN8ZZ7BQALbljZNom9iFvyxymu6n4EY KpmWrNyu44y8sDjgCYtOOqxX0OqjxKGSoXajbxgCSAcxEbZtNe0FZDk9ICEckBxqfS88 KNtnLcBLpo5KvBSjYFaNCa6mFnNzO5xSGJL1q3OW9EokfTjz62e29d++C7AUvuyVlTIh qY8uYmD4XooeuvNxJ3RpC1wEfwfOT0KSqcuAqxuvgC1tc8V9dL17uCKmUnEj2PMdnE4U V+xA== X-Gm-Message-State: AJcUukfmtai0cE/hU4eharTy2i7jbFklQs9oPZSo6AayODaqwfi8F82k 8nzLK+6+xVFOJbFQ6PicDTsQ5Pn3CsM= X-Google-Smtp-Source: ALg8bN7udNoyqP3KuCCQI5/mKJSLswTqnlOcGR9Znku6E7I9+Ak2+9MCkEv5CSDuCiabVwpSVR1wiw== X-Received: by 2002:a2e:9d8e:: with SMTP id c14-v6mr8190586ljj.146.1547682191518; Wed, 16 Jan 2019 15:43:11 -0800 (PST) Received: from centauri.lan (h-229-118.A785.priv.bahnhof.se. [5.150.229.118]) by smtp.gmail.com with ESMTPSA id d23sm1447144lfc.11.2019.01.16.15.43.10 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 16 Jan 2019 15:43:10 -0800 (PST) Date: Thu, 17 Jan 2019 00:43:08 +0100 From: Niklas Cassel To: gregkh@linuxfoundation.org Cc: marc.zyngier@arm.com, gustavo.pimentel@synopsys.com, lorenzo.pieralisi@arm.com, svarbanov@mm-sol.com, tpiepho@impinj.com, stable@vger.kernel.org Subject: Re: FAILED: patch "[PATCH] PCI: dwc: Move interrupt acking into the proper callback" failed to apply to 4.14-stable tree Message-ID: <20190116234308.GA23572@centauri.lan> References: <1547540677157229@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1547540677157229@kroah.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On Tue, Jan 15, 2019 at 09:24:37AM +0100, gregkh@linuxfoundation.org wrote: > > The patch below does not apply to the 4.14-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to . Hello Marc, You said that you were going to backport this to 4.14, right? IIRC, you said something about creating a simple dw_pci_bottom_ack() (since 4.14 lacks a ack() function). Kind regards, Niklas > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From 3f7bb2ec20ce07c02b2002349d256c91a463fcc5 Mon Sep 17 00:00:00 2001 > From: Marc Zyngier > Date: Tue, 13 Nov 2018 22:57:34 +0000 > Subject: [PATCH] PCI: dwc: Move interrupt acking into the proper callback > > The write to the status register is really an ACK for the HW, > and should be treated as such by the driver. Let's move it to the > irq_ack() callback, which will prevent people from moving it around > in order to paper over other bugs. > > Fixes: 8c934095fa2f ("PCI: dwc: Clear MSI interrupt status after it is handled, > not before") > Fixes: 7c5925afbc58 ("PCI: dwc: Move MSI IRQs allocation to IRQ domains > hierarchical API") > Link: https://lore.kernel.org/linux-pci/20181113225734.8026-1-marc.zyngier@arm.com/ > Reported-by: Trent Piepho > Tested-by: Niklas Cassel > Tested-by: Gustavo Pimentel > Tested-by: Stanimir Varbanov > Signed-off-by: Marc Zyngier > [lorenzo.pieralisi@arm.com: updated commit log] > Signed-off-by: Lorenzo Pieralisi > Cc: stable@vger.kernel.org > > diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c > index 610a5e018d27..0fa9e8fdce66 100644 > --- a/drivers/pci/controller/dwc/pcie-designware-host.c > +++ b/drivers/pci/controller/dwc/pcie-designware-host.c > @@ -99,9 +99,6 @@ irqreturn_t dw_handle_msi_irq(struct pcie_port *pp) > (i * MAX_MSI_IRQS_PER_CTRL) + > pos); > generic_handle_irq(irq); > - dw_pcie_wr_own_conf(pp, PCIE_MSI_INTR0_STATUS + > - (i * MSI_REG_CTRL_BLOCK_SIZE), > - 4, 1 << pos); > pos++; > } > } > @@ -200,14 +197,18 @@ static void dw_pci_bottom_unmask(struct irq_data *data) > > static void dw_pci_bottom_ack(struct irq_data *d) > { > - struct msi_desc *msi = irq_data_get_msi_desc(d); > - struct pcie_port *pp; > + struct pcie_port *pp = irq_data_get_irq_chip_data(d); > + unsigned int res, bit, ctrl; > unsigned long flags; > > - pp = msi_desc_to_pci_sysdata(msi); > + ctrl = d->hwirq / MAX_MSI_IRQS_PER_CTRL; > + res = ctrl * MSI_REG_CTRL_BLOCK_SIZE; > + bit = d->hwirq % MAX_MSI_IRQS_PER_CTRL; > > raw_spin_lock_irqsave(&pp->lock, flags); > > + dw_pcie_wr_own_conf(pp, PCIE_MSI_INTR0_STATUS + res, 4, 1 << bit); > + > if (pp->ops->msi_irq_ack) > pp->ops->msi_irq_ack(d->hwirq, pp); > >