Re: [Xen-devel] [PATCH v1 08/21] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq
On 2014/9/10 22:59, Konrad Rzeszutek Wilk wrote: > On Wed, Sep 10, 2014 at 01:38:25PM +0100, David Vrabel wrote: >> On 09/09/14 03:06, Yijing Wang wrote: >>> On 2014/9/5 22:29, David Vrabel wrote: On 05/09/14 11:09, Yijing Wang wrote: > Use MSI chip framework instead of arch MSI functions to configure > MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. [...] > --- a/arch/x86/pci/xen.c > +++ b/arch/x86/pci/xen.c [...] > @@ -418,9 +430,9 @@ int __init pci_xen_init(void) > #endif > > #ifdef CONFIG_PCI_MSI > - x86_msi.setup_msi_irqs = xen_setup_msi_irqs; > - x86_msi.teardown_msi_irq = xen_teardown_msi_irq; > - x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; > + xen_msi_chip.setup_irqs = xen_setup_msi_irqs; > + xen_msi_chip.teardown_irqs = xen_teardown_msi_irqs; > + x86_msi_chip = &xen_msi_chip; > msi_chip.irq_mask = xen_nop_msi_mask; > msi_chip.irq_unmask = xen_nop_msi_mask; Why have these not been changed to set the x86_msi_chip.mask/unmask fields instead? >>> >>> Hi David, x86_msi_chip here is struct msi_chip data type, used to configure >>> MSI/MSI-X >>> irq. msi_chip above is struct irq_chip data type, represent the MSI irq >>> controller. They are >>> not the same object. Their name easily confusing people. >> >> Ok, it all makes sense now. >> >> Acked-by: David Vrabel > > You can also add 'Tested-by: Konrad Rzeszutek Wilk ' > > on the whole series - I ran it through on Xen and on baremetal with a mix of > 32/64 builds. > > Oh, and also Reviewed-by: Konrad Rzeszutek Wilk the > Xen parts. Thanks very much for your test and review! Thanks! Yijing. > >> >> David >> >> ___ >> Xen-devel mailing list >> xen-de...@lists.xen.org >> http://lists.xen.org/xen-devel > > . > -- Thanks! Yijing ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [Xen-devel] [PATCH v1 08/21] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq
On 2014/9/10 20:38, David Vrabel wrote: > On 09/09/14 03:06, Yijing Wang wrote: >> On 2014/9/5 22:29, David Vrabel wrote: >>> On 05/09/14 11:09, Yijing Wang wrote: Use MSI chip framework instead of arch MSI functions to configure MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. >>> [...] --- a/arch/x86/pci/xen.c +++ b/arch/x86/pci/xen.c >>> [...] @@ -418,9 +430,9 @@ int __init pci_xen_init(void) #endif #ifdef CONFIG_PCI_MSI - x86_msi.setup_msi_irqs = xen_setup_msi_irqs; - x86_msi.teardown_msi_irq = xen_teardown_msi_irq; - x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; + xen_msi_chip.setup_irqs = xen_setup_msi_irqs; + xen_msi_chip.teardown_irqs = xen_teardown_msi_irqs; + x86_msi_chip = &xen_msi_chip; msi_chip.irq_mask = xen_nop_msi_mask; msi_chip.irq_unmask = xen_nop_msi_mask; >>> >>> Why have these not been changed to set the x86_msi_chip.mask/unmask >>> fields instead? >> >> Hi David, x86_msi_chip here is struct msi_chip data type, used to configure >> MSI/MSI-X >> irq. msi_chip above is struct irq_chip data type, represent the MSI irq >> controller. They are >> not the same object. Their name easily confusing people. > > Ok, it all makes sense now. > > Acked-by: David Vrabel Thanks! > > David > > . > -- Thanks! Yijing ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [Xen-devel] [PATCH v1 08/21] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq
On Wed, Sep 10, 2014 at 01:38:25PM +0100, David Vrabel wrote: > On 09/09/14 03:06, Yijing Wang wrote: > > On 2014/9/5 22:29, David Vrabel wrote: > >> On 05/09/14 11:09, Yijing Wang wrote: > >>> Use MSI chip framework instead of arch MSI functions to configure > >>> MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. > >> [...] > >>> --- a/arch/x86/pci/xen.c > >>> +++ b/arch/x86/pci/xen.c > >> [...] > >>> @@ -418,9 +430,9 @@ int __init pci_xen_init(void) > >>> #endif > >>> > >>> #ifdef CONFIG_PCI_MSI > >>> - x86_msi.setup_msi_irqs = xen_setup_msi_irqs; > >>> - x86_msi.teardown_msi_irq = xen_teardown_msi_irq; > >>> - x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; > >>> + xen_msi_chip.setup_irqs = xen_setup_msi_irqs; > >>> + xen_msi_chip.teardown_irqs = xen_teardown_msi_irqs; > >>> + x86_msi_chip = &xen_msi_chip; > >>> msi_chip.irq_mask = xen_nop_msi_mask; > >>> msi_chip.irq_unmask = xen_nop_msi_mask; > >> > >> Why have these not been changed to set the x86_msi_chip.mask/unmask > >> fields instead? > > > > Hi David, x86_msi_chip here is struct msi_chip data type, used to configure > > MSI/MSI-X > > irq. msi_chip above is struct irq_chip data type, represent the MSI irq > > controller. They are > > not the same object. Their name easily confusing people. > > Ok, it all makes sense now. > > Acked-by: David Vrabel You can also add 'Tested-by: Konrad Rzeszutek Wilk ' on the whole series - I ran it through on Xen and on baremetal with a mix of 32/64 builds. Oh, and also Reviewed-by: Konrad Rzeszutek Wilk the Xen parts. > > David > > ___ > Xen-devel mailing list > xen-de...@lists.xen.org > http://lists.xen.org/xen-devel ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [Xen-devel] [PATCH v1 08/21] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq
On 09/09/14 03:06, Yijing Wang wrote: > On 2014/9/5 22:29, David Vrabel wrote: >> On 05/09/14 11:09, Yijing Wang wrote: >>> Use MSI chip framework instead of arch MSI functions to configure >>> MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. >> [...] >>> --- a/arch/x86/pci/xen.c >>> +++ b/arch/x86/pci/xen.c >> [...] >>> @@ -418,9 +430,9 @@ int __init pci_xen_init(void) >>> #endif >>> >>> #ifdef CONFIG_PCI_MSI >>> - x86_msi.setup_msi_irqs = xen_setup_msi_irqs; >>> - x86_msi.teardown_msi_irq = xen_teardown_msi_irq; >>> - x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; >>> + xen_msi_chip.setup_irqs = xen_setup_msi_irqs; >>> + xen_msi_chip.teardown_irqs = xen_teardown_msi_irqs; >>> + x86_msi_chip = &xen_msi_chip; >>> msi_chip.irq_mask = xen_nop_msi_mask; >>> msi_chip.irq_unmask = xen_nop_msi_mask; >> >> Why have these not been changed to set the x86_msi_chip.mask/unmask >> fields instead? > > Hi David, x86_msi_chip here is struct msi_chip data type, used to configure > MSI/MSI-X > irq. msi_chip above is struct irq_chip data type, represent the MSI irq > controller. They are > not the same object. Their name easily confusing people. Ok, it all makes sense now. Acked-by: David Vrabel David ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [Xen-devel] [PATCH v1 08/21] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq
On 2014/9/5 22:29, David Vrabel wrote: > On 05/09/14 11:09, Yijing Wang wrote: >> Use MSI chip framework instead of arch MSI functions to configure >> MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. > [...] >> --- a/arch/x86/pci/xen.c >> +++ b/arch/x86/pci/xen.c > [...] >> @@ -418,9 +430,9 @@ int __init pci_xen_init(void) >> #endif >> >> #ifdef CONFIG_PCI_MSI >> -x86_msi.setup_msi_irqs = xen_setup_msi_irqs; >> -x86_msi.teardown_msi_irq = xen_teardown_msi_irq; >> -x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; >> +xen_msi_chip.setup_irqs = xen_setup_msi_irqs; >> +xen_msi_chip.teardown_irqs = xen_teardown_msi_irqs; >> +x86_msi_chip = &xen_msi_chip; >> msi_chip.irq_mask = xen_nop_msi_mask; >> msi_chip.irq_unmask = xen_nop_msi_mask; > > Why have these not been changed to set the x86_msi_chip.mask/unmask > fields instead? Hi David, x86_msi_chip here is struct msi_chip data type, used to configure MSI/MSI-X irq. msi_chip above is struct irq_chip data type, represent the MSI irq controller. They are not the same object. Their name easily confusing people. Defined in arch/x86/kernel/apic/io_apic.c /* * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices, * which implement the MSI or MSI-X Capability Structure. */ static struct irq_chip msi_chip = { .name = "PCI-MSI", .irq_unmask = unmask_msi_irq, .irq_mask = mask_msi_irq, .irq_ack= ack_apic_edge, .irq_set_affinity = msi_set_affinity, .irq_retrigger = ioapic_retrigger_irq, }; Defined in arch/x86/kernel/apic/io_apic.c, introduced in patch 7/21 struct msi_chip apic_msi_chip = { .setup_irqs = native_setup_msi_irqs, .teardown_irq = native_teardown_msi_irq, }; [...] struct msi_chip *x86_msi_chip = &apic_msi_chip; Thanks! Yijing. > > David > > . > -- Thanks! Yijing ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [Xen-devel] [PATCH v1 08/21] x86/xen/MSI: Use MSI chip framework to configure MSI/MSI-X irq
On 05/09/14 11:09, Yijing Wang wrote: > Use MSI chip framework instead of arch MSI functions to configure > MSI/MSI-X irq. So we can manage MSI/MSI-X irq in a unified framework. [...] > --- a/arch/x86/pci/xen.c > +++ b/arch/x86/pci/xen.c [...] > @@ -418,9 +430,9 @@ int __init pci_xen_init(void) > #endif > > #ifdef CONFIG_PCI_MSI > - x86_msi.setup_msi_irqs = xen_setup_msi_irqs; > - x86_msi.teardown_msi_irq = xen_teardown_msi_irq; > - x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs; > + xen_msi_chip.setup_irqs = xen_setup_msi_irqs; > + xen_msi_chip.teardown_irqs = xen_teardown_msi_irqs; > + x86_msi_chip = &xen_msi_chip; > msi_chip.irq_mask = xen_nop_msi_mask; > msi_chip.irq_unmask = xen_nop_msi_mask; Why have these not been changed to set the x86_msi_chip.mask/unmask fields instead? David ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev