[PATCH 2/3] genirq/msi: cache the last msi msg

Peng Fan peng.fan at nxp.com
Mon Mar 25 18:02:09 PDT 2024


> Subject: Re: [PATCH 2/3] genirq/msi: cache the last msi msg
> 
> On Sun, Mar 24 2024 at 20:28, Peng Fan (OSS) wrote:
> > From: Peng Fan <peng.fan at nxp.com>
> >
> > Cache the last msi msg which will be used for ARM SMMU V3 resume
> >
> > Signed-off-by: Peng Fan <peng.fan at nxp.com>
> > ---
> >  kernel/irq/msi.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c index
> > f90952ebc494..9d7e0a675089 100644
> > --- a/kernel/irq/msi.c
> > +++ b/kernel/irq/msi.c
> > @@ -617,6 +617,9 @@ static unsigned int msi_domain_get_hwsize(struct
> > device *dev, unsigned int domid  static inline void
> irq_chip_write_msi_msg(struct irq_data *data,
> >  					  struct msi_msg *msg)
> >  {
> > +	struct msi_desc *desc = irq_data_get_msi_desc(data);
> > +
> > +	desc->msg = *msg;
> >  	data->chip->irq_write_msi_msg(data, msg);  }
> 
> This should remove the very same line in the PCI/MSI code, no?

I think no, but you have more knowledge than me, please correct if I am
wrong.
To zpci_irq_chip.irq_set_affinity
  zpci_set_irq_affinity->pci_write_msi_msg->cache the msg
In kernel/irq/msi.c
msi_domain_update_chip_ops 
        |->        if (!chip->irq_set_affinity)                                                                
                                   chip->irq_set_affinity = msi_domain_set_affinity

>From above code, the pci/msi code should keep the caching code.

Thanks,
Peng.
> 
> Thanks,
> 
>         tglx




More information about the linux-arm-kernel mailing list