rpms/kernel-xen-2.6/devel linux-2.6.20.14-xen-3.1.0.patch, NONE, 1.1.2.1 kernel-xen.spec, 1.33, 1.33.2.1 linux-2.6-xen-execshield.patch, 1.3, 1.3.10.1 linux-2.6-xen-iscsi-x86_64-no_iommu_init.patch, 1.1, 1.1.4.1 linux-2.6-xen-utrace.patch, 1.2, 1.2.10.1 linux-2.6-csum-missing-line.patch, 1.2, NONE linux-2.6-fix-x86_64-smp.patch, 1.1, NONE linux-2.6-kill_skbuff_hack.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
Wed Jul 18 17:01:45 UTC 2007
Author: ehabkost
Update of /cvs/pkgs/rpms/kernel-xen-2.6/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11627
Modified Files:
Tag: private-ehabkost-xen310-branch
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:
Tag: private-ehabkost-xen310-branch
linux-2.6.20.14-xen-3.1.0.patch
Removed Files:
Tag: private-ehabkost-xen310-branch
linux-2.6-csum-missing-line.patch
linux-2.6-fix-x86_64-smp.patch
linux-2.6-kill_skbuff_hack.patch
linux-2.6-xen-fix-nosegneg-detection.patch linux-2.6-xen.patch
Log Message:
Update xen patch to xen 3.1.0
linux-2.6.20.14-xen-3.1.0.patch:
--- NEW FILE linux-2.6.20.14-xen-3.1.0.patch ---
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"
@@ -1092,7 +1124,7 @@ endchoice
config PCI_BIOS
bool
- depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
+ depends on !(X86_VISWS || X86_XEN) && PCI && (PCI_GOBIOS || PCI_GOANY)
[...92831 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.33.2.1
diff -u -r1.33 -r1.33.2.1
--- kernel-xen.spec 17 Jul 2007 22:07:18 -0000 1.33
+++ kernel-xen.spec 18 Jul 2007 17:01:11 -0000 1.33.2.1
@@ -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
#
@@ -433,8 +431,6 @@
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
@@ -902,10 +898,8 @@
%patch954 -p1
%patch955 -p1
# smp/vgetcpu fixes (#238015)
-%patch956 -p1
%patch957 -p1
%patch958 -p1
-%patch959 -p1
%patch960 -p1
%endif
@@ -987,8 +981,6 @@
%patch1660 -p1
%patch1661 -p1
%patch1662 -p1
-%patch1663 -p1
-%patch1664 -p1
%patch1665 -p1
# Fix XFS umount bug.
@@ -2022,6 +2014,9 @@
# - tux.
%changelog
+* Wed Jul 18 2007 Eduardo Habkost <ehabkost at redhat.com>
+- Update xen patch to xen 3.1.0
+
* 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.3.10.1
diff -u -r1.3 -r1.3.10.1
--- linux-2.6-xen-execshield.patch 22 Mar 2007 16:21:33 -0000 1.3
+++ linux-2.6-xen-execshield.patch 18 Jul 2007 17:01:11 -0000 1.3.10.1
@@ -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 */
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.1.4.1
diff -u -r1.1 -r1.1.4.1
--- 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 18 Jul 2007 17:01:11 -0000 1.1.4.1
@@ -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.2.10.1
diff -u -r1.2 -r1.2.10.1
--- linux-2.6-xen-utrace.patch 22 Mar 2007 15:40:59 -0000 1.2
+++ linux-2.6-xen-utrace.patch 18 Jul 2007 17:01:11 -0000 1.2.10.1
@@ -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-fix-x86_64-smp.patch DELETED ---
--- linux-2.6-kill_skbuff_hack.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