lkml.org 
[lkml]   [2020]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch RFC 24/38] x86/xen: Consolidate XEN-MSI init
    From
    Date
    On 21.08.20 02:24, Thomas Gleixner wrote:
    > X86 cannot store the irq domain pointer in struct device without breaking
    > XEN because the irq domain pointer takes precedence over arch_*_msi_irqs()
    > fallbacks.
    >
    > To achieve this XEN MSI interrupt management needs to be wrapped into an
    > irq domain.
    >
    > Move the x86_msi ops setup into a single function to prepare for this.
    >
    > Signed-off-by: Thomas Gleixner<tglx@linutronix.de>
    > ---
    > arch/x86/pci/xen.c | 51 ++++++++++++++++++++++++++++++++-------------------
    > 1 file changed, 32 insertions(+), 19 deletions(-)
    >
    > --- a/arch/x86/pci/xen.c
    > +++ b/arch/x86/pci/xen.c
    > @@ -371,7 +371,10 @@ static void xen_initdom_restore_msi_irqs
    > WARN(ret && ret != -ENOSYS, "restore_msi -> %d\n", ret);
    > }
    > }
    > -#endif
    > +#else /* CONFIG_XEN_DOM0 */
    > +#define xen_initdom_setup_msi_irqs NULL
    > +#define xen_initdom_restore_msi_irqs NULL
    > +#endif /* !CONFIG_XEN_DOM0 */
    >
    > static void xen_teardown_msi_irqs(struct pci_dev *dev)
    > {
    > @@ -403,7 +406,31 @@ static void xen_teardown_msi_irq(unsigne
    > WARN_ON_ONCE(1);
    > }
    >
    > -#endif
    > +static __init void xen_setup_pci_msi(void)
    > +{
    > + if (xen_initial_domain()) {
    > + x86_msi.setup_msi_irqs = xen_initdom_setup_msi_irqs;
    > + x86_msi.teardown_msi_irqs = xen_teardown_msi_irqs;
    > + x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs;
    > + pci_msi_ignore_mask = 1;

    This is wrong, as a PVH initial domain shouldn't do the pv settings.

    The "if (xen_initial_domain())" should be inside the pv case, like:

    if (xen_pv_domain()) {
    if (xen_initial_domain()) {
    ...
    } else {
    ...
    }
    } else if (xen_hvm_domain()) {
    ...

    Juergen

    \
     
     \ /
      Last update: 2020-08-24 07:01    [W:3.249 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site