On 2014/9/23 7:08, Bjorn Helgaas wrote: > On Fri, Aug 22, 2014 at 04:07:59PM +0800, Yijing Wang wrote: >> Get_cached_msi_msg() only be called in two places, >> ia64_set_msi_irq_affinity() and sn_set_msi_irq_affinity(). >> >> The code flow is: >> irq = irq_data->irq >> get_cached_msi_msg(irq) >> irq_get_msi_desc(irq) >> irq_get_irq_data(irq) >> msi_desc = irq_data->desc >> __get_cached_msi_msg(msi_desc, msg) >> >> This is crazy, we should use __get_cached_msi_msg(irq_data->desc, msg) >> directly to simplify the flow, and remove get_cached_msi_msg(). >> Finally, rename __get_cached_msi_msg() to get_cached_msi_msg(). > > This looks like a nice cleanup. It'd be easier to review if this were two > patches: > > 1) Convert all callers to use __get_cached_msi_msg() rather than > get_cached_msi_msg(). > 2) Remove the unused get_cached_msi_msg() and rename > __get_cached_msi_msg() to get_cached_msi_msg(). > > Maybe even the second patch should be split into remove and rename patches. OK. Thanks! Yijing. > >> Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx> >> CC: Tony Luck <tony.luck@xxxxxxxxx> >> CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx> >> CC: x86@xxxxxxxxxx >> CC: linux-ia64@xxxxxxxxxxxxxxx >> --- >> arch/ia64/kernel/msi_ia64.c | 2 +- >> arch/ia64/sn/kernel/msi_sn.c | 4 ++-- >> arch/x86/kernel/apic/io_apic.c | 2 +- >> drivers/pci/msi.c | 9 +-------- >> include/linux/msi.h | 3 +-- >> 5 files changed, 6 insertions(+), 14 deletions(-) >> >> diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c >> index c430f91..4efe748 100644 >> --- a/arch/ia64/kernel/msi_ia64.c >> +++ b/arch/ia64/kernel/msi_ia64.c >> @@ -23,7 +23,7 @@ static int ia64_set_msi_irq_affinity(struct irq_data *idata, >> if (irq_prepare_move(irq, cpu)) >> return -1; >> >> - get_cached_msi_msg(irq, &msg); >> + get_cached_msi_msg(idata->msi_desc, &msg); >> >> addr = msg.address_lo; >> addr &= MSI_ADDR_DEST_ID_MASK; >> diff --git a/arch/ia64/sn/kernel/msi_sn.c b/arch/ia64/sn/kernel/msi_sn.c >> index afc58d2..8bec242 100644 >> --- a/arch/ia64/sn/kernel/msi_sn.c >> +++ b/arch/ia64/sn/kernel/msi_sn.c >> @@ -175,8 +175,8 @@ static int sn_set_msi_irq_affinity(struct irq_data *data, >> * Release XIO resources for the old MSI PCI address >> */ >> >> - get_cached_msi_msg(irq, &msg); >> - sn_pdev = (struct pcidev_info *)sn_irq_info->irq_pciioinfo; >> + get_cached_msi_msg(data->msi_desc, &msg); >> + sn_pdev = (struct pcidev_info *)sn_irq_info->irq_pciioinfo; >> pdev = sn_pdev->pdi_linux_pcidev; >> provider = SN_PCIDEV_BUSPROVIDER(pdev); >> >> diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c >> index 29290f5..e877cfb 100644 >> --- a/arch/x86/kernel/apic/io_apic.c >> +++ b/arch/x86/kernel/apic/io_apic.c >> @@ -3145,7 +3145,7 @@ msi_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) >> if (ret) >> return ret; >> >> - __get_cached_msi_msg(data->msi_desc, &msg); >> + get_cached_msi_msg(data->msi_desc, &msg); >> >> msg.data &= ~MSI_DATA_VECTOR_MASK; >> msg.data |= MSI_DATA_VECTOR(cfg->vector); >> diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c >> index 0d0f163..8746ecd 100644 >> --- a/drivers/pci/msi.c >> +++ b/drivers/pci/msi.c >> @@ -296,7 +296,7 @@ void read_msi_msg(unsigned int irq, struct msi_msg *msg) >> __read_msi_msg(entry, msg); >> } >> >> -void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg) >> +void get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg) >> { >> /* Assert that the cache is valid, assuming that >> * valid messages are not all-zeroes. */ >> @@ -306,13 +306,6 @@ void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg) >> *msg = entry->msg; >> } >> >> -void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg) >> -{ >> - struct msi_desc *entry = irq_get_msi_desc(irq); >> - >> - __get_cached_msi_msg(entry, msg); >> -} >> - >> void __write_msi_msg(struct msi_desc *entry, struct msi_msg *msg) >> { >> if (entry->dev->current_state != PCI_D0) { >> diff --git a/include/linux/msi.h b/include/linux/msi.h >> index fff7201..329ec73 100644 >> --- a/include/linux/msi.h >> +++ b/include/linux/msi.h >> @@ -16,10 +16,9 @@ struct msi_desc; >> void mask_msi_irq(struct irq_data *data); >> void unmask_msi_irq(struct irq_data *data); >> void __read_msi_msg(struct msi_desc *entry, struct msi_msg *msg); >> -void __get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg); >> +void get_cached_msi_msg(struct msi_desc *entry, struct msi_msg *msg); >> void __write_msi_msg(struct msi_desc *entry, struct msi_msg *msg); >> void read_msi_msg(unsigned int irq, struct msi_msg *msg); >> -void get_cached_msi_msg(unsigned int irq, struct msi_msg *msg); >> void write_msi_msg(unsigned int irq, struct msi_msg *msg); >> >> struct msi_desc { >> -- >> 1.7.1 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-pci" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > . > -- Thanks! Yijing -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html