forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/arch/x86/xen/smp.c
....@@ -88,14 +88,17 @@
8888 per_cpu(xen_callfunc_irq, cpu).irq = rc;
8989 per_cpu(xen_callfunc_irq, cpu).name = callfunc_name;
9090
91
- debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
92
- rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt,
93
- IRQF_PERCPU | IRQF_NOBALANCING,
94
- debug_name, NULL);
95
- if (rc < 0)
96
- goto fail;
97
- per_cpu(xen_debug_irq, cpu).irq = rc;
98
- per_cpu(xen_debug_irq, cpu).name = debug_name;
91
+ if (!xen_fifo_events) {
92
+ debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu);
93
+ rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu,
94
+ xen_debug_interrupt,
95
+ IRQF_PERCPU | IRQF_NOBALANCING,
96
+ debug_name, NULL);
97
+ if (rc < 0)
98
+ goto fail;
99
+ per_cpu(xen_debug_irq, cpu).irq = rc;
100
+ per_cpu(xen_debug_irq, cpu).name = debug_name;
101
+ }
99102
100103 callfunc_name = kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu);
101104 rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR,
....@@ -132,7 +135,7 @@
132135 if (xen_vcpu_nr(cpu) < MAX_VIRT_CPUS)
133136 continue;
134137
135
- rc = cpu_down(cpu);
138
+ rc = remove_cpu(cpu);
136139
137140 if (rc == 0) {
138141 /*