rpms/kernel/devel patch-2.6.31-rc6-git6.bz2.sign, NONE, 1.1.2.2 .cvsignore, 1.1014.2.25, 1.1014.2.26 drm-r600-kms.patch, 1.1.2.3, 1.1.2.4 kernel.spec, 1.1294.2.54, 1.1294.2.55 sources, 1.976.2.26, 1.976.2.27 upstream, 1.888.2.25, 1.888.2.26 xen.pvops.patch, 1.1.2.35, 1.1.2.36 xen.pvops.post.patch, 1.1.2.21, 1.1.2.22 fix-perf-make-man-failure.patch, 1.1.2.2, NONE patch-2.6.31-rc6-git5.bz2.sign, 1.1.2.2, NONE
myoung
myoung at fedoraproject.org
Thu Aug 20 18:50:32 UTC 2009
Author: myoung
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv29621
Modified Files:
Tag: private-myoung-dom0-branch
.cvsignore drm-r600-kms.patch kernel.spec sources upstream
xen.pvops.patch xen.pvops.post.patch
Added Files:
Tag: private-myoung-dom0-branch
patch-2.6.31-rc6-git6.bz2.sign
Removed Files:
Tag: private-myoung-dom0-branch
fix-perf-make-man-failure.patch patch-2.6.31-rc6-git5.bz2.sign
Log Message:
another pvops i686 stackprotector test
--- NEW FILE patch-2.6.31-rc6-git6.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBKjOD+yGugalF9Dw4RAuluAJ0apmkqCm9MDipwL6ORh60fDrAU0wCfWd71
WxhBmKqP35ul/Oi1jVkkmfI=
=TDlk
-----END PGP SIGNATURE-----
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/.cvsignore,v
retrieving revision 1.1014.2.25
retrieving revision 1.1014.2.26
diff -u -p -r1.1014.2.25 -r1.1014.2.26
--- .cvsignore 19 Aug 2009 20:22:46 -0000 1.1014.2.25
+++ .cvsignore 20 Aug 2009 18:50:20 -0000 1.1014.2.26
@@ -6,4 +6,4 @@ temp-*
kernel-2.6.30
linux-2.6.30.tar.bz2
patch-2.6.31-rc6.bz2
-patch-2.6.31-rc6-git5.bz2
+patch-2.6.31-rc6-git6.bz2
drm-r600-kms.patch:
b/drivers/gpu/drm/radeon/Makefile | 3
b/drivers/gpu/drm/radeon/atombios_crtc.c | 1
b/drivers/gpu/drm/radeon/avivod.h | 60 +
b/drivers/gpu/drm/radeon/r100.c | 69 +
b/drivers/gpu/drm/radeon/r300.c | 2
b/drivers/gpu/drm/radeon/r600.c | 1243 +++++++++++++++++++++++++++++--
b/drivers/gpu/drm/radeon/r600d.h | 349 ++++++++
b/drivers/gpu/drm/radeon/radeon.h | 51 +
b/drivers/gpu/drm/radeon/radeon_asic.h | 139 +++
b/drivers/gpu/drm/radeon/radeon_clocks.c | 10
b/drivers/gpu/drm/radeon/radeon_device.c | 340 ++++----
b/drivers/gpu/drm/radeon/radeon_ring.c | 63 -
b/drivers/gpu/drm/radeon/radeon_share.h | 66 +
b/drivers/gpu/drm/radeon/radeon_ttm.c | 6
b/drivers/gpu/drm/radeon/rs400.c | 2
b/drivers/gpu/drm/radeon/rv770.c | 981 +++++++++++++++++++++++-
b/drivers/gpu/drm/radeon/rv770d.h | 341 ++++++++
drivers/gpu/drm/radeon/r300.h | 36
drivers/gpu/drm/radeon/rs780.c | 102 --
19 files changed, 3366 insertions(+), 498 deletions(-)
Index: drm-r600-kms.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-r600-kms.patch,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.3 -r1.1.2.4
--- drm-r600-kms.patch 8 Aug 2009 18:06:03 -0000 1.1.2.3
+++ drm-r600-kms.patch 20 Aug 2009 18:50:20 -0000 1.1.2.4
@@ -2062,19 +2062,19 @@ index b1d945b..0c5c63a 100644
@@ -712,6 +739,7 @@ int radeon_gpu_wait_for_idle(struct radeon_device *rdev);
#define RREG8(reg) readb(((void __iomem *)rdev->rmmio) + (reg))
#define WREG8(reg, v) writeb(v, ((void __iomem *)rdev->rmmio) + (reg))
- #define RREG32(reg) rdev->mm_rreg(rdev, (reg))
-+#define DREG32(reg) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", rdev->mm_rreg(rdev, (reg)))
- #define WREG32(reg, v) rdev->mm_wreg(rdev, (reg), (v))
+ #define RREG32(reg) r100_mm_rreg(rdev, (reg))
++#define DREG32(reg) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", r100_mm_rreg(rdev, (reg)))
+ #define WREG32(reg, v) r100_mm_wreg(rdev, (reg), (v))
#define REG_SET(FIELD, v) (((v) << FIELD##_SHIFT) & FIELD##_MASK)
#define REG_GET(FIELD, v) (((v) << FIELD##_SHIFT) & FIELD##_MASK)
@@ -735,6 +763,7 @@ int radeon_gpu_wait_for_idle(struct radeon_device *rdev);
tmp_ |= ((val) & ~(mask)); \
WREG32_PLL(reg, tmp_); \
} while (0)
-+#define DREG32_SYS(sqf, rdev, reg) seq_printf((sqf), #reg " : 0x%08X\n", (rdev)->mm_rreg((rdev), (reg)))
-
- void r100_pll_errata_after_index(struct radeon_device *rdev);
++#define DREG32_SYS(sqf, rdev, reg) seq_printf((sqf), #reg " : 0x%08X\n", r100_mm_rreg((rdev), (reg)))
+ /*
+ * Indirect registers accessor
@@ -844,6 +873,9 @@ static inline void radeon_ring_write(struct radeon_device *rdev, uint32_t v)
* ASICs macro.
*/
@@ -2170,8 +2170,8 @@ index 9a75876..7e9bb12 100644
+ .ring_ib_execute = &r100_ring_ib_execute,
+ .ib_test = &r100_ib_test,
.irq_set = &rs600_irq_set,
- .irq_process = &r100_irq_process,
- .fence_ring_emit = &r300_fence_ring_emit,
+ .irq_process = &rs600_irq_process,
+ .get_vblank_counter = &rs600_get_vblank_counter,
@@ -331,7 +349,10 @@ static struct radeon_asic rs690_asic = {
.cp_init = &r100_cp_init,
.cp_fini = &r100_cp_fini,
@@ -2181,8 +2181,8 @@ index 9a75876..7e9bb12 100644
+ .ring_ib_execute = &r100_ring_ib_execute,
+ .ib_test = &r100_ib_test,
.irq_set = &rs600_irq_set,
- .irq_process = &r100_irq_process,
- .fence_ring_emit = &r300_fence_ring_emit,
+ .irq_process = &rs600_irq_process,
+ .get_vblank_counter = &rs600_get_vblank_counter,
@@ -380,7 +401,10 @@ static struct radeon_asic rv515_asic = {
.cp_init = &r100_cp_init,
.cp_fini = &r100_cp_fini,
@@ -2191,9 +2191,9 @@ index 9a75876..7e9bb12 100644
.ring_start = &rv515_ring_start,
+ .ring_ib_execute = &r100_ring_ib_execute,
+ .ib_test = &r100_ib_test,
- .irq_set = &r100_irq_set,
- .irq_process = &r100_irq_process,
- .fence_ring_emit = &r300_fence_ring_emit,
+ .irq_set = &rs600_irq_set,
+ .irq_process = &rs600_irq_process,
+ .get_vblank_counter = &rs600_get_vblank_counter,
@@ -422,7 +446,10 @@ static struct radeon_asic r520_asic = {
.cp_init = &r100_cp_init,
.cp_fini = &r100_cp_fini,
@@ -2202,9 +2202,9 @@ index 9a75876..7e9bb12 100644
.ring_start = &rv515_ring_start,
+ .ring_ib_execute = &r100_ring_ib_execute,
+ .ib_test = &r100_ib_test,
- .irq_set = &r100_irq_set,
- .irq_process = &r100_irq_process,
- .fence_ring_emit = &r300_fence_ring_emit,
+ .irq_set = &rs600_irq_set,
+ .irq_process = &rs600_irq_process,
+ .get_vblank_counter = &rs600_get_vblank_counter,
@@ -440,9 +467,119 @@ static struct radeon_asic r520_asic = {
};
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.54
retrieving revision 1.1294.2.55
diff -u -p -r1.1294.2.54 -r1.1294.2.55
--- kernel.spec 19 Aug 2009 20:22:46 -0000 1.1294.2.54
+++ kernel.spec 20 Aug 2009 18:50:20 -0000 1.1294.2.55
@@ -62,7 +62,7 @@ Summary: The Linux kernel
# The rc snapshot level
%define rcrev 6
# The git snapshot level
-%define gitrev 5
+%define gitrev 6
# Set rpm version accordingly
%define rpmversion 2.6.%{upstream_sublevel}
%endif
@@ -721,9 +721,6 @@ Patch11010: via-hwmon-temp-sensor.patch
Patch12010: linux-2.6-dell-laptop-rfkill-fix.patch
Patch12011: linux-2.6-block-silently-error-unsupported-empty-barriers-too.patch
-# perf userspace tool patches
-Patch13000: fix-perf-make-man-failure.patch
-
Patch19997: xen.pvops.pre.patch
Patch19998: xen.pvops.patch
Patch19999: xen.pvops.post.patch
@@ -1336,8 +1333,6 @@ ApplyPatch linux-2.6-silence-acpi-blackl
#ApplyPatch linux-2.6-v4l-dvb-experimental.patch
#ApplyPatch linux-2.6-revert-dvb-net-kabi-change.patch
-ApplyPatch fix-perf-make-man-failure.patch
-
ApplyPatch xen.pvops.pre.patch
ApplyPatch xen.pvops.patch
ApplyPatch xen.pvops.post.patch
@@ -1654,6 +1649,7 @@ BuildKernel vmlinux vmlinux kdump vmlinu
%if %{with_doc}
# Make the HTML and man pages.
make %{?_smp_mflags} htmldocs mandocs || %{doc_build_fail}
+
%if %{with_perf}
make %{?_smp_mflags} man || %{doc_build_fail}
%endif
@@ -2006,6 +2002,17 @@ fi
# and build.
%changelog
+* Thu Aug 20 2009 Michael Young <m.a.young at durham.ac.uk>
+- test a i686 stackprotector patch
+
+* Thu Aug 20 2009 Mark McLoughlin <markmc at redhat.com>
+- Disable LZMA for xen (#515831)
+
+* Thu Aug 20 2009 Chuck Ebbert <cebbert at redhat.com>
+- 2.6.31-rc6-git5
+- Fix up drm-r600-kms.patch
+- Drop fix-perf-make-man-failure.patch
+
* Wed Aug 19 2009 Michael Young <m.a.young at durham.ac.uk>
- update rebase/master to test i686 stackprotector issue
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/sources,v
retrieving revision 1.976.2.26
retrieving revision 1.976.2.27
diff -u -p -r1.976.2.26 -r1.976.2.27
--- sources 19 Aug 2009 20:22:46 -0000 1.976.2.26
+++ sources 20 Aug 2009 18:50:21 -0000 1.976.2.27
@@ -1,3 +1,3 @@
7a80058a6382e5108cdb5554d1609615 linux-2.6.30.tar.bz2
056ab6d753725f14d2d44eec2c1f471f patch-2.6.31-rc6.bz2
-6128f58fd777f9b64ea5c2fa13049021 patch-2.6.31-rc6-git5.bz2
+bf8a969c68cb72946782195934e6f183 patch-2.6.31-rc6-git6.bz2
Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/upstream,v
retrieving revision 1.888.2.25
retrieving revision 1.888.2.26
diff -u -p -r1.888.2.25 -r1.888.2.26
--- upstream 19 Aug 2009 20:22:46 -0000 1.888.2.25
+++ upstream 20 Aug 2009 18:50:21 -0000 1.888.2.26
@@ -1,3 +1,3 @@
linux-2.6.30.tar.bz2
patch-2.6.31-rc6.bz2
-patch-2.6.31-rc6-git5.bz2
+patch-2.6.31-rc6-git6.bz2
xen.pvops.patch:
arch/x86/Kconfig | 4
arch/x86/include/asm/agp.h | 15
arch/x86/include/asm/e820.h | 2
arch/x86/include/asm/i387.h | 1
arch/x86/include/asm/io.h | 15
arch/x86/include/asm/io_apic.h | 7
arch/x86/include/asm/microcode.h | 9
arch/x86/include/asm/paravirt.h | 718 -------------
arch/x86/include/asm/paravirt_types.h | 722 +++++++++++++
arch/x86/include/asm/pci.h | 8
arch/x86/include/asm/pci_x86.h | 2
arch/x86/include/asm/pgtable.h | 3
arch/x86/include/asm/processor.h | 4
arch/x86/include/asm/tlbflush.h | 6
arch/x86/include/asm/xen/hypercall.h | 44
arch/x86/include/asm/xen/interface.h | 8
arch/x86/include/asm/xen/interface_32.h | 5
arch/x86/include/asm/xen/interface_64.h | 13
arch/x86/include/asm/xen/iommu.h | 12
arch/x86/include/asm/xen/page.h | 16
arch/x86/include/asm/xen/pci.h | 33
arch/x86/kernel/Makefile | 1
arch/x86/kernel/acpi/boot.c | 18
arch/x86/kernel/acpi/sleep.c | 2
arch/x86/kernel/apic/io_apic.c | 46
arch/x86/kernel/cpu/Makefile | 4
arch/x86/kernel/cpu/mtrr/Makefile | 1
arch/x86/kernel/cpu/mtrr/amd.c | 6
arch/x86/kernel/cpu/mtrr/centaur.c | 6
arch/x86/kernel/cpu/mtrr/cyrix.c | 6
arch/x86/kernel/cpu/mtrr/generic.c | 10
arch/x86/kernel/cpu/mtrr/main.c | 19
arch/x86/kernel/cpu/mtrr/mtrr.h | 11
arch/x86/kernel/cpu/mtrr/xen.c | 104 +
arch/x86/kernel/e820.c | 30
arch/x86/kernel/ioport.c | 29
arch/x86/kernel/microcode_core.c | 5
arch/x86/kernel/microcode_xen.c | 200 +++
arch/x86/kernel/paravirt.c | 1
arch/x86/kernel/pci-dma.c | 3
arch/x86/kernel/pci-swiotlb.c | 30
arch/x86/kernel/process.c | 27
arch/x86/kernel/process_32.c | 27
arch/x86/kernel/process_64.c | 33
arch/x86/kernel/setup.c | 4
arch/x86/kernel/traps.c | 33
arch/x86/mm/init_32.c | 42
arch/x86/mm/pat.c | 2
arch/x86/mm/pgtable.c | 10
arch/x86/mm/tlb.c | 35
arch/x86/pci/Makefile | 1
arch/x86/pci/common.c | 18
arch/x86/pci/i386.c | 3
arch/x86/pci/init.c | 6
arch/x86/pci/xen.c | 51
arch/x86/xen/Kconfig | 33
arch/x86/xen/Makefile | 8
arch/x86/xen/apic.c | 57 +
arch/x86/xen/enlighten.c | 96 +
arch/x86/xen/mmu.c | 455 ++++++++
arch/x86/xen/pci-swiotlb.c | 53 +
arch/x86/xen/pci.c | 110 ++
arch/x86/xen/setup.c | 50
arch/x86/xen/smp.c | 2
arch/x86/xen/time.c | 2
arch/x86/xen/vga.c | 67 +
arch/x86/xen/xen-ops.h | 19
block/blk-core.c | 2
drivers/acpi/acpica/hwsleep.c | 17
drivers/acpi/sleep.c | 19
drivers/block/Kconfig | 1
drivers/char/agp/intel-agp.c | 17
drivers/char/hvc_xen.c | 99 +
drivers/net/Kconfig | 1
drivers/pci/Makefile | 2
drivers/pci/xen-iommu.c | 332 ++++++
drivers/xen/Kconfig | 36
drivers/xen/Makefile | 19
drivers/xen/acpi.c | 23
drivers/xen/balloon.c | 152 ++
drivers/xen/biomerge.c | 14
drivers/xen/blkback/Makefile | 3
drivers/xen/blkback/blkback.c | 658 ++++++++++++
drivers/xen/blkback/common.h | 137 ++
drivers/xen/blkback/interface.c | 182 +++
drivers/xen/blkback/vbd.c | 118 ++
drivers/xen/blkback/xenbus.c | 542 ++++++++++
drivers/xen/events.c | 411 +++++++
drivers/xen/evtchn.c | 1
drivers/xen/features.c | 2
drivers/xen/grant-table.c | 103 +
drivers/xen/mce.c | 213 ++++
drivers/xen/netback/Makefile | 3
drivers/xen/netback/common.h | 221 ++++
drivers/xen/netback/interface.c | 401 +++++++
drivers/xen/netback/netback.c | 1513 +++++++++++++++++++++++++++++
drivers/xen/netback/xenbus.c | 454 ++++++++
drivers/xen/pci.c | 116 ++
drivers/xen/xenbus/Makefile | 5
drivers/xen/xenbus/xenbus_comms.c | 1
drivers/xen/xenbus/xenbus_probe.c | 380 +------
drivers/xen/xenbus/xenbus_probe.h | 29
drivers/xen/xenbus/xenbus_probe_backend.c | 298 +++++
drivers/xen/xenbus/xenbus_probe_frontend.c | 292 +++++
drivers/xen/xenfs/Makefile | 3
drivers/xen/xenfs/privcmd.c | 403 +++++++
drivers/xen/xenfs/super.c | 98 +
drivers/xen/xenfs/xenfs.h | 3
drivers/xen/xenfs/xenstored.c | 67 +
include/asm-generic/pci.h | 2
include/linux/interrupt.h | 1
include/linux/page-flags.h | 18
include/xen/Kbuild | 1
include/xen/acpi.h | 23
include/xen/balloon.h | 8
include/xen/blkif.h | 122 ++
include/xen/events.h | 27
include/xen/grant_table.h | 43
include/xen/interface/grant_table.h | 22
include/xen/interface/memory.h | 92 +
include/xen/interface/physdev.h | 51
include/xen/interface/platform.h | 222 ++++
include/xen/interface/xen-mca.h | 429 ++++++++
include/xen/interface/xen.h | 43
include/xen/privcmd.h | 80 +
include/xen/swiotlb.h | 18
include/xen/xen-ops.h | 11
include/xen/xenbus.h | 2
kernel/irq/manage.c | 3
lib/swiotlb.c | 5
mm/page_alloc.c | 14
131 files changed, 10737 insertions(+), 1314 deletions(-)
Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.35
retrieving revision 1.1.2.36
diff -u -p -r1.1.2.35 -r1.1.2.36
--- xen.pvops.patch 19 Aug 2009 20:22:46 -0000 1.1.2.35
+++ xen.pvops.patch 20 Aug 2009 18:50:21 -0000 1.1.2.36
@@ -1986,20 +1986,40 @@ index 018a0a4..f334014 100644
unsigned long arbitrary_virt_to_mfn(void *vaddr);
diff --git a/arch/x86/include/asm/xen/pci.h b/arch/x86/include/asm/xen/pci.h
new file mode 100644
-index 0000000..0563fc6
+index 0000000..714443b
--- /dev/null
+++ b/arch/x86/include/asm/xen/pci.h
-@@ -0,0 +1,13 @@
+@@ -0,0 +1,33 @@
+#ifndef _ASM_X86_XEN_PCI_H
+#define _ASM_X86_XEN_PCI_H
+
+#ifdef CONFIG_XEN_DOM0_PCI
+int xen_register_gsi(u32 gsi, int triggering, int polarity);
++int xen_create_msi_irq(struct pci_dev *dev,
++ struct msi_desc *msidesc,
++ int type);
++int xen_destroy_irq(int irq);
++int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type);
+#else
+static inline int xen_register_gsi(u32 gsi, int triggering, int polarity)
+{
+ return -1;
+}
++
++static int xen_create_msi_irq(struct pci_dev *dev,
++ struct msi_desc *msidesc,
++ int type)
++{
++ return -1;
++}
++static int xen_destroy_irq(int irq)
++{
++ return -1;
++}
++static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
++{
++ return -1;
++}
+#endif
+
+#endif /* _ASM_X86_XEN_PCI_H */
@@ -2081,21 +2101,22 @@ index ca93638..9eff23c 100644
#include "sleep.h"
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index d2ed6c5..205e277 100644
+index d2ed6c5..18d957e 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
-@@ -63,8 +63,10 @@
+@@ -63,8 +63,11 @@
#include <asm/uv/uv_hub.h>
#include <asm/uv/uv_irq.h>
+#include <asm/xen/hypervisor.h>
#include <asm/apic.h>
++#include <asm/xen/pci.h>
+
#define __apicdebuginit(type) static type __init
/*
-@@ -381,14 +383,26 @@ static inline void io_apic_eoi(unsigned int apic, unsigned int vector)
+@@ -381,14 +384,26 @@ static inline void io_apic_eoi(unsigned int apic, unsigned int vector)
static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
{
@@ -2124,7 +2145,7 @@ index d2ed6c5..205e277 100644
writel(reg, &io_apic->index);
writel(value, &io_apic->data);
}
-@@ -401,7 +415,14 @@ static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned i
+@@ -401,7 +416,14 @@ static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned i
*/
static inline void io_apic_modify(unsigned int apic, unsigned int reg, unsigned int value)
{
@@ -2140,7 +2161,29 @@ index d2ed6c5..205e277 100644
if (sis_apic_bug)
writel(reg, &io_apic->index);
-@@ -3854,6 +3875,11 @@ void __init probe_nr_irqs_gsi(void)
+@@ -3489,6 +3511,9 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
+ if (type == PCI_CAP_ID_MSI && nvec > 1)
+ return 1;
+
++ if (xen_domain())
++ return xen_setup_msi_irqs(dev, nvec, type);
++
+ node = dev_to_node(&dev->dev);
+ irq_want = nr_irqs_gsi;
+ sub_handle = 0;
+@@ -3538,7 +3563,10 @@ error:
+
+ void arch_teardown_msi_irq(unsigned int irq)
+ {
+- destroy_irq(irq);
++ if (xen_domain())
++ xen_destroy_irq(irq);
++ else
++ destroy_irq(irq);
+ }
+
+ #if defined (CONFIG_DMAR) || defined (CONFIG_INTR_REMAP)
+@@ -3854,6 +3882,11 @@ void __init probe_nr_irqs_gsi(void)
printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
}
@@ -2152,7 +2195,7 @@ index d2ed6c5..205e277 100644
#ifdef CONFIG_SPARSE_IRQ
int __init arch_probe_nr_irqs(void)
{
-@@ -4147,6 +4173,11 @@ void __init ioapic_init_mappings(void)
+@@ -4147,6 +4180,11 @@ void __init ioapic_init_mappings(void)
struct resource *ioapic_res;
int i;
@@ -3539,14 +3582,13 @@ index 172438f..8c2c266 100644
\ No newline at end of file
diff --git a/arch/x86/xen/apic.c b/arch/x86/xen/apic.c
new file mode 100644
-index 0000000..496f07d
+index 0000000..ee0db39
--- /dev/null
+++ b/arch/x86/xen/apic.c
-@@ -0,0 +1,60 @@
+@@ -0,0 +1,57 @@
+#include <linux/kernel.h>
+#include <linux/threads.h>
+#include <linux/bitmap.h>
-+#include <linux/pci.h>
+
+#include <asm/io_apic.h>
+#include <asm/acpi.h>
@@ -3593,8 +3635,6 @@ index 0000000..496f07d
+ if (!xen_initial_domain())
+ return;
+
-+ pci_no_msi();
-+
+#ifdef CONFIG_ACPI
+ /*
+ * Pretend ACPI found our lapic even though we've disabled it,
@@ -4492,19 +4532,21 @@ index 0000000..3b96c87
+}
diff --git a/arch/x86/xen/pci.c b/arch/x86/xen/pci.c
new file mode 100644
-index 0000000..07b59fe
+index 0000000..c0ef627
--- /dev/null
+++ b/arch/x86/xen/pci.c
-@@ -0,0 +1,86 @@
+@@ -0,0 +1,110 @@
+#include <linux/kernel.h>
+#include <linux/acpi.h>
+#include <linux/pci.h>
++#include <linux/msi.h>
+
+#include <asm/mpspec.h>
+#include <asm/io_apic.h>
+#include <asm/pci_x86.h>
+
+#include <asm/xen/hypervisor.h>
++#include <asm/xen/pci.h>
+
+#include <xen/interface/xen.h>
+#include <xen/events.h>
@@ -4582,6 +4624,28 @@ index 0000000..07b59fe
+ polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH);
+ }
+}
++
++int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
++{
++ unsigned int irq;
++ int ret;
++ struct msi_desc *msidesc;
++
++ list_for_each_entry(msidesc, &dev->msi_list, list) {
++ irq = xen_create_msi_irq(dev, msidesc, type);
++ if (irq == 0)
++ return -1;
++
++ ret = set_irq_msi(irq, msidesc);
++ if (ret)
++ goto error;
++ }
++ return 0;
++
++error:
++ xen_destroy_irq(irq);
++ return ret;
++}
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index ad0047f..2439456 100644
--- a/arch/x86/xen/setup.c
@@ -5176,21 +5240,6 @@ index 1ebd6b4..3590082 100644
obj-$(CONFIG_INTR_REMAP) += dmar.o intr_remapping.o
obj-$(CONFIG_PCI_IOV) += iov.o
-diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
-index f73bcbe..d7fde80 100644
---- a/drivers/pci/pci.h
-+++ b/drivers/pci/pci.h
-@@ -111,10 +111,8 @@ extern struct rw_semaphore pci_bus_sem;
- extern unsigned int pci_pm_d3_delay;
-
- #ifdef CONFIG_PCI_MSI
--void pci_no_msi(void);
- extern void pci_msi_init_pci_dev(struct pci_dev *dev);
- #else
--static inline void pci_no_msi(void) { }
- static inline void pci_msi_init_pci_dev(struct pci_dev *dev) { }
- #endif
-
diff --git a/drivers/pci/xen-iommu.c b/drivers/pci/xen-iommu.c
new file mode 100644
index 0000000..b1a7d93
@@ -5582,7 +5631,7 @@ index cab100a..84c3553 100644
+ def_bool y
+ depends on XEN_DOM0 && X86_64 && X86_MCE_INTEL
diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-index ec2a39b..2d4f7b1 100644
+index ec2a39b..0e2b9df 100644
--- a/drivers/xen/Makefile
+++ b/drivers/xen/Makefile
@@ -1,9 +1,14 @@
@@ -5608,6 +5657,7 @@ index ec2a39b..2d4f7b1 100644
+obj-$(CONFIG_XEN_SYS_HYPERVISOR) += sys-hypervisor.o
+obj-$(CONFIG_XEN_S3) += acpi.o
+obj-$(CONFIG_XEN_MCE) += mce.o
+\ No newline at end of file
diff --git a/drivers/xen/acpi.c b/drivers/xen/acpi.c
new file mode 100644
index 0000000..e6d3d0e
@@ -7617,7 +7667,7 @@ index 0000000..650f4b3
+ (void)xenbus_register_backend(&blkback);
+}
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index abad71b..8bcbf6b 100644
+index abad71b..e2127bd 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -16,7 +16,7 @@
@@ -7629,11 +7679,14 @@ index abad71b..8bcbf6b 100644
*
* Jeremy Fitzhardinge <jeremy at xensource.com>, XenSource Inc, 2007
*/
-@@ -27,10 +27,12 @@
+@@ -27,10 +27,15 @@
#include <linux/module.h>
#include <linux/string.h>
#include <linux/bootmem.h>
+#include <linux/irqnr.h>
++#include <linux/pci_regs.h>
++#include <linux/pci.h>
++#include <linux/msi.h>
#include <asm/ptrace.h>
#include <asm/irq.h>
@@ -7642,7 +7695,16 @@ index abad71b..8bcbf6b 100644
#include <asm/sync_bitops.h>
#include <asm/xen/hypercall.h>
#include <asm/xen/hypervisor.h>
-@@ -83,20 +85,25 @@ struct irq_info
+@@ -40,6 +45,8 @@
+ #include <xen/interface/xen.h>
+ #include <xen/interface/event_channel.h>
+
++#include "../pci/msi.h"
++
+ /*
+ * This lock protects updates to the following mapping and reference-count
+ * arrays. The lock does not need to be acquired to read the mapping tables.
+@@ -83,20 +90,25 @@ struct irq_info
enum ipi_vector ipi;
struct {
unsigned short gsi;
@@ -7674,7 +7736,7 @@ index abad71b..8bcbf6b 100644
static inline unsigned long *cpu_evtchn_mask(int cpu)
{
return cpu_evtchn_mask_p[cpu].bits;
-@@ -106,6 +113,7 @@ static inline unsigned long *cpu_evtchn_mask(int cpu)
+@@ -106,6 +118,7 @@ static inline unsigned long *cpu_evtchn_mask(int cpu)
#define VALID_EVTCHN(chn) ((chn) != 0)
static struct irq_chip xen_dynamic_chip;
@@ -7682,7 +7744,7 @@ index abad71b..8bcbf6b 100644
/* Constructor for packed IRQ information. */
static struct irq_info mk_unbound_info(void)
-@@ -218,6 +226,15 @@ static unsigned int cpu_from_evtchn(unsigned int evtchn)
+@@ -218,6 +231,15 @@ static unsigned int cpu_from_evtchn(unsigned int evtchn)
return ret;
}
@@ -7698,7 +7760,7 @@ index abad71b..8bcbf6b 100644
static inline unsigned long active_evtchns(unsigned int cpu,
struct shared_info *sh,
unsigned int idx)
-@@ -329,12 +346,24 @@ static void unmask_evtchn(int port)
+@@ -329,12 +351,24 @@ static void unmask_evtchn(int port)
put_cpu();
}
@@ -7724,7 +7786,7 @@ index abad71b..8bcbf6b 100644
if (irq_info[irq].type == IRQT_UNBOUND)
break;
-@@ -350,6 +379,213 @@ static int find_unbound_irq(void)
+@@ -350,6 +384,297 @@ static int find_unbound_irq(void)
return irq;
}
@@ -7914,14 +7976,98 @@ index abad71b..8bcbf6b 100644
+ if (HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op)) {
+ dynamic_irq_cleanup(irq);
+ irq = -ENOSPC;
++ goto out;
++ }
++
++ irq_info[irq] = mk_pirq_info(0, gsi, irq_op.vector);
++out:
++ spin_unlock(&irq_mapping_update_lock);
++ return irq;
++}
++
++int xen_destroy_irq(int irq)
++{
++ struct irq_desc *desc;
++ struct physdev_unmap_pirq unmap_irq;
++ int rc = -ENOENT;
++
++ spin_lock(&irq_mapping_update_lock);
++
++ desc = irq_to_desc(irq);
++ if (!desc)
++ goto out;
++
++ unmap_irq.pirq = irq;
++ unmap_irq.domid = DOMID_SELF;
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_unmap_pirq, &unmap_irq);
++ if (rc) {
++ printk(KERN_WARNING "unmap irq failed %x\n", rc);
+ goto out;
+ }
+
-+ irq_info[irq] = mk_pirq_info(0, gsi, irq_op.vector);
++ irq_info[irq] = mk_unbound_info();
++
++ dynamic_irq_cleanup(irq);
+
+out:
+ spin_unlock(&irq_mapping_update_lock);
++ return rc;
++}
++
++int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type)
++{
++ int irq = 0;
++ struct physdev_map_pirq map_irq;
++ int rc;
++ domid_t domid = DOMID_SELF;
++ int pos;
++ u32 table_offset, bir;
++
++ memset(&map_irq, 0, sizeof(map_irq));
++ map_irq.domid = domid;
++ map_irq.type = MAP_PIRQ_TYPE_MSI;
++ map_irq.index = -1;
++ map_irq.bus = dev->bus->number;
++ map_irq.devfn = dev->devfn;
++
++ if (type == PCI_CAP_ID_MSIX) {
++ pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
++
++ pci_read_config_dword(dev, msix_table_offset_reg(pos),
++ &table_offset);
++ bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
++
++ map_irq.table_base = pci_resource_start(dev, bir);
++ map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
++ }
++
++ spin_lock(&irq_mapping_update_lock);
++
++ irq = find_unbound_irq();
++
++ if (irq == -1)
++ goto out;
++
++ map_irq.pirq = irq;
++
++ rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
++ if (rc) {
++
++ printk(KERN_WARNING "xen map irq failed %x\n", rc);
+
++ dynamic_irq_cleanup(irq);
++
++ irq = -1;
++ goto out;
++ }
++
++ irq_info[irq] = mk_pirq_info(0, -1, map_irq.index);
++ set_irq_chip_and_handler_name(irq, &xen_pirq_chip,
++ handle_level_irq,
++ (type == PCI_CAP_ID_MSIX) ? "msi-x":"msi");
++
++out:
++ spin_unlock(&irq_mapping_update_lock);
+ return irq;
+}
+
@@ -7938,7 +8084,7 @@ index abad71b..8bcbf6b 100644
int bind_evtchn_to_irq(unsigned int evtchn)
{
int irq;
-@@ -409,8 +645,23 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu)
+@@ -409,8 +734,23 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu)
return irq;
}
@@ -7947,7 +8093,8 @@ index abad71b..8bcbf6b 100644
+{
+ struct evtchn_bind_interdomain bind_interdomain;
+ int err;
-+
+
+-static int bind_virq_to_irq(unsigned int virq, unsigned int cpu)
+ bind_interdomain.remote_dom = remote_domain;
+ bind_interdomain.remote_port = remote_port;
+
@@ -7956,14 +8103,13 @@ index abad71b..8bcbf6b 100644
+
+ return err ? : bind_evtchn_to_irq(bind_interdomain.local_port);
+}
-
--static int bind_virq_to_irq(unsigned int virq, unsigned int cpu)
++
+
+int bind_virq_to_irq(unsigned int virq, unsigned int cpu)
{
struct evtchn_bind_virq bind_virq;
int evtchn, irq;
-@@ -501,6 +752,29 @@ int bind_evtchn_to_irqhandler(unsigned int evtchn,
+@@ -501,6 +841,29 @@ int bind_evtchn_to_irqhandler(unsigned int evtchn,
}
EXPORT_SYMBOL_GPL(bind_evtchn_to_irqhandler);
@@ -7993,7 +8139,7 @@ index abad71b..8bcbf6b 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)
-@@ -532,6 +806,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi,
+@@ -532,6 +895,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi,
if (irq < 0)
return irq;
@@ -8001,7 +8147,7 @@ index abad71b..8bcbf6b 100644
retval = request_irq(irq, handler, irqflags, devname, dev_id);
if (retval != 0) {
unbind_from_irq(irq);
-@@ -924,13 +1199,38 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
+@@ -924,13 +1288,38 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
.retrigger = retrigger_dynirq,
};
@@ -8041,7 +8187,7 @@ index abad71b..8bcbf6b 100644
init_evtchn_cpu_bindings();
-@@ -939,4 +1239,6 @@ void __init xen_init_IRQ(void)
+@@ -939,4 +1328,6 @@ void __init xen_init_IRQ(void)
mask_evtchn(i);
irq_ctx_init(smp_processor_id());
@@ -11030,7 +11176,7 @@ index 0000000..a492288
+}
diff --git a/drivers/xen/pci.c b/drivers/xen/pci.c
new file mode 100644
-index 0000000..b13e054
+index 0000000..5156278
--- /dev/null
+++ b/drivers/xen/pci.c
@@ -0,0 +1,116 @@
@@ -11149,7 +11295,7 @@ index 0000000..b13e054
+ return bus_register_notifier(&pci_bus_type, &device_nb);
+}
+
-+fs_initcall(register_xen_pci_notifier);
++arch_initcall(register_xen_pci_notifier);
diff --git a/drivers/xen/xenbus/Makefile b/drivers/xen/xenbus/Makefile
index 5571f5b..8dca685 100644
--- a/drivers/xen/xenbus/Makefile
@@ -13108,22 +13254,6 @@ index e2e5ce5..ca67e2b 100644
static inline int PageUptodate(struct page *page)
{
int ret = test_bit(PG_uptodate, &(page)->flags);
-diff --git a/include/linux/pci.h b/include/linux/pci.h
-index 115fb7b..2265a32 100644
---- a/include/linux/pci.h
-+++ b/include/linux/pci.h
-@@ -1276,5 +1276,11 @@ extern void pci_hp_create_module_link(struct pci_slot *pci_slot);
- extern void pci_hp_remove_module_link(struct pci_slot *pci_slot);
- #endif
-
-+#ifdef CONFIG_PCI_MSI
-+void pci_no_msi(void);
-+#else
-+static inline void pci_no_msi(void) { }
-+#endif
-+
- #endif /* __KERNEL__ */
- #endif /* LINUX_PCI_H */
diff --git a/include/xen/Kbuild b/include/xen/Kbuild
index 4e65c16..84ad8f0 100644
--- a/include/xen/Kbuild
@@ -13586,13 +13716,43 @@ index af36ead..eac3ce1 100644
+extern spinlock_t xen_reservation_lock;
#endif /* __XEN_PUBLIC_MEMORY_H__ */
diff --git a/include/xen/interface/physdev.h b/include/xen/interface/physdev.h
-index cd69391..7a7d007 100644
+index cd69391..ac5de37 100644
--- a/include/xen/interface/physdev.h
+++ b/include/xen/interface/physdev.h
-@@ -106,6 +106,27 @@ struct physdev_irq {
+@@ -106,6 +106,57 @@ struct physdev_irq {
uint32_t vector;
};
++#define MAP_PIRQ_TYPE_MSI 0x0
++#define MAP_PIRQ_TYPE_GSI 0x1
++#define MAP_PIRQ_TYPE_UNKNOWN 0x2
++
++#define PHYSDEVOP_map_pirq 13
++struct physdev_map_pirq {
++ domid_t domid;
++ /* IN */
++ int type;
++ /* IN */
++ int index;
++ /* IN or OUT */
++ int pirq;
++ /* IN */
++ int bus;
++ /* IN */
++ int devfn;
++ /* IN */
++ int entry_nr;
++ /* IN */
++ uint64_t table_base;
++};
++
++#define PHYSDEVOP_unmap_pirq 14
++struct physdev_unmap_pirq {
++ domid_t domid;
++ /* IN */
++ int pirq;
++};
++
+#define PHYSDEVOP_manage_pci_add 15
+#define PHYSDEVOP_manage_pci_remove 16
+struct physdev_manage_pci {
@@ -14492,7 +14652,7 @@ index b9763ba..542ca7c 100644
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 d222515..d5e2bb8 100644
+index 0ec9ed8..07a11dc 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -200,7 +200,8 @@ static inline int setup_affinity(unsigned int irq, struct irq_desc *desc)
@@ -14534,7 +14694,7 @@ index bffe6d7..cec5f62 100644
panic("Cannot allocate SWIOTLB overflow buffer!\n");
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index d052abb..087cbf5 100644
+index 5cc986e..c7b76b2 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -566,6 +566,13 @@ static void __free_pages_ok(struct page *page, unsigned int order)
xen.pvops.post.patch:
b/arch/x86/include/asm/paravirt_types.h | 3 +++
b/arch/x86/kernel/pci-swiotlb.c | 5 ++---
b/arch/x86/kernel/process_32.c | 2 ++
b/arch/x86/pci/common.c | 16 ++++++++++++++++
b/arch/x86/xen/enlighten.c | 10 +++-------
drivers/pci/pci.h | 2 ++
6 files changed, 28 insertions(+), 10 deletions(-)
Index: xen.pvops.post.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.post.patch,v
retrieving revision 1.1.2.21
retrieving revision 1.1.2.22
diff -u -p -r1.1.2.21 -r1.1.2.22
--- xen.pvops.post.patch 18 Aug 2009 19:26:48 -0000 1.1.2.21
+++ xen.pvops.post.patch 20 Aug 2009 18:50:23 -0000 1.1.2.22
@@ -2,13 +2,14 @@ Reapply and merge in Fedora changes
--- a/drivers/pci/pci.h 2009-02-25 20:16:13.000000000 +0000
+++ b/drivers/pci/pci.h 2009-02-25 20:40:21.000000000 +0000
-@@ -111,8 +111,10 @@
- extern unsigned int pci_pm_d3_delay;
+@@ -111,9 +111,11 @@
#ifdef CONFIG_PCI_MSI
+ void pci_no_msi(void);
+void pci_yes_msi(void);
extern void pci_msi_init_pci_dev(struct pci_dev *dev);
#else
+ static inline void pci_no_msi(void) { }
+static inline void pci_yes_msi(void) { }
static inline void pci_msi_init_pci_dev(struct pci_dev *dev) { }
#endif
@@ -83,3 +84,31 @@ index 6af96ee..1e66b18 100644
#endif
if (xen_wants_swiotlb())
swiotlb = 1;
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index 2e58099..3ebcbb2 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -51,6 +51,7 @@
+ #include <asm/pgtable.h>
+ #include <asm/tlbflush.h>
+ #include <asm/reboot.h>
++#include <asm/stackprotector.h>
+
+ #include "xen-ops.h"
+ #include "mmu.h"
+@@ -1013,13 +1014,8 @@ asmlinkage void __init xen_start_kernel(void)
+ pv_apic_ops = xen_apic_ops;
+ pv_mmu_ops = xen_mmu_ops;
+
+-#ifdef CONFIG_X86_64
+- /*
+- * Setup percpu state. We only need to do this for 64-bit
+- * because 32-bit already has %fs set properly.
+- */
+- load_percpu_segment(0);
+-#endif
++ setup_stack_canary_segment(0);
++ switch_to_new_gdt(0);
+
+ xen_init_irq_ops();
+ xen_init_cpuid_mask();
--- fix-perf-make-man-failure.patch DELETED ---
--- patch-2.6.31-rc6-git5.bz2.sign DELETED ---
More information about the fedora-extras-commits
mailing list