rpms/kernel-xen-2.6/devel linux-2.6.20.14-xen-3.1.0.patch, 1.1, 1.2 kernel-xen.spec, 1.33, 1.34 linux-2.6-xen-execshield.patch, 1.3, 1.4 linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch, 1.1, 1.2 linux-2.6-xen-utrace.patch, 1.2, 1.3 linux-2.6-csum-missing-line.patch, 1.2, NONE linux-2.6-disable-netback-checksum.patch, 1.1, NONE linux-2.6-fix-x86_64-smp.patch, 1.1, NONE linux-2.6-forwarding_of_ip_summed.patch, 1.2, NONE linux-2.6-kill_skbuff_hack.patch, 1.2, NONE linux-2.6-treat_partial_as_unnecessary.patch, 1.2, NONE linux-2.6-use_csum_start_offset_instead.patch, 1.2, NONE linux-2.6-xen-fix-nosegneg-detection.patch, 1.1, NONE linux-2.6-xen.patch, 1.5, NONE

Eduardo Habkost (ehabkost) fedora-extras-commits at redhat.com
Fri Jul 20 20:49:51 UTC 2007


Author: ehabkost

Update of /cvs/pkgs/rpms/kernel-xen-2.6/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv7462

Modified Files:
	kernel-xen.spec linux-2.6-xen-execshield.patch 
	linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch 
	linux-2.6-xen-utrace.patch 
Added Files:
	linux-2.6.20.14-xen-3.1.0.patch 
Removed Files:
	linux-2.6-csum-missing-line.patch 
	linux-2.6-disable-netback-checksum.patch 
	linux-2.6-fix-x86_64-smp.patch 
	linux-2.6-forwarding_of_ip_summed.patch 
	linux-2.6-kill_skbuff_hack.patch 
	linux-2.6-treat_partial_as_unnecessary.patch 
	linux-2.6-use_csum_start_offset_instead.patch 
	linux-2.6-xen-fix-nosegneg-detection.patch linux-2.6-xen.patch 
Log Message:
Xen 3.1.0

- Update xen patch to xen 3.1.0
- Remove old network checksum patches. They should be
  already included in the xen patch



linux-2.6.20.14-xen-3.1.0.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.1 -r 1.2 linux-2.6.20.14-xen-3.1.0.patch
Index: linux-2.6.20.14-xen-3.1.0.patch
===================================================================
RCS file: linux-2.6.20.14-xen-3.1.0.patch
diff -N linux-2.6.20.14-xen-3.1.0.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ linux-2.6.20.14-xen-3.1.0.patch	20 Jul 2007 20:49:47 -0000	1.2
@@ -0,0 +1,93230 @@
+diff -r 4a9ef6a03fd9 -r 008004888022 arch/i386/Kconfig
+--- a/arch/i386/Kconfig	Wed Jul 18 12:23:24 2007 -0300
++++ b/arch/i386/Kconfig	Wed Jul 18 12:32:22 2007 -0300
+@@ -16,6 +16,7 @@ config X86_32
+ 
+ config GENERIC_TIME
+ 	bool
++	depends on !X86_XEN
+ 	default y
+ 
+ config LOCKDEP_SUPPORT
+@@ -107,6 +108,15 @@ config X86_PC
+ 	bool "PC-compatible"
+ 	help
+ 	  Choose this option if your computer is a standard PC or compatible.
++
++config X86_XEN
++	bool "Xen-compatible"
++	select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST
++	select X86_UP_IOAPIC if !SMP && XEN_PRIVILEGED_GUEST
++	select SWIOTLB
++	help
++	  Choose this option if you plan to run this kernel on top of the
++	  Xen Hypervisor.
+ 
+ config X86_ELAN
+ 	bool "AMD Elan"
+@@ -229,6 +239,7 @@ source "arch/i386/Kconfig.cpu"
+ 
+ config HPET_TIMER
+ 	bool "HPET Timer Support"
++	depends on !X86_XEN
+ 	help
+ 	  This enables the use of the HPET for the kernel's internal timer.
+ 	  HPET is the next generation timer replacing legacy 8254s.
+@@ -279,7 +290,7 @@ source "kernel/Kconfig.preempt"
+ 
+ config X86_UP_APIC
+ 	bool "Local APIC support on uniprocessors"
+-	depends on !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH)
++	depends on !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH || XEN_UNPRIVILEGED_GUEST)
+ 	help
+ 	  A local APIC (Advanced Programmable Interrupt Controller) is an
+ 	  integrated interrupt controller in the CPU. If you have a single-CPU
+@@ -304,12 +315,12 @@ config X86_UP_IOAPIC
+ 
+ config X86_LOCAL_APIC
+ 	bool
+-	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH
++	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)) || X86_GENERICARCH
+ 	default y
+ 
+ config X86_IO_APIC
+ 	bool
+-	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH
++	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)) || X86_GENERICARCH
+ 	default y
+ 
+ config X86_VISWS_APIC
+@@ -319,7 +330,7 @@ config X86_VISWS_APIC
+ 
+ config X86_MCE
+ 	bool "Machine Check Exception"
+-	depends on !X86_VOYAGER
++	depends on !(X86_VOYAGER || X86_XEN)
+ 	---help---
+ 	  Machine Check Exception support allows the processor to notify the
+ 	  kernel if it detects a problem (e.g. overheating, component failure).
+@@ -418,6 +429,7 @@ config X86_REBOOTFIXUPS
+ 
+ config MICROCODE
+ 	tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
++	depends on !XEN_UNPRIVILEGED_GUEST
+ 	select FW_LOADER
+ 	---help---
+ 	  If you say Y here and also to "/dev file system support" in the
+@@ -441,6 +453,7 @@ config MICROCODE_OLD_INTERFACE
+ 
+ config X86_MSR
+ 	tristate "/dev/cpu/*/msr - Model-specific register support"
++	depends on !X86_XEN
+ 	help
+ 	  This device gives privileged processes access to the x86
+ 	  Model-Specific Registers (MSRs).  It is a character device with
+@@ -455,6 +468,10 @@ config X86_CPUID
+ 	  be executed on a specific processor.  It is a character device
+ 	  with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
+ 	  /dev/cpu/31/cpuid.
++
++config SWIOTLB
++	bool
++	default n
+ 
+ source "drivers/firmware/Kconfig"
+ 
+@@ -638,6 +655,7 @@ config HIGHPTE
+ 
+ config MATH_EMULATION
+ 	bool "Math emulation"
++	depends on !X86_XEN
+ 	---help---
+ 	  Linux can emulate a math coprocessor (used for floating point
+ 	  operations) if you don't have one. 486DX and Pentium processors have
+@@ -663,6 +681,8 @@ config MATH_EMULATION
+ 
+ config MTRR
+ 	bool "MTRR (Memory Type Range Register) support"
++	depends on !XEN_UNPRIVILEGED_GUEST
++	default y if X86_XEN
+ 	---help---
+ 	  On Intel P6 family processors (Pentium Pro, Pentium II and later)
+ 	  the Memory Type Range Registers (MTRRs) may be used to control
+@@ -697,7 +717,7 @@ config MTRR
+ 
+ config EFI
+ 	bool "Boot from EFI support"
+-	depends on ACPI
++	depends on ACPI && !X86_XEN
+ 	default n
+ 	---help---
+ 	This enables the kernel to boot on EFI platforms using
+@@ -715,7 +735,7 @@ config EFI
+ 
+ config IRQBALANCE
+  	bool "Enable kernel irq balancing"
+-	depends on SMP && X86_IO_APIC
++	depends on SMP && X86_IO_APIC && !X86_XEN
+ 	default y
+ 	help
+  	  The default yes will allow the kernel to do irq load balancing.
+@@ -749,6 +769,7 @@ source kernel/Kconfig.hz
+ 
+ config KEXEC
+ 	bool "kexec system call"
++	depends on !XEN_UNPRIVILEGED_GUEST
+ 	help
+ 	  kexec is a system call that implements the ability to shutdown your
+ 	  current kernel, and to start another kernel.  It is like a reboot
+@@ -866,6 +887,7 @@ config COMPAT_VDSO
+ 	bool "Compat VDSO support"
+ 	default y
+ 	depends on !PARAVIRT
++	depends on !X86_XEN
+ 	help
+ 	  Map the VDSO to the predictable old-style address too.
+ 	---help---
+@@ -882,18 +904,20 @@ config ARCH_ENABLE_MEMORY_HOTPLUG
+ 	depends on HIGHMEM
+ 
+ menu "Power management options (ACPI, APM)"
+-	depends on !X86_VOYAGER
+-
++	depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST)
++
++if !X86_XEN
+ source kernel/power/Kconfig
++endif
+ 
+ source "drivers/acpi/Kconfig"
+ 
+ menu "APM (Advanced Power Management) BIOS Support"
+-depends on PM && !X86_VISWS
++depends on PM && !(X86_VISWS || X86_XEN)
+ 
+ config APM
+ 	tristate "APM (Advanced Power Management) BIOS support"
+-	depends on PM
++	depends on PM && PM_LEGACY
+ 	---help---
+ 	  APM is a BIOS specification for saving power using several different
+ 	  techniques. This is mostly useful for battery powered laptops with
+@@ -1078,6 +1102,7 @@ choice
+ 
+ config PCI_GOBIOS
+ 	bool "BIOS"
++	depends on !X86_XEN
+ 
+ config PCI_GOMMCONFIG
+ 	bool "MMConfig"
+@@ -1085,6 +1110,13 @@ config PCI_GODIRECT
+ config PCI_GODIRECT
+ 	bool "Direct"
+ 
++config PCI_GOXEN_FE
++	bool "Xen PCI Frontend"
++	depends on X86_XEN
++	help
++	  The PCI device frontend driver allows the kernel to import arbitrary
++	  PCI devices from a PCI backend to support PCI driver domains.
++
+ config PCI_GOANY
+ 	bool "Any"
+ 
[...92837 lines suppressed...]
++#endif
++
+ /*
+  *	The list of packet types we will receive (as opposed to discard)
+  *	and the routines to invoke.
+@@ -1392,6 +1398,43 @@ out_kfree_skb:
+ 	}						\
+ }
+ 
++#ifdef CONFIG_XEN
++inline int skb_checksum_setup(struct sk_buff *skb)
++{
++	if (skb->proto_csum_blank) {
++		if (skb->protocol != htons(ETH_P_IP))
++			goto out;
++		skb->h.raw = (unsigned char *)skb->nh.iph + 4*skb->nh.iph->ihl;
++		if (skb->h.raw >= skb->tail)
++			goto out;
++		switch (skb->nh.iph->protocol) {
++		case IPPROTO_TCP:
++			skb->csum = offsetof(struct tcphdr, check);
++			break;
++		case IPPROTO_UDP:
++			skb->csum = offsetof(struct udphdr, check);
++			break;
++		default:
++			if (net_ratelimit())
++				printk(KERN_ERR "Attempting to checksum a non-"
++				       "TCP/UDP packet, dropping a protocol"
++				       " %d packet", skb->nh.iph->protocol);
++			goto out;
++		}
++		if ((skb->h.raw + skb->csum + 2) > skb->tail)
++			goto out;
++		skb->ip_summed = CHECKSUM_PARTIAL;
++		skb->proto_csum_blank = 0;
++	}
++	return 0;
++out:
++	return -EPROTO;
++}
++#else
++inline int skb_checksum_setup(struct sk_buff *skb) { return 0; }
++#endif
++
++
+ /**
+  *	dev_queue_xmit - transmit a buffer
+  *	@skb: buffer to transmit
+@@ -1423,6 +1466,12 @@ int dev_queue_xmit(struct sk_buff *skb)
+ 	struct net_device *dev = skb->dev;
+ 	struct Qdisc *q;
+ 	int rc = -ENOMEM;
++
++ 	/* If a checksum-deferred packet is forwarded to a device that needs a
++ 	 * checksum, correct the pointers and force checksumming.
++ 	 */
++ 	if (skb_checksum_setup(skb))
++ 		goto out_kfree_skb;
+ 
+ 	/* GSO will handle the following emulations directly. */
+ 	if (netif_needs_gso(dev, skb))
+@@ -1796,6 +1845,19 @@ int netif_receive_skb(struct sk_buff *sk
+ 	if (skb->tc_verd & TC_NCLS) {
+ 		skb->tc_verd = CLR_TC_NCLS(skb->tc_verd);
+ 		goto ncls;
++	}
++#endif
++
++#ifdef CONFIG_XEN
++	switch (skb->ip_summed) {
++	case CHECKSUM_UNNECESSARY:
++		skb->proto_data_valid = 1;
++		break;
++	case CHECKSUM_PARTIAL:
++		/* XXX Implement me. */
++	default:
++		skb->proto_data_valid = 0;
++		break;
+ 	}
+ #endif
+ 
+@@ -3565,6 +3627,7 @@ EXPORT_SYMBOL(net_enable_timestamp);
+ EXPORT_SYMBOL(net_enable_timestamp);
+ EXPORT_SYMBOL(net_disable_timestamp);
+ EXPORT_SYMBOL(dev_get_flags);
++EXPORT_SYMBOL(skb_checksum_setup);
+ 
+ #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
+ EXPORT_SYMBOL(br_handle_frame_hook);
+diff -r 4a9ef6a03fd9 -r 008004888022 net/core/skbuff.c
+--- a/net/core/skbuff.c	Wed Jul 18 12:23:24 2007 -0300
++++ b/net/core/skbuff.c	Wed Jul 18 12:32:22 2007 -0300
+@@ -243,6 +243,7 @@ struct sk_buff *alloc_skb_from_cache(str
+ 	skb_shinfo(skb)->gso_size = 0;
+ 	skb_shinfo(skb)->gso_segs = 0;
+ 	skb_shinfo(skb)->gso_type = 0;
++	skb_shinfo(skb)->ip6_frag_id = 0;
+ 	skb_shinfo(skb)->frag_list = NULL;
+ out:
+ 	return skb;
+@@ -469,6 +470,10 @@ struct sk_buff *skb_clone(struct sk_buff
+ 	C(local_df);
+ 	n->cloned = 1;
+ 	n->nohdr = 0;
++#ifdef CONFIG_XEN
++	C(proto_data_valid);
++	C(proto_csum_blank);
++#endif
+ 	C(pkt_type);
+ 	C(ip_summed);
+ 	C(priority);
+@@ -643,7 +648,6 @@ struct sk_buff *pskb_copy(struct sk_buff
+ 	n->csum	     = skb->csum;
+ 	n->ip_summed = skb->ip_summed;
+ 
+-	n->truesize += skb->data_len;
+ 	n->data_len  = skb->data_len;
+ 	n->len	     = skb->len;
+ 
+diff -r 4a9ef6a03fd9 -r 008004888022 net/ipv4/netfilter/ip_nat_proto_tcp.c
+--- a/net/ipv4/netfilter/ip_nat_proto_tcp.c	Wed Jul 18 12:23:24 2007 -0300
++++ b/net/ipv4/netfilter/ip_nat_proto_tcp.c	Wed Jul 18 12:32:22 2007 -0300
+@@ -129,8 +129,15 @@ tcp_manip_pkt(struct sk_buff **pskb,
+ 	if (hdrsize < sizeof(*hdr))
+ 		return 1;
+ 
++#ifdef CONFIG_XEN
++	if ((*pskb)->proto_csum_blank)
++		nf_csum_replace4(&hdr->check, oldip, newip);
++	else
++#endif
++	{
+ 	nf_proto_csum_replace4(&hdr->check, *pskb, oldip, newip, 1);
+ 	nf_proto_csum_replace2(&hdr->check, *pskb, oldport, newport, 0);
++	}
+ 	return 1;
+ }
+ 
+diff -r 4a9ef6a03fd9 -r 008004888022 net/ipv4/netfilter/ip_nat_proto_udp.c
+--- a/net/ipv4/netfilter/ip_nat_proto_udp.c	Wed Jul 18 12:23:24 2007 -0300
++++ b/net/ipv4/netfilter/ip_nat_proto_udp.c	Wed Jul 18 12:32:22 2007 -0300
+@@ -115,8 +115,16 @@ udp_manip_pkt(struct sk_buff **pskb,
+ 	}
+ 
+ 	if (hdr->check || (*pskb)->ip_summed == CHECKSUM_PARTIAL) {
++#ifdef CONFIG_XEN
++		if ((*pskb)->proto_csum_blank)
++			nf_csum_replace4(&hdr->check, oldip, newip);
++		else
++#endif
++		{
+ 		nf_proto_csum_replace4(&hdr->check, *pskb, oldip, newip, 1);
+ 		nf_proto_csum_replace2(&hdr->check, *pskb, *portptr, newport, 0);
++		}
++
+ 		if (!hdr->check)
+ 			hdr->check = CSUM_MANGLED_0;
+ 	}
+diff -r 4a9ef6a03fd9 -r 008004888022 net/ipv4/xfrm4_output.c
+--- a/net/ipv4/xfrm4_output.c	Wed Jul 18 12:23:24 2007 -0300
++++ b/net/ipv4/xfrm4_output.c	Wed Jul 18 12:32:22 2007 -0300
+@@ -17,6 +17,8 @@
+ #include <net/ip.h>
+ #include <net/xfrm.h>
+ #include <net/icmp.h>
++
++extern int skb_checksum_setup(struct sk_buff *skb);
+ 
+ static int xfrm4_tunnel_check_size(struct sk_buff *skb)
+ {
+@@ -48,6 +50,10 @@ static int xfrm4_output_one(struct sk_bu
+ 	struct xfrm_state *x = dst->xfrm;
+ 	int err;
+ 	
++	err = skb_checksum_setup(skb);
++	if (err)
++		goto error_nolock;
++
+ 	if (skb->ip_summed == CHECKSUM_PARTIAL) {
+ 		err = skb_checksum_help(skb);
+ 		if (err)
+diff -r 4a9ef6a03fd9 -r 008004888022 scripts/Makefile.xen
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/scripts/Makefile.xen	Wed Jul 18 12:32:22 2007 -0300
+@@ -0,0 +1,14 @@
++
++# cherrypickxen($1 = allobj)
++cherrypickxen = $(foreach var, $(1), \
++		$(shell o=$(var); \
++			c=$${o%.o}-xen.c; \
++			s=$${o%.o}-xen.S; \
++			oxen=$${o%.o}-xen.o; \
++			[ -f $(srctree)/$(src)/$${c} ] || \
++			   [ -f $(srctree)/$(src)/$${s} ] \
++				&& echo $$oxen \
++				|| echo $(var) ) \
++	  )
++# filterxen($1 = allobj, $2 = noobjs)
++filterxen = $(filter-out $(2), $(1))


Index: kernel-xen.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/kernel-xen.spec,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- kernel-xen.spec	17 Jul 2007 22:07:18 -0000	1.33
+++ kernel-xen.spec	20 Jul 2007 20:49:47 -0000	1.34
@@ -372,16 +372,14 @@
 Patch910: linux-2.6-tux.patch
 
 # 950 - 999 Xen
-Patch950: linux-2.6-xen.patch
+Patch950: linux-2.6.20.14-xen-3.1.0.patch
 Patch951: linux-2.6-xen-utrace.patch
 Patch952: linux-2.6-xen-x86_64-silence-up-apic-errors.patch
 Patch954: linux-2.6-xen-execshield.patch
 Patch955: linux-2.6-xen-tux.patch
 # smp/vgetcpu fixes (#238015)
-Patch956: linux-2.6-fix-x86_64-smp.patch
 Patch957: linux-2.6-fix-x86_64-vgetcpu.patch
 Patch958: linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch
-Patch959: linux-2.6-xen-fix-nosegneg-detection.patch
 Patch960: linux-2.6-xen-blkfront-wait-add.patch
 
 #
@@ -429,13 +427,6 @@
 Patch1610: linux-2.6-input-kill-stupid-messages.patch
 Patch1620: linux-2.6-serial-tickle-nmi.patch
 Patch1650: linux-2.6-serial-460800.patch
-# checksum fixes (bug #223258)
-Patch1660: linux-2.6-forwarding_of_ip_summed.patch
-Patch1661: linux-2.6-use_csum_start_offset_instead.patch
-Patch1662: linux-2.6-treat_partial_as_unnecessary.patch
-Patch1663: linux-2.6-kill_skbuff_hack.patch
-Patch1664: linux-2.6-csum-missing-line.patch
-Patch1665: linux-2.6-disable-netback-checksum.patch
 
 Patch1681: linux-2.6-xfs-umount-fix.patch
 Patch1682: linux-2.6-xfs_attr2.patch
@@ -902,10 +893,8 @@
 %patch954 -p1
 %patch955 -p1
 # smp/vgetcpu fixes (#238015)
-%patch956 -p1
 %patch957 -p1
 %patch958 -p1
-%patch959 -p1
 %patch960 -p1
 %endif
 
@@ -983,14 +972,6 @@
 # Allow to use 480600 baud on 16C950 UARTs
 %patch1650 -p1
 
-# checksum fixes (bug #223258)
-%patch1660 -p1
-%patch1661 -p1
-%patch1662 -p1
-%patch1663 -p1
-%patch1664 -p1
-%patch1665 -p1
-
 # Fix XFS umount bug.
 %patch1681 -p1
 # Fix attr2 corruption with btree data extents
@@ -2022,6 +2003,11 @@
 #  - tux.
 
 %changelog
+* Wed Jul 20 2007 Eduardo Habkost <ehabkost at redhat.com>
+- Update xen patch to xen 3.1.0
+- Remove old network checksum patches. They should be
+  already included in the xen patch
+
 * Tue Jul 17 2007 Eduardo Habkost <ehabkost at redhat.com>
 - Make blkfront module wait for the disk to be added (bug #248462)
 - Rebase to 2.6.20.14

linux-2.6-xen-execshield.patch:

Index: linux-2.6-xen-execshield.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-execshield.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-xen-execshield.patch	22 Mar 2007 16:21:33 -0000	1.3
+++ linux-2.6-xen-execshield.patch	20 Jul 2007 20:49:47 -0000	1.4
@@ -1,24 +1,8 @@
-diff -r 095d53b0d1a6 arch/i386/kernel/cpu/common-xen.c
---- a/arch/i386/kernel/cpu/common-xen.c	Tue Jul 25 21:53:33 2006 +0200
-+++ b/arch/i386/kernel/cpu/common-xen.c	Tue Jul 25 23:02:25 2006 +0200
-@@ -431,6 +431,13 @@ void __cpuinit identify_cpu(struct cpuin
- 	if (disable_pse)
- 		clear_bit(X86_FEATURE_PSE, c->x86_capability);
- 
-+	if (exec_shield != 0) {
-+#ifdef CONFIG_HIGHMEM64G   /* NX implies PAE */
-+		if (!test_bit(X86_FEATURE_NX, c->x86_capability))
-+#endif
-+		clear_bit(X86_FEATURE_SEP, c->x86_capability);
-+	}
-+
- 	/* If the model name is still unset, do table lookup. */
- 	if ( !c->x86_model_id[0] ) {
- 		char *p;
-diff -r 095d53b0d1a6 arch/i386/kernel/process-xen.c
---- a/arch/i386/kernel/process-xen.c	Tue Jul 25 21:53:33 2006 +0200
-+++ b/arch/i386/kernel/process-xen.c	Tue Jul 25 23:02:25 2006 +0200
-@@ -528,6 +528,9 @@ struct task_struct fastcall * __switch_t
+Index: patching/arch/i386/kernel/process-xen.c
+===================================================================
+--- patching.orig/arch/i386/kernel/process-xen.c
++++ patching/arch/i386/kernel/process-xen.c
+@@ -602,6 +602,9 @@ struct task_struct fastcall * __switch_t
  	else BUG_ON(!(read_cr0() & 8));
  #endif
  
@@ -28,7 +12,7 @@
  	/*
  	 * Reload esp0.
  	 * This is load_esp0(tss, next) with a multicall.
-@@ -810,3 +813,60 @@ unsigned long arch_align_stack(unsigned 
+@@ -879,3 +882,60 @@ unsigned long arch_align_stack(unsigned 
  		sp -= get_random_int() % 8192;
  	return sp & ~0xf;
  }
@@ -89,9 +73,10 @@
 +		current->mm->brk = new_brk;
 +}
 +
-diff -r 095d53b0d1a6 arch/i386/kernel/smp-xen.c
---- a/arch/i386/kernel/smp-xen.c	Tue Jul 25 21:53:33 2006 +0200
-+++ b/arch/i386/kernel/smp-xen.c	Tue Jul 25 23:02:25 2006 +0200
+Index: patching/arch/i386/kernel/smp-xen.c
+===================================================================
+--- patching.orig/arch/i386/kernel/smp-xen.c
++++ patching/arch/i386/kernel/smp-xen.c
 @@ -23,6 +23,7 @@
  
  #include <asm/mtrr.h>
@@ -100,7 +85,7 @@
  #if 0
  #include <mach_apic.h>
  #endif
-@@ -285,6 +286,8 @@ irqreturn_t smp_invalidate_interrupt(int
+@@ -286,6 +287,8 @@ irqreturn_t smp_invalidate_interrupt(int
  	unsigned long cpu;
  
  	cpu = get_cpu();
@@ -109,10 +94,11 @@
  
  	if (!cpu_isset(cpu, flush_cpumask))
  		goto out;
-diff -r 095d53b0d1a6 arch/i386/kernel/traps-xen.c
---- a/arch/i386/kernel/traps-xen.c	Tue Jul 25 21:53:33 2006 +0200
-+++ b/arch/i386/kernel/traps-xen.c	Tue Jul 25 23:02:25 2006 +0200
-@@ -558,11 +558,89 @@ DO_ERROR(11, SIGBUS,  "segment not prese
+Index: patching/arch/i386/kernel/traps-xen.c
+===================================================================
+--- patching.orig/arch/i386/kernel/traps-xen.c
++++ patching/arch/i386/kernel/traps-xen.c
+@@ -570,11 +570,89 @@ DO_ERROR(10, SIGSEGV, "invalid TSS", inv
  DO_ERROR(11, SIGBUS,  "segment not present", segment_not_present)
  DO_ERROR(12, SIGBUS,  "stack segment", stack_segment)
  DO_ERROR_INFO(17, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0)
@@ -203,7 +189,7 @@
  	current->thread.error_code = error_code;
  	current->thread.trap_no = 13;
  
-@@ -572,17 +650,31 @@ fastcall void __kprobes do_general_prote
+@@ -584,17 +662,31 @@ fastcall void __kprobes do_general_prote
  	if (!user_mode(regs))
  		goto gp_in_kernel;
  
@@ -235,10 +221,11 @@
  	if (!fixup_exception(regs)) {
  		if (notify_die(DIE_GPF, "general protection fault", regs,
  				error_code, 13, SIGSEGV) == NOTIFY_STOP)
-diff -uNp linux-2.6.19.noarch/arch/i386/mm/init-xen.c.orig linux-2.6.19.noarch/arch/i386/mm/init-xen.c
---- linux-2.6.19.noarch/arch/i386/mm/init-xen.c.orig	2006-12-23 20:55:44.000000000 +0100
-+++ linux-2.6.19.noarch/arch/i386/mm/init-xen.c	2006-12-23 21:12:52.000000000 +0100
-@@ -465,7 +465,7 @@ EXPORT_SYMBOL(__supported_pte_mask);
+Index: patching/arch/i386/mm/init-xen.c
+===================================================================
+--- patching.orig/arch/i386/mm/init-xen.c
++++ patching/arch/i386/mm/init-xen.c
+@@ -463,7 +463,7 @@ EXPORT_SYMBOL(__supported_pte_mask);
   * Control non executable mappings.
   *
   * on      Enable
@@ -247,7 +234,7 @@
   */
  static int __init noexec_setup(char *str)
  {
-@@ -477,6 +477,7 @@ static int __init noexec_setup(char *str
+@@ -475,6 +475,7 @@ static int __init noexec_setup(char *str
  	} else if (!strcmp(str,"off")) {
  		disable_nx = 1;
  		__supported_pte_mask &= ~_PAGE_NX;
@@ -255,7 +242,7 @@
  	} else
  		return -EINVAL;
  
-@@ -548,7 +549,10 @@ void __init paging_init(void)
+@@ -546,7 +547,10 @@ void __init paging_init(void)
  	set_nx();
  	if (nx_enabled)
  		printk("NX (Execute Disable) protection: active\n");
@@ -266,10 +253,11 @@
  
  	pagetable_init();
  
-diff -r 095d53b0d1a6 arch/x86_64/kernel/process-xen.c
---- a/arch/x86_64/kernel/process-xen.c	Tue Jul 25 21:53:33 2006 +0200
-+++ b/arch/x86_64/kernel/process-xen.c	Tue Jul 25 23:02:25 2006 +0200
-@@ -590,12 +590,6 @@ void set_personality_64bit(void)
+Index: patching/arch/x86_64/kernel/process-xen.c
+===================================================================
+--- patching.orig/arch/x86_64/kernel/process-xen.c
++++ patching/arch/x86_64/kernel/process-xen.c
+@@ -698,12 +698,6 @@ void set_personality_64bit(void)
  
  	/* Make sure to be in 64bit mode */
  	clear_thread_flag(TIF_IA32); 
@@ -282,10 +270,11 @@
  }
  
  asmlinkage long sys_fork(struct pt_regs *regs)
-diff
---- linux-2.6.orig/arch/x86_64/kernel/setup64-xen.c
-+++ linux-2.6/arch/x86_64/kernel/setup64-xen.c
-@@ -40,46 +40,6 @@ unsigned long __supported_pte_mask __rea
+Index: patching/arch/x86_64/kernel/setup64-xen.c
+===================================================================
+--- patching.orig/arch/x86_64/kernel/setup64-xen.c
++++ patching/arch/x86_64/kernel/setup64-xen.c
+@@ -49,46 +49,6 @@ unsigned long __supported_pte_mask __rea
  EXPORT_SYMBOL(__supported_pte_mask);
  static int do_not_nx __cpuinitdata = 0;
  
@@ -332,57 +321,11 @@
  /*
   * Great future plan:
   * Declare PDA itself and support (irqstack,tss,pgd) as per cpu data.
-diff -r 095d53b0d1a6 arch/x86_64/mm/fault-xen.c
---- a/arch/x86_64/mm/fault-xen.c	Tue Jul 25 21:53:33 2006 +0200
-+++ b/arch/x86_64/mm/fault-xen.c	Tue Jul 25 23:02:25 2006 +0200
-@@ -114,7 +114,7 @@ static noinline int is_prefetch(struct p
- 	instr = (unsigned char *)convert_rip_to_linear(current, regs);
- 	max_instr = instr + 15;
- 
--	if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE)
-+	if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE64)
- 		return 0;
- 
- 	while (scan_more && instr < max_instr) { 
-diff -r 095d53b0d1a6 include/asm-i386/mach-xen/asm/desc.h
---- a/include/asm-i386/mach-xen/asm/desc.h	Tue Jul 25 21:53:33 2006 +0200
-+++ b/include/asm-i386/mach-xen/asm/desc.h	Tue Jul 25 23:02:25 2006 +0200
-@@ -159,6 +159,20 @@ static inline unsigned long get_desc_bas
- 	return base;
- }
- 
-+static inline void set_user_cs(struct desc_struct *desc, unsigned long limit)
-+{
-+	limit = (limit - 1) / PAGE_SIZE;
-+	desc->a = limit & 0xffff;
-+	desc->b = (limit & 0xf0000) | 0x00c0fb00;
-+}
-+
-+#define load_user_cs_desc(cpu, mm) \
-+        HYPERVISOR_update_descriptor(virt_to_machine(&get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]), (u64)(mm)->context.user_cs.a | ((u64)(mm)->context.user_cs.b) << 32);
-+
-+extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
-+extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
-+extern void arch_flush_exec_range(struct mm_struct *mm);
-+
- #else /* __ASSEMBLY__ */
- 
- /*
-diff -r 095d53b0d1a6 include/asm-i386/mach-xen/asm/pgalloc.h
---- a/include/asm-i386/mach-xen/asm/pgalloc.h	Tue Jul 25 21:53:33 2006 +0200
-+++ b/include/asm-i386/mach-xen/asm/pgalloc.h	Tue Jul 25 23:02:25 2006 +0200
-@@ -2,6 +2,7 @@
- #define _I386_PGALLOC_H
- 
- #include <asm/fixmap.h>
-+#include <asm/desc.h>
- #include <linux/threads.h>
- #include <linux/mm.h>		/* for struct page */
- #include <asm/io.h>		/* for phys_to_virt and page_to_pseudophys */
-diff -r 095d53b0d1a6 include/asm-i386/mach-xen/asm/processor.h
---- a/include/asm-i386/mach-xen/asm/processor.h	Tue Jul 25 21:53:33 2006 +0200
-+++ b/include/asm-i386/mach-xen/asm/processor.h	Tue Jul 25 23:02:25 2006 +0200
-@@ -333,7 +333,10 @@ extern int bootloader_type;
+Index: patching/include/asm-i386/mach-xen/asm/processor.h
+===================================================================
+--- patching.orig/include/asm-i386/mach-xen/asm/processor.h
++++ patching/include/asm-i386/mach-xen/asm/processor.h
+@@ -280,7 +280,10 @@ extern int bootloader_type;
  /* This decides where the kernel will search for a free chunk of vm
   * space during mmap's.
   */
@@ -394,7 +337,7 @@
  
  #define HAVE_ARCH_PICK_MMAP_LAYOUT
  
-@@ -526,6 +529,9 @@ static inline void __load_esp0(struct ts
+@@ -460,6 +463,9 @@ struct thread_struct {
  	regs->xcs = __USER_CS;					\
  	regs->eip = new_eip;					\
  	regs->esp = new_esp;					\
@@ -403,10 +346,11 @@
 +	preempt_enable();					\
  } while (0)
  
- /*
-diff -r 095d53b0d1a6 include/asm-x86_64/mach-xen/asm/pgalloc.h
---- a/include/asm-x86_64/mach-xen/asm/pgalloc.h	Tue Jul 25 21:53:33 2006 +0200
-+++ b/include/asm-x86_64/mach-xen/asm/pgalloc.h	Tue Jul 25 23:02:25 2006 +0200
+ /* Forward declaration, a strange C thing */
+Index: patching/include/asm-x86_64/mach-xen/asm/pgalloc.h
+===================================================================
+--- patching.orig/include/asm-x86_64/mach-xen/asm/pgalloc.h
++++ patching/include/asm-x86_64/mach-xen/asm/pgalloc.h
 @@ -8,6 +8,14 @@
  #include <asm/io.h>		/* for phys_to_virt and page_to_pseudophys */
  
@@ -422,3 +366,26 @@
  void make_page_readonly(void *va, unsigned int feature);
  void make_page_writable(void *va, unsigned int feature);
  void make_pages_readonly(void *va, unsigned int nr, unsigned int feature);
+Index: patching/include/asm-i386/desc.h
+===================================================================
+--- patching.orig/include/asm-i386/desc.h
++++ patching/include/asm-i386/desc.h
+@@ -206,9 +206,18 @@ static inline void set_user_cs(struct de
+ 	desc->b = (limit & 0xf0000) | 0x00c0fb00;
+ }
+ 
++#ifdef CONFIG_XEN
++
++#define load_user_cs_desc(cpu, mm) \
++        HYPERVISOR_update_descriptor(virt_to_machine(&get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS]), (u64)(mm)->context.user_cs.a | ((u64)(mm)->context.user_cs.b) << 32);
++
++#else /* CONFIG_XEN */
++
+ #define load_user_cs_desc(cpu, mm) \
+ 	get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs
+ 
++#endif /* CONFIG_XEN */
++
+ extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
+ extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
+ extern void arch_flush_exec_range(struct mm_struct *mm);

linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch:

Index: linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch	22 May 2007 13:00:14 -0000	1.1
+++ linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch	20 Jul 2007 20:49:47 -0000	1.2
@@ -7,21 +7,20 @@
 to Mark McLoughlin <markmc at redhat.com> for spotting the issue and
 proposing a fix.
 
-Index: linux-2.6.20.i386/arch/i386/kernel/pci-dma-xen.c
+Index: patching/arch/i386/kernel/pci-dma-xen.c
 ===================================================================
---- linux-2.6.20.i386.orig/arch/i386/kernel/pci-dma-xen.c
-+++ linux-2.6.20.i386/arch/i386/kernel/pci-dma-xen.c
-@@ -21,6 +21,9 @@
- #include <asm/bug.h>
+--- patching.orig/arch/i386/kernel/pci-dma-xen.c
++++ patching/arch/i386/kernel/pci-dma-xen.c
+@@ -22,6 +22,8 @@
  
  #ifdef __x86_64__
-+#include <asm/proto.h>
+ #include <asm/proto.h>
 +#include <asm/calgary.h>
 +
+ 
  int iommu_merge __read_mostly = 0;
  EXPORT_SYMBOL(iommu_merge);
- 
-@@ -69,6 +72,22 @@ void __init pci_iommu_alloc(void)
+@@ -71,6 +73,22 @@ void __init pci_iommu_alloc(void)
  #endif
  }
  

linux-2.6-xen-utrace.patch:

Index: linux-2.6-xen-utrace.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel-xen-2.6/devel/linux-2.6-xen-utrace.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6-xen-utrace.patch	22 Mar 2007 15:40:59 -0000	1.2
+++ linux-2.6-xen-utrace.patch	20 Jul 2007 20:49:47 -0000	1.3
@@ -1,7 +1,8 @@
-diff -urNp linux-2.6.17.previous/arch/i386/kernel/entry-xen.S linux-2.6.17.noarch/arch/i386/kernel/entry-xen.S
---- linux-2.6.17.previous/arch/i386/kernel/entry-xen.S	2006-07-19 16:27:09.000000000 +0200
-+++ linux-2.6.17.noarch/arch/i386/kernel/entry-xen.S	2006-07-19 17:48:25.000000000 +0200
-@@ -340,7 +340,7 @@ sysenter_past_esp:
+Index: patching/arch/i386/kernel/entry-xen.S
+===================================================================
+--- patching.orig/arch/i386/kernel/entry-xen.S
++++ patching/arch/i386/kernel/entry-xen.S
+@@ -356,7 +356,7 @@ sysenter_past_esp:
  	GET_THREAD_INFO(%ebp)
  
  	/* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */
@@ -10,7 +11,7 @@
  	jnz syscall_trace_entry
  	cmpl $(nr_syscalls), %eax
  	jae syscall_badsys
-@@ -389,7 +389,7 @@ ENTRY(system_call)
+@@ -414,7 +414,7 @@ ENTRY(system_call)
  no_singlestep:
  					# system call tracing in operation / emulation
  	/* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */
@@ -19,7 +20,7 @@
  	jnz syscall_trace_entry
  	cmpl $(nr_syscalls), %eax
  	jae syscall_badsys
-@@ -539,9 +539,6 @@ syscall_trace_entry:
+@@ -600,9 +600,6 @@ syscall_trace_entry:
  	movl %esp, %eax
  	xorl %edx,%edx
  	call do_syscall_trace
@@ -29,10 +30,11 @@
  	movl PT_ORIG_EAX(%esp), %eax
  	cmpl $(nr_syscalls), %eax
  	jnae syscall_call
-diff -urNp linux-2.6.17.previous/arch/i386/kernel/process-xen.c linux-2.6.17.noarch/arch/i386/kernel/process-xen.c
---- linux-2.6.17.previous/arch/i386/kernel/process-xen.c	2006-07-19 16:27:11.000000000 +0200
-+++ linux-2.6.17.noarch/arch/i386/kernel/process-xen.c	2006-07-19 17:46:21.000000000 +0200
-@@ -657,9 +657,6 @@ asmlinkage int sys_execve(struct pt_regs
+Index: patching/arch/i386/kernel/process-xen.c
+===================================================================
+--- patching.orig/arch/i386/kernel/process-xen.c
++++ patching/arch/i386/kernel/process-xen.c
+@@ -724,9 +724,6 @@ asmlinkage int sys_execve(struct pt_regs
  			(char __user * __user *) regs.edx,
  			&regs);
  	if (error == 0) {
@@ -42,9 +44,10 @@
  		/* Make sure we don't return using sysenter.. */
  		set_thread_flag(TIF_IRET);
  	}
-diff -urNp linux-2.6.17.previous/arch/x86_64/ia32/ia32entry-xen.S linux-2.6.17.noarch/arch/x86_64/ia32/ia32entry-xen.S
---- linux-2.6.17.previous/arch/x86_64/ia32/ia32entry-xen.S	2006-07-19 16:27:10.000000000 +0200
-+++ linux-2.6.17.noarch/arch/x86_64/ia32/ia32entry-xen.S	2006-07-19 17:53:16.000000000 +0200
+Index: patching/arch/x86_64/ia32/ia32entry-xen.S
+===================================================================
+--- patching.orig/arch/x86_64/ia32/ia32entry-xen.S
++++ patching/arch/x86_64/ia32/ia32entry-xen.S
 @@ -444,7 +444,7 @@ ia32_sys_call_table:
  	.quad sys_setuid16
  	.quad sys_getuid16
@@ -54,10 +57,11 @@
  	.quad sys_alarm
  	.quad sys_fstat	/* (old)fstat */
  	.quad sys_pause
-diff -urNp linux-2.6.17.previous/arch/x86_64/kernel/process-xen.c linux-2.6.17.noarch/arch/x86_64/kernel/process-xen.c
---- linux-2.6.17.previous/arch/x86_64/kernel/process-xen.c	2006-07-19 16:27:11.000000000 +0200
-+++ linux-2.6.17.noarch/arch/x86_64/kernel/process-xen.c	2006-07-19 17:52:39.000000000 +0200
-@@ -580,11 +580,6 @@ long sys_execve(char __user *name, char 
+Index: patching/arch/x86_64/kernel/process-xen.c
+===================================================================
+--- patching.orig/arch/x86_64/kernel/process-xen.c
++++ patching/arch/x86_64/kernel/process-xen.c
+@@ -688,11 +688,6 @@ long sys_execve(char __user *name, char 
  	if (IS_ERR(filename)) 
  		return error;
  	error = do_execve(filename, argv, envp, &regs); 
@@ -69,10 +73,11 @@
  	putname(filename);
  	return error;
  }
-diff -urNp linux-2.6.17.previous/arch/x86_64/kernel/traps-xen.c linux-2.6.17.noarch/arch/x86_64/kernel/traps-xen.c
---- linux-2.6.17.previous/arch/x86_64/kernel/traps-xen.c	2006-07-19 16:27:10.000000000 +0200
-+++ linux-2.6.17.noarch/arch/x86_64/kernel/traps-xen.c	2006-07-19 17:51:56.000000000 +0200
-@@ -863,14 +863,6 @@ asmlinkage void __kprobes do_debug(struc
+Index: patching/arch/x86_64/kernel/traps-xen.c
+===================================================================
+--- patching.orig/arch/x86_64/kernel/traps-xen.c
++++ patching/arch/x86_64/kernel/traps-xen.c
+@@ -870,14 +870,6 @@ asmlinkage void __kprobes do_debug(struc
  		 */
                  if (!user_mode(regs))
                         goto clear_TF_reenable;
@@ -87,24 +92,3 @@
  	}
  
  	/* Ok, finally something we can handle */
-diff -urNp linux-2.6.17.previous/arch/x86_64/mm/fault-xen.c linux-2.6.17.noarch/arch/x86_64/mm/fault-xen.c
---- linux-2.6.17.previous/arch/x86_64/mm/fault-xen.c	2006-07-19 16:27:11.000000000 +0200
-+++ linux-2.6.17.noarch/arch/x86_64/mm/fault-xen.c	2006-07-19 18:01:52.000000000 +0200
-@@ -11,7 +11,7 @@
- #include <linux/errno.h>
- #include <linux/string.h>
- #include <linux/types.h>
--#include <linux/ptrace.h>
-+#include <linux/tracehook.h>
- #include <linux/mman.h>
- #include <linux/mm.h>
- #include <linux/smp.h>
-@@ -250,7 +250,7 @@ int unhandled_signal(struct task_struct 
- {
- 	if (tsk->pid == 1)
- 		return 1;
--	if (tsk->ptrace & PT_PTRACED)
-+	if (tracehook_consider_fatal_signal(tsk, sig))
- 		return 0;
- 	return (tsk->sighand->action[sig-1].sa.sa_handler == SIG_IGN) ||
- 		(tsk->sighand->action[sig-1].sa.sa_handler == SIG_DFL);


--- linux-2.6-csum-missing-line.patch DELETED ---


--- linux-2.6-disable-netback-checksum.patch DELETED ---


--- linux-2.6-fix-x86_64-smp.patch DELETED ---


--- linux-2.6-forwarding_of_ip_summed.patch DELETED ---


--- linux-2.6-kill_skbuff_hack.patch DELETED ---


--- linux-2.6-treat_partial_as_unnecessary.patch DELETED ---


--- linux-2.6-use_csum_start_offset_instead.patch DELETED ---


--- linux-2.6-xen-fix-nosegneg-detection.patch DELETED ---


--- linux-2.6-xen.patch DELETED ---




More information about the scm-commits mailing list