All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiang Liu <jiang.liu@linux.intel.com>
To: Marc Zyngier <marc.zyngier@arm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] genirq/msi: Do not use pci_msi_[un]mask_irq as default methods
Date: Wed, 14 Oct 2015 10:21:14 +0800	[thread overview]
Message-ID: <561DBC1A.5060902@linux.intel.com> (raw)
In-Reply-To: <1444760085-27857-1-git-send-email-marc.zyngier@arm.com>

On 2015/10/14 2:14, Marc Zyngier wrote:
> When we create a generic MSI domain, that MSI_FLAG_USE_DEF_CHIP_OPS
> is set, and that any of .mask or .unmask are NULL in the irq_chip
> structure, we set them to pci_msi_[un]mask_irq.
> 
> This is a bad idea for at least two reasons:
> - PCI_MSI might not be selected, kernel fails to build (yes, this is
>   legitimate, at least on arm64!)
> - This may not be a PCI/MSI domain at all (platform MSI, for example)
> 
> Either way, this looks wrong. Move the overriding of mask/unmask to
> the PCI counterpart, and panic is any of these two methods is not
> set in the core code (they really should be present).
Hi Marc,
	Thanks for fixing this,
Reviewed-by: Jiang Liu <jiang.liu@linux.intel.com>
Thanks,
Gerry


> 
> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
> ---
>  drivers/pci/msi.c | 4 ++++
>  kernel/irq/msi.c  | 6 +-----
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
> index d449714..4a7da3c 100644
> --- a/drivers/pci/msi.c
> +++ b/drivers/pci/msi.c
> @@ -1243,6 +1243,10 @@ static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
>  	BUG_ON(!chip);
>  	if (!chip->irq_write_msi_msg)
>  		chip->irq_write_msi_msg = pci_msi_domain_write_msg;
> +	if (!chip->irq_mask)
> +		chip->irq_mask = pci_msi_mask_irq;
> +	if (!chip->irq_unmask)
> +		chip->irq_unmask = pci_msi_unmask_irq;
>  }
>  
>  /**
> diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
> index 7e6512b..be9149f 100644
> --- a/kernel/irq/msi.c
> +++ b/kernel/irq/msi.c
> @@ -228,11 +228,7 @@ static void msi_domain_update_chip_ops(struct msi_domain_info *info)
>  {
>  	struct irq_chip *chip = info->chip;
>  
> -	BUG_ON(!chip);
> -	if (!chip->irq_mask)
> -		chip->irq_mask = pci_msi_mask_irq;
> -	if (!chip->irq_unmask)
> -		chip->irq_unmask = pci_msi_unmask_irq;
> +	BUG_ON(!chip || !chip->irq_mask || !chip->irq_unmask);
>  	if (!chip->irq_set_affinity)
>  		chip->irq_set_affinity = msi_domain_set_affinity;
>  }
> 

  reply	other threads:[~2015-10-14  2:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-13 18:14 [PATCH] genirq/msi: Do not use pci_msi_[un]mask_irq as default methods Marc Zyngier
2015-10-14  2:21 ` Jiang Liu [this message]
2015-10-15  8:40 ` Thomas Gleixner
2015-10-16  9:53   ` Thomas Gleixner
2015-10-16 12:18 ` [tip:irq/urgent] genirq/msi: Do not use pci_msi_[un] mask_irq " tip-bot for Marc Zyngier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=561DBC1A.5060902@linux.intel.com \
    --to=jiang.liu@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.