[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Merge with latest xen-unstable



# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 1efe6f4163ee6c7740719da717a2bd8006a679ca
# Parent  24dd9a53dd95c062f9f4a68489e00a2c3d7bab56
# Parent  0db6a59abb955be772d94ba32fe1a34a26db86da
Merge with latest xen-unstable

diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.4-xen-sparse/arch/xen/Makefile
--- a/linux-2.4-xen-sparse/arch/xen/Makefile    Mon Aug  1 19:11:00 2005
+++ b/linux-2.4-xen-sparse/arch/xen/Makefile    Mon Aug  1 19:19:36 2005
@@ -61,7 +61,7 @@
 SUBDIRS += arch/xen/drivers/evtchn
 SUBDIRS += arch/xen/drivers/blkif
 SUBDIRS += arch/xen/drivers/netif
-SUBDIRS += arch/xen/drivers/usbif
+#SUBDIRS += arch/xen/drivers/usbif
 SUBDIRS += arch/xen/drivers/balloon
 ifdef CONFIG_XEN_PRIVILEGED_GUEST
 SUBDIRS += arch/xen/drivers/dom0 
diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.4-xen-sparse/arch/xen/kernel/time.c
--- a/linux-2.4-xen-sparse/arch/xen/kernel/time.c       Mon Aug  1 19:11:00 2005
+++ b/linux-2.4-xen-sparse/arch/xen/kernel/time.c       Mon Aug  1 19:19:36 2005
@@ -225,21 +225,30 @@
  */
 static void __get_time_values_from_xen(void)
 {
-    do {
-        shadow_time_version = HYPERVISOR_shared_info->time_version2;
-        rmb();
-        shadow_tv.tv_sec    = HYPERVISOR_shared_info->wc_sec;
-        shadow_tv.tv_usec   = HYPERVISOR_shared_info->wc_usec;
-        shadow_tsc_stamp    = 
-            (u32)(HYPERVISOR_shared_info->tsc_timestamp >> rdtsc_bitshift);
-        shadow_system_time  = HYPERVISOR_shared_info->system_time;
-        rmb();
-    }
-    while ( shadow_time_version != HYPERVISOR_shared_info->time_version1 );
-}
-
-#define TIME_VALUES_UP_TO_DATE \
- ({ rmb(); (shadow_time_version == HYPERVISOR_shared_info->time_version2); })
+       shared_info_t           *s = HYPERVISOR_shared_info;
+       struct vcpu_time_info   *src;
+       struct shadow_time_info *dst;
+
+       src = &s->vcpu_time[smp_processor_id()];
+       dst = &per_cpu(shadow_time, smp_processor_id());
+
+       do {
+               dst->version = src->time_version2;
+               rmb();
+               dst->tsc_timestamp     = src->tsc_timestamp;
+               dst->system_timestamp  = src->system_time;
+               dst->tsc_to_nsec_mul   = src->tsc_to_system_mul;
+               dst->tsc_shift         = src->tsc_shift;
+               rmb();
+       }
+       while (dst->version != src->time_version1);
+
+       dst->tsc_to_usec_mul = dst->tsc_to_nsec_mul / 1000;
+
+       if ((shadow_tv.tv_sec != s->wc_sec) ||
+           (shadow_tv.tv_usec != s->wc_usec))
+               update_wallclock();
+}
 
 
 /*
@@ -263,6 +272,17 @@
     return (unsigned long)delta;
 }
 
+static inline int time_values_up_to_date()
+{
+       struct vcpu_time_info   *src;
+       struct shadow_time_info *dst;
+
+       src = &HYPERVISOR_shared_info->vcpu_time[smp_processor_id()];
+       dst = &per_cpu(shadow_time, smp_processor_id());
+
+       return (dst->version == src->time_version2);
+}
+
 
 /*
  * Returns the current time-of-day in UTC timeval format.
@@ -286,7 +306,7 @@
     __normalize_time(&_tv.tv_sec, &nsec);
     _tv.tv_usec += (long)nsec / 1000L;
 
-    if ( unlikely(!TIME_VALUES_UP_TO_DATE) )
+    if ( unlikely(!time_values_up_to_date()) )
     {
         /*
          * We may have blocked for a long time, rendering our calculations
diff -r 24dd9a53dd95 -r 1efe6f4163ee linux-2.4-xen-sparse/mkbuildtree
--- a/linux-2.4-xen-sparse/mkbuildtree  Mon Aug  1 19:11:00 2005
+++ b/linux-2.4-xen-sparse/mkbuildtree  Mon Aug  1 19:19:36 2005
@@ -102,8 +102,8 @@
 relative_lndir ${RS}
 rm -f mkbuildtree
 
-set ${RS}/../linux-2.6.*-xen-sparse
-[ "$1" == "${RS}/../linux-2.6.*-xen-parse" ] && { echo "no Linux 2.6 sparse 
tree at ${RS}/../linux-2.6.*-xen-sparse"; exit 1; }
+set ${RS}/../linux-2.6-xen-sparse
+[ "$1" == "${RS}/../linux-2.6-xen-parse" ] && { echo "no Linux 2.6 sparse tree 
at ${RS}/../linux-2.6-xen-sparse"; exit 1; }
 LINUX_26="$1"
 
 
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32
--- a/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32       Mon Aug 
 1 19:11:00 2005
+++ b/linux-2.6-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32       Mon Aug 
 1 19:19:36 2005
@@ -18,8 +18,8 @@
 CONFIG_XEN_NETDEV_BACKEND=y
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
-# CONFIG_XEN_NETDEV_GRANT_TX is not set
-# CONFIG_XEN_NETDEV_GRANT_RX is not set
+CONFIG_XEN_NETDEV_GRANT_TX=y
+ CONFIG_XEN_NETDEV_GRANT_RX=y
 # CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
 # CONFIG_XEN_BLKDEV_TAP is not set
 # CONFIG_XEN_SHADOW_MODE is not set
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32
--- a/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32       Mon Aug 
 1 19:11:00 2005
+++ b/linux-2.6-xen-sparse/arch/xen/configs/xenU_defconfig_x86_32       Mon Aug 
 1 19:19:36 2005
@@ -15,8 +15,8 @@
 CONFIG_XEN_BLKDEV_GRANT=y
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
-# CONFIG_XEN_NETDEV_GRANT_TX is not set
-# CONFIG_XEN_NETDEV_GRANT_RX is not set
+CONFIG_XEN_NETDEV_GRANT_TX=y
+CONFIG_XEN_NETDEV_GRANT_RX=y
 # CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
 # CONFIG_XEN_BLKDEV_TAP is not set
 # CONFIG_XEN_SHADOW_MODE is not set
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c  Mon Aug  1 19:11:00 2005
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/time.c  Mon Aug  1 19:19:36 2005
@@ -295,14 +295,11 @@
        struct vcpu_time_info   *src;
        struct shadow_time_info *dst;
 
-       src = &HYPERVISOR_shared_info->vcpu_time[smp_processor_id()];
-       dst = &per_cpu(shadow_time, smp_processor_id());
+       src = &HYPERVISOR_shared_info->vcpu_time[cpu]; 
+       dst = &per_cpu(shadow_time, cpu); 
 
        return (dst->version == src->time_version2);
 }
-
-#define TIME_VALUES_UP_TO_DATE \
- ({ rmb(); (shadow_time_version == HYPERVISOR_shared_info->time_version2); })
 
 /*
  * This is a special lock that is owned by the CPU and holds the index
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/arch/xen/i386/kernel/traps.c
--- a/linux-2.6-xen-sparse/arch/xen/i386/kernel/traps.c Mon Aug  1 19:11:00 2005
+++ b/linux-2.6-xen-sparse/arch/xen/i386/kernel/traps.c Mon Aug  1 19:19:36 2005
@@ -90,9 +90,7 @@
 
 static int kstack_depth_to_print = 24;
 struct notifier_block *i386die_chain;
-DEFINE_SPINLOCK(die_notifier_lock);
-EXPORT_SYMBOL(die_notifier_lock);
-EXPORT_SYMBOL(i386die_chain);
+static DEFINE_SPINLOCK(die_notifier_lock);
 
 int register_die_notifier(struct notifier_block *nb)
 {
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      Mon Aug  1 
19:11:00 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c      Mon Aug  1 
19:19:36 2005
@@ -329,11 +329,11 @@
                 buffer_ma >> PAGE_SHIFT;
 
             ring_req->frame_and_sects[ring_req->nr_segments++] =
-                (((u32) ref) << 16) | (fsect << 3) | lsect;
+                blkif_fas_from_gref(ref, fsect, lsect);
 
 #else
             ring_req->frame_and_sects[ring_req->nr_segments++] =
-                buffer_ma | (fsect << 3) | lsect;
+                blkif_fas(buffer_ma, fsect, lsect);
 #endif
         }
     }
@@ -832,10 +832,10 @@
                 buffer_ma >> PAGE_SHIFT;
 
             req->frame_and_sects[req->nr_segments] =
-                (((u32) ref ) << 16) | (fsect << 3) | lsect;
+                blkif_fas_from_gref(ref, fsect, lsect);
 #else
             req->frame_and_sects[req->nr_segments] =
-                buffer_ma | (fsect << 3) | lsect;
+                blkif_fas(buffer_ma, fsect, lsect);
 #endif
             if ( ++req->nr_segments < BLKIF_MAX_SEGMENTS_PER_REQUEST )
                 sg_next_sect += nr_sectors;
@@ -887,9 +887,9 @@
 
     blk_shadow[xid].frame[0] = buffer_ma >> PAGE_SHIFT;
 
-    req->frame_and_sects[0] = (((u32) ref)<<16)  | (fsect<<3) | lsect;
+    req->frame_and_sects[0] = blkif_fas_from_gref(ref, fsect, lsect);
 #else
-    req->frame_and_sects[0] = buffer_ma | (fsect<<3) | lsect;
+    req->frame_and_sects[0] = blkif_fas(buffer_ma, fsect, lsect);
 #endif
 
     /* Keep a private copy so we can reissue requests when recovering. */    
@@ -1057,7 +1057,7 @@
 
     gnttab_grant_foreign_access_ref( ref, rdomid, address >> PAGE_SHIFT, 0 );
 
-    req->frame_and_sects[0] = (((u32) ref) << 16) | 7;
+    req->frame_and_sects[0] = blkif_fas_from_gref(ref, 0, (PAGE_SIZE/512)-1);
 
     blkif_control_send(req, rsp);
 }
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c
--- a/linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c   Mon Aug  1 19:11:00 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/blkfront/vbd.c   Mon Aug  1 19:19:36 2005
@@ -137,7 +137,7 @@
     blkif_control_probe_send(&req, &rsp,
                              (unsigned long)(virt_to_machine(buf)));
 #else
-    req.frame_and_sects[0] = virt_to_machine(buf) | 7;
+    req.frame_and_sects[0] = blkif_fas(virt_to_machine(buf), 0, 
((PAGE_SIZE/512)-1);
 
     blkif_control_send(&req, &rsp);
 #endif
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
linux-2.6-xen-sparse/include/asm-xen/hypervisor.h
--- a/linux-2.6-xen-sparse/include/asm-xen/hypervisor.h Mon Aug  1 19:11:00 2005
+++ b/linux-2.6-xen-sparse/include/asm-xen/hypervisor.h Mon Aug  1 19:19:36 2005
@@ -46,6 +46,8 @@
 #  else
 #   include <asm-generic/pgtable-nopmd.h>
 #  endif
+# else
+#  define pud_t pgd_t
 # endif
 #endif
 
diff -r 24dd9a53dd95 -r 1efe6f4163ee tools/debugger/pdb/Makefile
--- a/tools/debugger/pdb/Makefile       Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/Makefile       Mon Aug  1 19:19:36 2005
@@ -33,7 +33,7 @@
 LIBS       += unix str
 
 # bc = byte-code, dc = debug byte-code
-all : dc
+all : patches dc
 
 SOURCES    += pdb_caml_xc.c 
 SOURCES    += pdb_caml_domain.c pdb_caml_process.c
@@ -50,3 +50,6 @@
 
 include $(OCAMLMAKEFILE)
 
+PATCHDIR    = ./linux-2.6-patches
+patches :
+       make -C $(PATCHDIR) patches
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-module/module.c
--- a/tools/debugger/pdb/linux-2.6-module/module.c      Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-module/module.c      Mon Aug  1 19:19:36 2005
@@ -278,14 +278,10 @@
     return err;
 }
 
-extern struct notifier_block *i386die_chain;
-extern spinlock_t die_notifier_lock;
-
 static void __exit
 pdb_terminate(void)
 {
     int err = 0;
-    unsigned long flags;
 
     printk("pdb cleanup\n");
 
@@ -305,9 +301,8 @@
 
     pdb_send_connection_status(PDB_CONNECTION_STATUS_DOWN, 0);
 
-       spin_lock_irqsave(&die_notifier_lock, flags);
-    err = notifier_chain_unregister(&i386die_chain, &pdb_exceptions_nb);
-       spin_unlock_irqrestore(&die_notifier_lock, flags);
+    /* handler for int1 & int3 */
+    err = unregister_die_notifier(&pdb_exceptions_nb);
 
        return;
 }
diff -r 24dd9a53dd95 -r 1efe6f4163ee xen/arch/x86/vmx_intercept.c
--- a/xen/arch/x86/vmx_intercept.c      Mon Aug  1 19:11:00 2005
+++ b/xen/arch/x86/vmx_intercept.c      Mon Aug  1 19:19:36 2005
@@ -197,8 +197,7 @@
 static void pit_timer_fn(void *data)
 {
     struct vmx_virpit_t *vpit = data;
-    s_time_t   next;
-    int        missed_ticks;
+    int missed_ticks;
 
     missed_ticks = (NOW() - vpit->scheduled) / MILLISECS(vpit->period);
 
@@ -208,12 +207,11 @@
 
     /* pick up missed timer tick */
     if ( missed_ticks > 0 ) {
-        vpit->pending_intr_nr+= missed_ticks;
+        vpit->pending_intr_nr += missed_ticks;
         vpit->scheduled += missed_ticks * MILLISECS(vpit->period);
     }
-    next = vpit->scheduled + MILLISECS(vpit->period);
-    set_ac_timer(&vpit->pit_timer, next);
-    vpit->scheduled = next;
+    vpit->scheduled += MILLISECS(vpit->period);
+    set_ac_timer(&vpit->pit_timer, vpit->scheduled);
 }
 
 
diff -r 24dd9a53dd95 -r 1efe6f4163ee xen/include/public/io/blkif.h
--- a/xen/include/public/io/blkif.h     Mon Aug  1 19:11:00 2005
+++ b/xen/include/public/io/blkif.h     Mon Aug  1 19:19:36 2005
@@ -36,7 +36,7 @@
     blkif_vdev_t   device;       /* only for read/write requests         */
     unsigned long  id;           /* private guest value, echoed in resp  */
     blkif_sector_t sector_number;/* start sector idx on disk (r/w only)  */
-    /* @f_a_s[2:0]=last_sect ; @f_a_s[5:3]=first_sect                        */
+    /* @f_a_s[4:0]=last_sect ; @f_a_s[9:5]=first_sect                        */
 #ifdef CONFIG_XEN_BLKDEV_GRANT
     /* @f_a_s[:16]= grant reference (16 bits)                                */
 #else
@@ -47,10 +47,12 @@
     unsigned long  frame_and_sects[BLKIF_MAX_SEGMENTS_PER_REQUEST];
 } blkif_request_t;
 
-#define blkif_first_sect(_fas) (((_fas)>>3)&7)
-#define blkif_last_sect(_fas)  ((_fas)&7)
+#define blkif_fas(_addr, _fs, _ls) ((addr)|((_fs)<<5)|(_ls))
+#define blkif_first_sect(_fas) (((_fas)>>5)&31)
+#define blkif_last_sect(_fas)  ((_fas)&31)
 
 #ifdef CONFIG_XEN_BLKDEV_GRANT
+#define blkif_fas_from_gref(_gref, _fs, _ls) (((_gref)<<16)|((_fs)<<5)|(_ls))
 #define blkif_gref_from_fas(_fas) ((_fas)>>16)
 #endif
 
diff -r 24dd9a53dd95 -r 1efe6f4163ee xen/include/xen/time.h
--- a/xen/include/xen/time.h    Mon Aug  1 19:11:00 2005
+++ b/xen/include/xen/time.h    Mon Aug  1 19:19:36 2005
@@ -51,9 +51,9 @@
 s_time_t get_s_time(void);
 
 #define NOW()           ((s_time_t)get_s_time())
-#define SECONDS(_s)     (((s_time_t)(_s))  * 1000000000ULL )
-#define MILLISECS(_ms)  (((s_time_t)(_ms)) * 1000000ULL )
-#define MICROSECS(_us)  (((s_time_t)(_us)) * 1000ULL )
+#define SECONDS(_s)     ((s_time_t)((_s)  * 1000000000ULL))
+#define MILLISECS(_ms)  ((s_time_t)((_ms) * 1000000ULL))
+#define MICROSECS(_us)  ((s_time_t)((_us) * 1000ULL))
 
 extern void update_dom_time(struct vcpu *v);
 extern void do_settime(
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-patches/Makefile
--- /dev/null   Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-patches/Makefile     Mon Aug  1 19:19:36 2005
@@ -0,0 +1,10 @@
+XEN_ROOT   = ../../../..
+LINUX_DIR  = linux-2.6.12-xenU
+KDIR       = $(XEN_ROOT)/$(LINUX_DIR)
+PATCH_DIR  = $(CURDIR)
+
+patches : patches-done
+
+patches-done :
+       ( for i in *.patch ; do ( cd $(KDIR) ; patch -p1 < $(PATCH_DIR)/$$i || 
exit 1 ) ; done )
+       touch $@
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-patches/i386_ksyms.patch
--- /dev/null   Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-patches/i386_ksyms.patch     Mon Aug  1 
19:19:36 2005
@@ -0,0 +1,11 @@
+diff -u linux-2.6.12/arch/xen/i386/kernel/i386_ksyms.c 
linux-2.6.12-pdb/arch/xen/i386/kernel/i386_ksyms.c
+--- linux-2.6.12/arch/xen/i386/kernel/i386_ksyms.c     2005-07-31 
22:36:50.000000000 +0100
++++ linux-2.6.12-pdb/arch/xen/i386/kernel/i386_ksyms.c 2005-08-01 
10:57:31.000000000 +0100
+@@ -172,6 +172,7 @@
+ EXPORT_SYMBOL_GPL(unset_nmi_callback);
+ 
+ EXPORT_SYMBOL(register_die_notifier);
++EXPORT_SYMBOL(unregister_die_notifier);
+ #ifdef CONFIG_HAVE_DEC_LOCK
+ EXPORT_SYMBOL(_atomic_dec_and_lock);
+ #endif
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-patches/kdebug.patch
--- /dev/null   Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-patches/kdebug.patch Mon Aug  1 19:19:36 2005
@@ -0,0 +1,11 @@
+diff -u linux-2.6.12/include/asm-i386/kdebug.h 
linux-2.6.12-pdb/include/asm-i386/kdebug.h
+--- linux-2.6.12/include/asm-i386/kdebug.h     2005-06-17 20:48:29.000000000 
+0100
++++ linux-2.6.12-pdb/include/asm-i386/kdebug.h 2005-08-01 11:11:53.000000000 
+0100
+@@ -21,6 +21,7 @@
+    If you really want to do it first unregister - then synchronize_kernel - 
then free.
+   */
+ int register_die_notifier(struct notifier_block *nb);
++int unregister_die_notifier(struct notifier_block *nb);
+ extern struct notifier_block *i386die_chain;
+ 
+ 
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-patches/makefile.patch
--- /dev/null   Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-patches/makefile.patch       Mon Aug  1 
19:19:36 2005
@@ -0,0 +1,12 @@
+diff -Naur linux-2.6.12/Makefile linux-2.6.12-pdb/Makefile
+--- linux-2.6.12/Makefile      2005-08-01 01:21:21.000000000 +0100
++++ linux-2.6.12-pdb/Makefile  2005-08-01 10:28:10.000000000 +0100
+@@ -508,7 +508,7 @@
+ ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+ CFLAGS                += -Os
+ else
+-CFLAGS                += -O2
++CFLAGS                += -O
+ endif
+ 
+ #Add align options if CONFIG_CC_* is not equal to 0
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-patches/ptrace.patch
--- /dev/null   Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-patches/ptrace.patch Mon Aug  1 19:19:36 2005
@@ -0,0 +1,11 @@
+diff -u linux-2.6.12/kernel/ptrace.c linux-2.6.12-pdb/kernel/ptrace.c
+--- linux-2.6.12/kernel/ptrace.c       2005-06-17 20:48:29.000000000 +0100
++++ linux-2.6.12-pdb/kernel/ptrace.c   2005-07-22 13:23:16.000000000 +0100
+@@ -239,6 +239,7 @@
+ 
+        return buf - old_buf;
+ }
++EXPORT_SYMBOL(access_process_vm);
+ 
+ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user 
*dst, int len)
+ {
diff -r 24dd9a53dd95 -r 1efe6f4163ee 
tools/debugger/pdb/linux-2.6-patches/traps.patch
--- /dev/null   Mon Aug  1 19:11:00 2005
+++ b/tools/debugger/pdb/linux-2.6-patches/traps.patch  Mon Aug  1 19:19:36 2005
@@ -0,0 +1,20 @@
+diff -u linux-2.6.12/arch/xen/i386/kernel/traps.c 
linux-2.6.12-pdb/arch/xen/i386/kernel/traps.c
+--- linux-2.6.12/arch/xen/i386/kernel/traps.c  2005-07-31 22:47:00.000000000 
+0100
++++ linux-2.6.12-pdb/arch/xen/i386/kernel/traps.c      2005-07-31 
22:47:32.000000000 +0100
+@@ -102,6 +102,16 @@
+       return err;
+ }
+ 
++int unregister_die_notifier(struct notifier_block *nb)
++{
++      int err = 0;
++      unsigned long flags;
++      spin_lock_irqsave(&die_notifier_lock, flags);
++      err = notifier_chain_unregister(&i386die_chain, nb);
++      spin_unlock_irqrestore(&die_notifier_lock, flags);
++      return err;
++}
++
+ static inline int valid_stack_ptr(struct thread_info *tinfo, void *p)
+ {
+       return  p > (void *)tinfo &&

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.