ia64/xen-unstable

changeset 3413:9b5686c89524

bitkeeper revision 1.1159.217.5 (41e3fd80-YwWnx2lwk_nYltmgmi0QA)

Merge scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-2.0-testing.bk
into scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-unstable.bk
author kaf24@scramble.cl.cam.ac.uk
date Tue Jan 11 16:23:28 2005 +0000 (2005-01-11)
parents 7a39463e17ce 757e2d296e9f
children fd293c2a73db
files .hgtags linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c xen/arch/x86/x86_32/seg_fixup.c
line diff
     1.1 --- a/.hgtags	Tue Jan 11 14:39:01 2005 +0000
     1.2 +++ b/.hgtags	Tue Jan 11 16:23:28 2005 +0000
     1.3 @@ -1,7 +1,7 @@
     1.4  42882b3e0dda89f3a8ec00da568f86e9b3c230f1 RELEASE-2.0.0
     1.5  475a162b66e2c19b1e9468b234a4ba705334905e RELEASE-2.0.1
     1.6  dc2f08429f17e6614fd2f1ab88cc09ca0a850f32 RELEASE-2.0.2
     1.7 -47043486577855efe8838fa23d8a18cd793ebff2 RELEASE-2.0.3
     1.8 +82ba8bd1ceb2e03af769775fb8bc890dcab04f72 RELEASE-2.0.3
     1.9  487b2ee37d1cecb5f3e7a546b05ad097a0226f2f beta1
    1.10  3d330e41f41ce1bc118c02346e18949ad5d67f6b latest-semistable
    1.11  30c521db4c71960b0cf1d9c9e1b658e77b535a3e latest-stable
     2.1 --- a/linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c	Tue Jan 11 14:39:01 2005 +0000
     2.2 +++ b/linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c	Tue Jan 11 16:23:28 2005 +0000
     2.3 @@ -36,7 +36,7 @@
     2.4  
     2.5  #define DP(_f) printk(KERN_ALERT "  " _f "\n")
     2.6  
     2.7 -asmlinkage void do_fixup_4gb_segment(struct pt_regs *regs, long error_code)
     2.8 +fastcall void do_fixup_4gb_segment(struct pt_regs *regs, long error_code)
     2.9  {
    2.10      static unsigned long printed = 0;
    2.11      int i;
     3.1 --- a/xen/arch/x86/x86_32/seg_fixup.c	Tue Jan 11 14:39:01 2005 +0000
     3.2 +++ b/xen/arch/x86/x86_32/seg_fixup.c	Tue Jan 11 16:23:28 2005 +0000
     3.3 @@ -182,7 +182,7 @@ int fixup_seg(u16 seg, unsigned long off
     3.4          table = (unsigned long *)LDT_VIRT_START(d);
     3.5          if ( idx >= d->mm.ldt_ents )
     3.6          {
     3.7 -            DPRINTK("Segment %04x out of LDT range (%d)\n",
     3.8 +            DPRINTK("Segment %04x out of LDT range (%ld)\n",
     3.9                      seg, d->mm.ldt_ents);
    3.10              goto fail;
    3.11          }
    3.12 @@ -231,16 +231,9 @@ int fixup_seg(u16 seg, unsigned long off
    3.13      }
    3.14      else
    3.15      {
    3.16 -        /*
    3.17 -         * Expands-up: All the way to Xen space? Assume 4GB if so.
    3.18 -         * NB: we compare offset with limit-15, instead of the "real"
    3.19 -         * comparison of offset+15 (worst case) with limit,
    3.20 -         * to avoid possible unsigned int overflow of offset+15.
    3.21 -         * limit-15 will not underflow here because we don't allow expand-up
    3.22 -         * segments with maxlimit.
    3.23 -         */
    3.24 +        /* Expands-up: All the way to Xen space? Assume 4GB if so. */
    3.25          if ( ((PAGE_OFFSET - (base + limit)) < PAGE_SIZE) &&
    3.26 -             ((offset) > (limit-15)) )
    3.27 +             (offset > limit) )
    3.28          {
    3.29              /* Flip to expands-down. */
    3.30              limit = -(base & PAGE_MASK);
    3.31 @@ -248,8 +241,8 @@ int fixup_seg(u16 seg, unsigned long off
    3.32          }
    3.33      }
    3.34  
    3.35 -    DPRINTK("None of the above! (%08lx:%08lx, %d, %08lx, %08lx, %08lx)\n", 
    3.36 -            a, b, positive_access, base, limit, base+limit);
    3.37 +    DPRINTK("None of the above! (%08lx:%08lx, %08lx, %08lx, %08lx)\n", 
    3.38 +            a, b, base, limit, base+limit);
    3.39  
    3.40   fail:
    3.41      return 0;
    3.42 @@ -312,7 +305,7 @@ int gpf_emulate_4gb(struct xen_regs *reg
    3.43  
    3.44      if ( !linearise_address((u16)regs->cs, regs->eip, (unsigned long *)&eip) )
    3.45      {
    3.46 -        DPRINTK("Cannot linearise %04x:%08lx\n", regs->cs, regs->eip);
    3.47 +        DPRINTK("Cannot linearise %04x:%08x\n", regs->cs, regs->eip);
    3.48          goto fail;
    3.49      }
    3.50  
    3.51 @@ -340,25 +333,25 @@ int gpf_emulate_4gb(struct xen_regs *reg
    3.52          case 0xf0: /* LOCK */
    3.53          case 0xf2: /* REPNE/REPNZ */
    3.54          case 0xf3: /* REP/REPE/REPZ */
    3.55 -            continue;
    3.56 +            break;
    3.57          case 0x2e: /* CS override */
    3.58              pseg = &regs->cs;
    3.59 -            continue;
    3.60 +            break;
    3.61          case 0x3e: /* DS override */
    3.62              pseg = &regs->ds;
    3.63 -            continue;
    3.64 +            break;
    3.65          case 0x26: /* ES override */
    3.66              pseg = &regs->es;
    3.67 -            continue;
    3.68 +            break;
    3.69          case 0x64: /* FS override */
    3.70              pseg = &regs->fs;
    3.71 -            continue;
    3.72 +            break;
    3.73          case 0x65: /* GS override */
    3.74              pseg = &regs->gs;
    3.75 -            continue;
    3.76 +            break;
    3.77          case 0x36: /* SS override */
    3.78              pseg = &regs->ss;
    3.79 -            continue;
    3.80 +            break;
    3.81          default: /* Not a prefix byte */
    3.82              goto done_prefix;
    3.83          }
    3.84 @@ -489,7 +482,7 @@ int gpf_emulate_4gb(struct xen_regs *reg
    3.85  
    3.86   fixme:
    3.87      DPRINTK("Undecodable instruction %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x "
    3.88 -            "caused GPF(0) at %04x:%08lx\n",
    3.89 +            "caused GPF(0) at %04x:%08x\n",
    3.90              eip[0], eip[1], eip[2], eip[3],
    3.91              eip[4], eip[5], eip[6], eip[7],
    3.92              regs->cs, regs->eip);