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,
®s);
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, ®s);
@@ -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