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