]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
xen 4.19 patches updated
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Nov 2020 16:20:35 +0000 (17:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Nov 2020 16:20:35 +0000 (17:20 +0100)
queue-4.19/xen-events-add-a-new-late-eoi-evtchn-framework.patch
queue-4.19/xen-events-avoid-removing-an-event-channel-while-handling-it.patch
queue-4.19/xen-events-defer-eoi-in-case-of-excessive-number-of-events.patch
queue-4.19/xen-events-use-a-common-cpu-hotplug-hook-for-event-channels.patch

index 394be24b897ed4f144b8622d93ac8e6f43b92972..0d496c35818d37015ffb147bde93cb8b1f4737d1 100644 (file)
@@ -260,7 +260,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  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,
index 249c8997bf544e70ce6a3cac2fe5e72f7e35119d..37869e64ca4a0e19d9952a7a3579634ecd6bc55b 100644 (file)
@@ -40,8 +40,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 
 ---
- 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 <gregkh@linuxfoundation.org>
        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();
+ }
index e3d285b9efe22c70d33dcc366e6f09981b9d9b58..6f4ea68931e3f6683a336317554f083ee70cd1b0 100644 (file)
@@ -34,15 +34,13 @@ Signed-off-by: Juergen Gross <jgross@suse.com>
 Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
 Reviewed-by: Wei Liu <wl@xen.org>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
-
 ---
  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 <gregkh@linuxfoundation.org>
        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 <gregkh@linuxfoundation.org>
  
                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 <gregkh@linuxfoundation.org>
  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 <gregkh@linuxfoundation.org>
        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();
  
index 5780aa5c02353cc6d1343c3ab7c7071056c396c6..68afed4e7b0ab1fdffa073041010f0c0252c51f6 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
  #ifdef CONFIG_X86
  #include <asm/desc.h>
-@@ -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 <gregkh@linuxfoundation.org>
  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();