From: Greg Kroah-Hartman Date: Tue, 3 Nov 2020 16:20:35 +0000 (+0100) Subject: xen 4.19 patches updated X-Git-Tag: v4.14.204~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=277e52b28ac8ff3478deb579491c6aca837dc066;p=thirdparty%2Fkernel%2Fstable-queue.git xen 4.19 patches updated --- diff --git a/queue-4.19/xen-events-add-a-new-late-eoi-evtchn-framework.patch b/queue-4.19/xen-events-add-a-new-late-eoi-evtchn-framework.patch index 394be24b897..0d496c35818 100644 --- a/queue-4.19/xen-events-add-a-new-late-eoi-evtchn-framework.patch +++ b/queue-4.19/xen-events-add-a-new-late-eoi-evtchn-framework.patch @@ -260,7 +260,7 @@ Signed-off-by: Greg Kroah-Hartman int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id) -@@ -1642,6 +1744,21 @@ static struct irq_chip xen_dynamic_chip +@@ -1641,6 +1743,21 @@ static struct irq_chip xen_dynamic_chip .irq_mask_ack = mask_ack_dynirq, .irq_set_affinity = set_affinity_irq, diff --git a/queue-4.19/xen-events-avoid-removing-an-event-channel-while-handling-it.patch b/queue-4.19/xen-events-avoid-removing-an-event-channel-while-handling-it.patch index 249c8997bf5..37869e64ca4 100644 --- a/queue-4.19/xen-events-avoid-removing-an-event-channel-while-handling-it.patch +++ b/queue-4.19/xen-events-avoid-removing-an-event-channel-while-handling-it.patch @@ -40,8 +40,8 @@ Signed-off-by: Greg Kroah-Hartman --- - drivers/xen/events/events_base.c | 41 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 36 insertions(+), 5 deletions(-) + drivers/xen/events/events_base.c | 40 ++++++++++++++++++++++++++++++++++----- + 1 file changed, 35 insertions(+), 5 deletions(-) --- a/drivers/xen/events/events_base.c +++ b/drivers/xen/events/events_base.c @@ -152,12 +152,11 @@ Signed-off-by: Greg Kroah-Hartman do { vcpu_info->evtchn_upcall_pending = 0; -@@ -1247,6 +1276,8 @@ static void __xen_evtchn_do_upcall(void) - __this_cpu_write(xed_nesting_count, 0); +@@ -1248,6 +1277,7 @@ static void __xen_evtchn_do_upcall(void) } while (count != 1 || vcpu_info->evtchn_upcall_pending); -+ read_unlock(&evtchn_rwlock); -+ out: ++ read_unlock(&evtchn_rwlock); put_cpu(); + } diff --git a/queue-4.19/xen-events-defer-eoi-in-case-of-excessive-number-of-events.patch b/queue-4.19/xen-events-defer-eoi-in-case-of-excessive-number-of-events.patch index e3d285b9efe..6f4ea68931e 100644 --- a/queue-4.19/xen-events-defer-eoi-in-case-of-excessive-number-of-events.patch +++ b/queue-4.19/xen-events-defer-eoi-in-case-of-excessive-number-of-events.patch @@ -34,15 +34,13 @@ Signed-off-by: Juergen Gross Reviewed-by: Stefano Stabellini Reviewed-by: Wei Liu Signed-off-by: Greg Kroah-Hartman - - --- Documentation/admin-guide/kernel-parameters.txt | 8 + drivers/xen/events/events_2l.c | 7 - drivers/xen/events/events_base.c | 188 +++++++++++++++++++++++- + drivers/xen/events/events_base.c | 189 +++++++++++++++++++++++- drivers/xen/events/events_fifo.c | 30 +-- drivers/xen/events/events_internal.h | 14 + - 5 files changed, 215 insertions(+), 32 deletions(-) + 5 files changed, 216 insertions(+), 32 deletions(-) --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -188,14 +186,14 @@ Signed-off-by: Greg Kroah-Hartman evtchn = info->evtchn; - if (!VALID_EVTCHN(evtchn)) + if (!VALID_EVTCHN(evtchn) || !list_empty(&info->eoi_list)) - return; - ++ return; ++ + cpu = info->eoi_cpu; + if (info->eoi_time && info->irq_epoch == per_cpu(irq_epoch, cpu)) { + lateeoi_list_add(info); -+ return; + return; + } -+ + + info->eoi_time = 0; unmask_evtchn(evtchn); } @@ -348,20 +346,21 @@ Signed-off-by: Greg Kroah-Hartman BUG_ON(!irqs_disabled()); -@@ -1382,6 +1553,12 @@ static void __xen_evtchn_do_upcall(void) +@@ -1382,6 +1553,13 @@ static void __xen_evtchn_do_upcall(void) + out: read_unlock(&evtchn_rwlock); - out: + /* + * Increment irq_epoch only now to defer EOIs only for + * xen_irq_lateeoi() invocations occurring from inside the loop + * above. + */ + __this_cpu_inc(irq_epoch); - ++ put_cpu(); } -@@ -1829,9 +2006,6 @@ void xen_callback_vector(void) + +@@ -1828,9 +2006,6 @@ void xen_callback_vector(void) void xen_callback_vector(void) {} #endif @@ -371,7 +370,7 @@ Signed-off-by: Greg Kroah-Hartman static bool fifo_events = true; module_param(fifo_events, bool, 0); -@@ -1839,6 +2013,8 @@ static int xen_evtchn_cpu_prepare(unsign +@@ -1838,6 +2013,8 @@ static int xen_evtchn_cpu_prepare(unsign { int ret = 0; @@ -380,7 +379,7 @@ Signed-off-by: Greg Kroah-Hartman if (evtchn_ops->percpu_init) ret = evtchn_ops->percpu_init(cpu); -@@ -1865,6 +2041,8 @@ void __init xen_init_IRQ(void) +@@ -1864,6 +2041,8 @@ void __init xen_init_IRQ(void) if (ret < 0) xen_evtchn_2l_init(); diff --git a/queue-4.19/xen-events-use-a-common-cpu-hotplug-hook-for-event-channels.patch b/queue-4.19/xen-events-use-a-common-cpu-hotplug-hook-for-event-channels.patch index 5780aa5c023..68afed4e7b0 100644 --- a/queue-4.19/xen-events-use-a-common-cpu-hotplug-hook-for-event-channels.patch +++ b/queue-4.19/xen-events-use-a-common-cpu-hotplug-hook-for-event-channels.patch @@ -36,7 +36,7 @@ Signed-off-by: Greg Kroah-Hartman #ifdef CONFIG_X86 #include -@@ -1834,6 +1835,26 @@ void xen_callback_vector(void) {} +@@ -1833,6 +1834,26 @@ void xen_callback_vector(void) {} static bool fifo_events = true; module_param(fifo_events, bool, 0); @@ -63,7 +63,7 @@ Signed-off-by: Greg Kroah-Hartman void __init xen_init_IRQ(void) { int ret = -EINVAL; -@@ -1844,6 +1865,10 @@ void __init xen_init_IRQ(void) +@@ -1843,6 +1864,10 @@ void __init xen_init_IRQ(void) if (ret < 0) xen_evtchn_2l_init();