WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Merge with latest xen-unstable, Xen patchbot -unstable <=