rpms/kernel/devel kernel.spec, 1.1294.2.42, 1.1294.2.43 xen.pvops.patch, 1.1.2.28, 1.1.2.29
myoung
myoung at fedoraproject.org
Wed Jul 15 22:20:15 UTC 2009
Author: myoung
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv12845
Modified Files:
Tag: private-myoung-dom0-branch
kernel.spec xen.pvops.patch
Log Message:
update pvops patch again (last update didn't build)
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.42
retrieving revision 1.1294.2.43
diff -u -p -r1.1294.2.42 -r1.1294.2.43
--- kernel.spec 15 Jul 2009 21:32:22 -0000 1.1294.2.42
+++ kernel.spec 15 Jul 2009 22:20:03 -0000 1.1294.2.43
@@ -1876,7 +1876,7 @@ fi
%changelog
* Wed Jul 15 2009 Michael Young <m.a.young at durham.ac.uk>
-- update pvops patch
+- update pvops patch x2
* Tue Jul 14 2009 Kyle McMartin <kyle at redhat.com> 2.6.31-0.68-rc3
- 2.6.31-rc3
xen.pvops.patch:
Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.28
retrieving revision 1.1.2.29
diff -u -p -r1.1.2.28 -r1.1.2.29
--- xen.pvops.patch 15 Jul 2009 20:58:07 -0000 1.1.2.28
+++ xen.pvops.patch 15 Jul 2009 22:20:03 -0000 1.1.2.29
@@ -4170,6 +4170,19 @@ index 429834e..4706af7 100644
per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;
/* make sure interrupts start blocked */
+diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+index 0a5aa44..d4e9a97 100644
+--- a/arch/x86/xen/time.c
++++ b/arch/x86/xen/time.c
+@@ -434,7 +434,7 @@ void xen_setup_timer(int cpu)
+ name = "<timer kasprintf failed>";
+
+ irq = bind_virq_to_irqhandler(VIRQ_TIMER, cpu, xen_timer_interrupt,
+- IRQF_DISABLED|IRQF_PERCPU|IRQF_NOBALANCING,
++ IRQF_DISABLED|IRQF_PERCPU|IRQF_NOBALANCING|IRQF_TIMER,
+ name, NULL);
+
+ evt = &per_cpu(xen_clock_events, cpu);
diff --git a/arch/x86/xen/vga.c b/arch/x86/xen/vga.c
new file mode 100644
index 0000000..1cd7f4d
@@ -7040,7 +7053,7 @@ index 0000000..650f4b3
+ (void)xenbus_register_backend(&blkback);
+}
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index abad71b..ad7193f 100644
+index abad71b..2aed84f 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -16,7 +16,7 @@
@@ -7406,7 +7419,15 @@ index abad71b..ad7193f 100644
int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu,
irq_handler_t handler,
unsigned long irqflags, const char *devname, void *dev_id)
-@@ -924,13 +1193,37 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
+@@ -532,6 +801,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi,
+ if (irq < 0)
+ return irq;
+
++ irqflags |= IRQF_NO_SUSPEND;
+ retval = request_irq(irq, handler, irqflags, devname, dev_id);
+ if (retval != 0) {
+ unbind_from_irq(irq);
+@@ -924,13 +1194,38 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
.retrigger = retrigger_dynirq,
};
@@ -7437,15 +7458,16 @@ index abad71b..ad7193f 100644
cpu_evtchn_mask_p = kcalloc(nr_cpu_ids, sizeof(struct cpu_evtchn_s),
GFP_KERNEL);
- BUG_ON(cpu_evtchn_mask_p == NULL);
-+ irq_info = alloc_bootmem(nr_irqs * sizeof(*irq_info));
++ irq_info = kcalloc(nr_irqs, sizeof(*irq_info), GFP_KERNEL);
+
-+ evtchn_to_irq = alloc_bootmem(NR_EVENT_CHANNELS * sizeof(*evtchn_to_irq));
++ evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq),
++ GFP_KERNEL);
+ for(i = 0; i < NR_EVENT_CHANNELS; i++)
+ evtchn_to_irq[i] = -1;
init_evtchn_cpu_bindings();
-@@ -939,4 +1232,6 @@ void __init xen_init_IRQ(void)
+@@ -939,4 +1234,6 @@ void __init xen_init_IRQ(void)
mask_evtchn(i);
irq_ctx_init(smp_processor_id());
@@ -10847,7 +10869,7 @@ index 6c5e318..0e5fc4c 100644
#endif
diff --git a/drivers/xen/xenbus/xenbus_probe_backend.c b/drivers/xen/xenbus/xenbus_probe_backend.c
new file mode 100644
-index 0000000..70029e5
+index 0000000..a3cc535
--- /dev/null
+++ b/drivers/xen/xenbus/xenbus_probe_backend.c
@@ -0,0 +1,298 @@
@@ -10907,7 +10929,7 @@ index 0000000..70029e5
+#include "xenbus_probe.h"
+
+/* backend/<type>/<fe-uuid>/<id> => <type>-<fe-domid>-<id> */
-+static int backend_bus_id(char bus_id[BUS_ID_SIZE], const char *nodename)
++static int backend_bus_id(char bus_id[XEN_BUS_ID_SIZE], const char *nodename)
+{
+ int domid, err;
+ const char *devid, *type, *frontend;
@@ -10937,8 +10959,8 @@ index 0000000..70029e5
+ if (err)
+ return err;
+
-+ if (snprintf(bus_id, BUS_ID_SIZE,
-+ "%.*s-%i-%s", typelen, type, domid, devid) >= BUS_ID_SIZE)
++ if (snprintf(bus_id, XEN_BUS_ID_SIZE,
++ "%.*s-%i-%s", typelen, type, domid, devid) >= XEN_BUS_ID_SIZE)
+ return -ENOSPC;
+ return 0;
+}
@@ -11151,7 +11173,7 @@ index 0000000..70029e5
+subsys_initcall(xenbus_probe_backend_init);
diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
new file mode 100644
-index 0000000..689761d
+index 0000000..47be902
--- /dev/null
+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
@@ -0,0 +1,292 @@
@@ -11182,15 +11204,15 @@ index 0000000..689761d
+#include "xenbus_probe.h"
+
+/* device/<type>/<id> => <type>-<id> */
-+static int frontend_bus_id(char bus_id[BUS_ID_SIZE], const char *nodename)
++static int frontend_bus_id(char bus_id[XEN_BUS_ID_SIZE], const char *nodename)
+{
+ nodename = strchr(nodename, '/');
-+ if (!nodename || strlen(nodename + 1) >= BUS_ID_SIZE) {
++ if (!nodename || strlen(nodename + 1) >= XEN_BUS_ID_SIZE) {
+ printk(KERN_WARNING "XENBUS: bad frontend %s\n", nodename);
+ return -EINVAL;
+ }
+
-+ strlcpy(bus_id, nodename + 1, BUS_ID_SIZE);
++ strlcpy(bus_id, nodename + 1, XEN_BUS_ID_SIZE);
+ if (!strchr(bus_id, '/')) {
+ printk(KERN_WARNING "XENBUS: bus_id %s no slash\n", bus_id);
+ return -EINVAL;
@@ -12098,6 +12120,18 @@ index b4326b5..bad75d1 100644
#ifndef HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ
static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
+diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
+index 2721f07..99264c3 100644
+--- a/include/linux/interrupt.h
++++ b/include/linux/interrupt.h
+@@ -58,6 +58,7 @@
+ #define IRQF_PERCPU 0x00000400
+ #define IRQF_NOBALANCING 0x00000800
+ #define IRQF_IRQPOLL 0x00001000
++#define IRQF_NO_SUSPEND 0x00002000
+
+ /*
+ * Bits used by threaded handlers:
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index e2e5ce5..ca67e2b 100644
--- a/include/linux/page-flags.h
@@ -13050,6 +13084,20 @@ index b9763ba..542ca7c 100644
struct device_driver driver;
int (*read_otherend_details)(struct xenbus_device *dev);
int (*is_ready)(struct xenbus_device *dev);
+diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
+index 50da676..3dc4e74 100644
+--- a/kernel/irq/manage.c
++++ b/kernel/irq/manage.c
+@@ -192,7 +192,8 @@ static inline int setup_affinity(unsigned int irq, struct irq_desc *desc)
+ void __disable_irq(struct irq_desc *desc, unsigned int irq, bool suspend)
+ {
+ if (suspend) {
+- if (!desc->action || (desc->action->flags & IRQF_TIMER))
++ if (!desc->action ||
++ (desc->action->flags & (IRQF_TIMER | IRQF_NO_SUSPEND)))
+ return;
+ desc->status |= IRQ_SUSPENDED;
+ }
diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index bffe6d7..cec5f62 100644
--- a/lib/swiotlb.c
More information about the fedora-extras-commits
mailing list