Received: by 10.213.65.68 with SMTP id h4csp1099281imn; Wed, 14 Mar 2018 09:34:28 -0700 (PDT) X-Google-Smtp-Source: AG47ELvx2tisnvGoj91FE3eoMK97pCPaidQDc5Po8vSWpgV+MVSmW8vWwOLrLNbd8UP2Tre0DjiD X-Received: by 10.98.36.25 with SMTP id r25mr4936705pfj.106.1521045268371; Wed, 14 Mar 2018 09:34:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521045268; cv=none; d=google.com; s=arc-20160816; b=cZ205wjjL48Nt+DnBneT18/f5qLbNLt7YcN9H1bD6he/nVDqTATK34Y/raneQxcPLP bLF0/FAa7Y/SY6YKbm34Ats62S7HVtLIboE7ITX7bX1wzpYy1m0AAFSYY92a1p7wcRzy 22vOFICV0YxwPXlrKA1hSV62MJhzrvc+nSOntUQ1Uoh9j/QwtTfzGNmtPB0DL04Flrkj yylsR5VeSKjg49PjpPA2cYVts4OAo1KDQtSr2vPDIq5N8af1p1WtbLXNYhz+zJN5XAgD T5EKwMrtks5Dpcu6L4yuR/fFbukVKf/T3Oyj/cyhnD27xmx4fvcWNrlCbNsp4/35Rqok mJWQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=Qs8LqckWbfYcDEh44GM3yRG1gg/+Bt2SVmm3inmj37Y=; b=pOX1WP0hRO1iNoueSDBjVGx8GA6WyK+ckuqxZcigRwLt5KDOsNNrz5EIv2ir5dqavt pJHVsH6Sg5dr5e1K/NyFbwk3gp6NwBxG3GmOCo9S/TanOOW/r89CT6Yldh3KgfP0PGDj 4JYVSHJwa7smcdAvy/k++WTzIenYVuteTgXcKpyQbITRV1aOXowie1m++PMe/uKHZEj3 6CeeQ6xMZ1gVH0pBMl3PRraQKSj1QyPqE86PyGyVhYxORNTQ93WXdDltLfSI48gnhkuJ vmh1YOFkwztPX4d+OlDcvP5PQ8CDtN2EFzk65EZn9qpNL6LQ8B5RzvUUQhYRNBbIR4zG 6ZaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ZV2tEb+s; 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=pass (p=NONE sp=QUARANTINE 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 x8-v6si2219048plo.129.2018.03.14.09.34.14; Wed, 14 Mar 2018 09:34:28 -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=@gmail.com header.s=20161025 header.b=ZV2tEb+s; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751981AbeCNQbl (ORCPT + 99 others); Wed, 14 Mar 2018 12:31:41 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:39626 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750950AbeCNQbk (ORCPT ); Wed, 14 Mar 2018 12:31:40 -0400 Received: by mail-qt0-f193.google.com with SMTP id a26so4091677qtj.6; Wed, 14 Mar 2018 09:31:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Qs8LqckWbfYcDEh44GM3yRG1gg/+Bt2SVmm3inmj37Y=; b=ZV2tEb+shNUxib1RRp9hnxjinIPws17EuoNitZ1euASrodC5h0NjaK+AlFTQqzzewE 8NMZEIUdcWFJwi9jorAWOQasoCnpWIqa2zpwGh9G1XdWLLO6Lptecb+3YAfkA7u69T4/ M/qImNSTktxojz4rp3Cz9ssEd396zkmRXDlvzWTTlC8hsaBpRZWvD71HJSLcMtMynJCh 7OyKxV5KcDWlZKZP5DI9S+zskOyuW73zaCefQUPCI1kVYSr9kfWo8IPhL5HL9Q+SawjT zw15I2lmxj3W6XTdBZOVKZ2ZqFgV2LfGs7YbBBzkSV8SxeVppp8Yi5pUvug/9CDvISAJ tFTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Qs8LqckWbfYcDEh44GM3yRG1gg/+Bt2SVmm3inmj37Y=; b=dWGRpdhbn+YORQzt9vXcM1KDJ2+aCc3Vxm/X9qrXVEg6bLlNh0aCR8n4jUR+friNnY bAbxw5/QMRkcTWEO/nR1daMptcXNDiPYJ/fBUed1pqnj+Rfafb0Oi/SHHBqaxxpij5tK OMbZ4/MoEurpA8n3zg5knLwnlzZDdSchX/BjgPVIJdoRyk7w2Lzi4u9P4YR4KwedVH5M +TBdVZsEnOhu8SSv/qFE04iHXWkHrt0Ggpz5prxIEFeMeVs11Km0EvaYduvKWNlVF2DD 6LubD4nIeVVqOS/lSDQ9STZdt9p4oBqQKFUBHEMUhy4/ixF8tz701tSx1H6TxJ6GA8h+ qdJQ== X-Gm-Message-State: AElRT7HwQHVTQ739y2vWkp5JBdXiucIeu6PPxeI3NO0ZvdUS2ud0tXXr KUO+smdIofJ398hsEdUGEd+Y9Jo0cHd10xJS8Qc= X-Received: by 10.237.61.145 with SMTP id i17mr7604185qtf.293.1521045098887; Wed, 14 Mar 2018 09:31:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.195.80 with HTTP; Wed, 14 Mar 2018 09:31:38 -0700 (PDT) In-Reply-To: <152097754955.241946.9551793957889760940.stgit@bhelgaas-glaptop.roam.corp.google.com> References: <152097754955.241946.9551793957889760940.stgit@bhelgaas-glaptop.roam.corp.google.com> From: Andy Shevchenko Date: Wed, 14 Mar 2018 18:31:38 +0200 Message-ID: Subject: Re: [PATCH] PCI/MSI: Don't set up INTx if MSI or MSI-X is enabled To: Bjorn Helgaas Cc: linux-pci@vger.kernel.org, Mikael Starvik , Jesper Nilsson , Tony Luck , Fenghua Yu , David Howells , "Rafael J. Wysocki" , Cris , Linux Kernel Mailing List , linux-ia64@vger.kernel.org, linux-am33-list@redhat.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 13, 2018 at 11:45 PM, Bjorn Helgaas wrote: > From: Bjorn Helgaas > Agree with Christoph's comment. > If a device already has MSI or MSI-X enabled, there's no need to set up its > legacy INTx interrupt. Just point to the actual behaviour of this. In some cases code in question has to distinguish between MSI and MSI-x. So, this or similar changes has to be done with keeping above in mind. (Existing example is Thunderbolt driver) > > bba6f6fc68e7 ("[PATCH] MSI-X: fix resume crash") changed the cris, frv, > x86, and ia64 arches to skip INTx setup when MSI is enabled. > > 16cf0ebc35dd ("x86/PCI: Do not use interrupt links for devices using > MSI-X") extended that by changing x86 to also skip INTx setup when MSI-X is > enabled. > > Change the remaining arches (cris, frv, and ia64) to skip INTx setup when > either MSI or MSI-X is enabled. > > Also update mn10300 (which didn't exist at the time of bba6f6fc68e7) to > follow the same pattern. Perhaps no need to change the architectures that are about to be removed completely from the kernel. FWIW, Reviewed-by: Andy Shevchenko > Signed-off-by: Bjorn Helgaas > --- > arch/cris/arch-v32/drivers/pci/bios.c | 2 +- > arch/frv/mb93090-mb00/pci-vdk.c | 2 +- > arch/ia64/pci/pci.c | 4 ++-- > arch/mn10300/unit-asb2305/pci.c | 8 +++++--- > 4 files changed, 9 insertions(+), 7 deletions(-) > > diff --git a/arch/cris/arch-v32/drivers/pci/bios.c b/arch/cris/arch-v32/drivers/pci/bios.c > index 6b9e6cfaa29e..c2bed0cc060b 100644 > --- a/arch/cris/arch-v32/drivers/pci/bios.c > +++ b/arch/cris/arch-v32/drivers/pci/bios.c > @@ -68,7 +68,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) > if ((err = pcibios_enable_resources(dev, mask)) < 0) > return err; > > - if (!dev->msi_enabled) > + if (!pci_dev_msi_enabled(dev)) > pcibios_enable_irq(dev); > return 0; > } > diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c > index f211839e2cae..4a55d1b82d21 100644 > --- a/arch/frv/mb93090-mb00/pci-vdk.c > +++ b/arch/frv/mb93090-mb00/pci-vdk.c > @@ -413,7 +413,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) > > if ((err = pci_enable_resources(dev, mask)) < 0) > return err; > - if (!dev->msi_enabled) > + if (!pci_dev_msi_enabled(dev)) > pcibios_enable_irq(dev); > return 0; > } > diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c > index f5ec736100ee..7ccc64d5fe3e 100644 > --- a/arch/ia64/pci/pci.c > +++ b/arch/ia64/pci/pci.c > @@ -398,7 +398,7 @@ pcibios_enable_device (struct pci_dev *dev, int mask) > if (ret < 0) > return ret; > > - if (!dev->msi_enabled) > + if (!pci_dev_msi_enabled(dev)) > return acpi_pci_irq_enable(dev); > return 0; > } > @@ -407,7 +407,7 @@ void > pcibios_disable_device (struct pci_dev *dev) > { > BUG_ON(atomic_read(&dev->enable_cnt)); > - if (!dev->msi_enabled) > + if (!pci_dev_msi_enabled(dev)) > acpi_pci_irq_disable(dev); > } > > diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c > index 3dfe2d31c67b..4d36ea517679 100644 > --- a/arch/mn10300/unit-asb2305/pci.c > +++ b/arch/mn10300/unit-asb2305/pci.c > @@ -399,10 +399,12 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) > { > int err; > > - err = pci_enable_resources(dev, mask); > - if (err == 0) > + if ((err = pci_enable_resources(dev, mask)) < 0) > + return err; > + > + if (!pci_dev_msi_enabled(dev)) > pcibios_enable_irq(dev); > - return err; > + return 0; > } > > /* > -- With Best Regards, Andy Shevchenko