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] Update to 2.6.11 patch files

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Update to 2.6.11 patch files
From: BitKeeper Bot <riel@xxxxxxxxxxx>
Date: Mon, 11 Apr 2005 21:03:24 +0000
Delivery-date: Wed, 20 Apr 2005 09:02:44 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: Xen Development List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
ChangeSet 1.1277.2.1, 2005/04/11 15:03:24-06:00, djm@djmnc4000.(none)

        Update to 2.6.11 patch files
        Signed-off by: Dan Magenheimer (dan.magenheimer@xxxxxx)



 arch/ia64/domain.c                          |   25 +-
 arch/ia64/irq.c                             |  152 +++++++--------
 arch/ia64/mm_init.c                         |   44 +++-
 arch/ia64/patch/linux-2.6.11/bootmem.h      |   14 +
 arch/ia64/patch/linux-2.6.11/cpumask.h      |   18 +
 arch/ia64/patch/linux-2.6.11/current.h      |   13 +
 arch/ia64/patch/linux-2.6.11/efi.c          |   34 +++
 arch/ia64/patch/linux-2.6.11/entry.S        |  116 +++++++++++
 arch/ia64/patch/linux-2.6.11/hardirq.h      |   13 +
 arch/ia64/patch/linux-2.6.11/head.S         |   50 +++++
 arch/ia64/patch/linux-2.6.11/hpsim_irq.c    |   25 ++
 arch/ia64/patch/linux-2.6.11/hpsim_ssc.h    |   11 +
 arch/ia64/patch/linux-2.6.11/interrupt.h    |   20 ++
 arch/ia64/patch/linux-2.6.11/io.h           |   14 +
 arch/ia64/patch/linux-2.6.11/irq.h          |   13 +
 arch/ia64/patch/linux-2.6.11/irq_ia64.c     |   43 ++++
 arch/ia64/patch/linux-2.6.11/ivt.S          |  278 ++++++++++++++++++++++++++++
 arch/ia64/patch/linux-2.6.11/kernel-time.c  |   37 +++
 arch/ia64/patch/linux-2.6.11/kregs.h        |   13 +
 arch/ia64/patch/linux-2.6.11/lds.S          |   19 +
 arch/ia64/patch/linux-2.6.11/linuxextable.c |   13 +
 arch/ia64/patch/linux-2.6.11/linuxhardirq.h |   22 ++
 arch/ia64/patch/linux-2.6.11/linuxtime.h    |   26 ++
 arch/ia64/patch/linux-2.6.11/mca_asm.h      |   25 ++
 arch/ia64/patch/linux-2.6.11/minstate.h     |   22 ++
 arch/ia64/patch/linux-2.6.11/mm_contig.c    |  171 +++++++++++++++++
 arch/ia64/patch/linux-2.6.11/mmzone.h       |   14 +
 arch/ia64/patch/linux-2.6.11/page.h         |   54 +++++
 arch/ia64/patch/linux-2.6.11/pal.S          |   22 ++
 arch/ia64/patch/linux-2.6.11/pgalloc.h      |   66 ++++++
 arch/ia64/patch/linux-2.6.11/processor.h    |   19 +
 arch/ia64/patch/linux-2.6.11/sal.h          |   21 ++
 arch/ia64/patch/linux-2.6.11/series         |   40 ++++
 arch/ia64/patch/linux-2.6.11/setup.c        |  155 +++++++++++++++
 arch/ia64/patch/linux-2.6.11/slab.h         |   14 +
 arch/ia64/patch/linux-2.6.11/swiotlb.c      |   63 ++++++
 arch/ia64/patch/linux-2.6.11/system.h       |   32 +++
 arch/ia64/patch/linux-2.6.11/time.c         |  143 ++++++++++++++
 arch/ia64/patch/linux-2.6.11/tlb.c          |   42 ++++
 arch/ia64/patch/linux-2.6.11/types.h        |   12 +
 arch/ia64/patch/linux-2.6.11/unaligned.c    |   74 +++++++
 arch/ia64/patch/linux-2.6.11/wait.h         |   28 ++
 arch/ia64/tools/mkbuildtree                 |   41 ++--
 arch/ia64/xenasm.S                          |   16 -
 arch/ia64/xenmisc.c                         |   11 +
 include/asm-ia64/config.h                   |   21 +-
 include/asm-ia64/mm.h                       |   19 -
 47 files changed, 2004 insertions(+), 134 deletions(-)


diff -Nru a/xen/arch/ia64/domain.c b/xen/arch/ia64/domain.c
--- a/xen/arch/ia64/domain.c    2005-04-20 05:02:59 -04:00
+++ b/xen/arch/ia64/domain.c    2005-04-20 05:02:59 -04:00
@@ -289,6 +289,7 @@
        struct mm_struct *mm = d->arch.mm;
        struct page *p = (struct page *)0;
        pgd_t *pgd;
+       pud_t *pud;
        pmd_t *pmd;
        pte_t *pte;
 extern unsigned long vhpt_paddr, vhpt_pend;
@@ -299,9 +300,13 @@
        }
        pgd = pgd_offset(mm,mpaddr);
        if (pgd_none(*pgd))
-               pgd_populate(mm, pgd, pmd_alloc_one(mm,mpaddr));
+               pgd_populate(mm, pgd, pud_alloc_one(mm,mpaddr));
 
-       pmd = pmd_offset(pgd, mpaddr);
+       pud = pud_offset(pgd, mpaddr);
+       if (pud_none(*pud))
+               pud_populate(mm, pud, pmd_alloc_one(mm,mpaddr));
+
+       pmd = pmd_offset(pud, mpaddr);
        if (pmd_none(*pmd))
                pmd_populate_kernel(mm, pmd, pte_alloc_one_kernel(mm,mpaddr));
 //             pmd_populate(mm, pmd, pte_alloc_one(mm,mpaddr));
@@ -338,6 +343,7 @@
 {
        struct mm_struct *mm = d->arch.mm;
        pgd_t *pgd = pgd_offset(mm, mpaddr);
+       pud_t *pud;
        pmd_t *pmd;
        pte_t *pte;
 
@@ -356,14 +362,17 @@
 #endif
 tryagain:
        if (pgd_present(*pgd)) {
-               pmd = pmd_offset(pgd,mpaddr);
-               if (pmd_present(*pmd)) {
-                       pte = pte_offset_map(pmd,mpaddr);
-                       if (pte_present(*pte)) {
+               pud = pud_offset(pgd,mpaddr);
+               if (pud_present(*pud)) {
+                       pmd = pmd_offset(pud,mpaddr);
+                       if (pmd_present(*pmd)) {
+                               pte = pte_offset_map(pmd,mpaddr);
+                               if (pte_present(*pte)) {
 //printk("lookup_domain_page: found mapping for %lx, 
pte=%lx\n",mpaddr,pte_val(*pte));
-                               return *(unsigned long *)pte;
+                                       return *(unsigned long *)pte;
+                               }
                        }
-               }       
+               }
        }
        /* if lookup fails and mpaddr is "legal", "create" the page */
        if ((mpaddr >> PAGE_SHIFT) < d->max_pages) {
diff -Nru a/xen/arch/ia64/irq.c b/xen/arch/ia64/irq.c
--- a/xen/arch/ia64/irq.c       2005-04-20 05:02:59 -04:00
+++ b/xen/arch/ia64/irq.c       2005-04-20 05:02:59 -04:00
@@ -492,101 +492,101 @@
  * SMP cross-CPU interrupts have their own specific
  * handlers).
  */
-unsigned int do_IRQ(unsigned long irq, struct pt_regs *regs)
+fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs)
 {
-       /*
-        * We ack quickly, we don't want the irq controller
-        * thinking we're snobs just because some other CPU has
-        * disabled global interrupts (we have already done the
-        * INT_ACK cycles, it's too late to try to pretend to the
-        * controller that we aren't taking the interrupt).
-        *
-        * 0 return value means that this irq is already being
-        * handled by some other CPU. (or is disabled)
-        */
-       irq_desc_t *desc = irq_descp(irq);
+       irq_desc_t *desc = irq_desc + irq;
        struct irqaction * action;
-       irqreturn_t action_ret;
        unsigned int status;
-       int cpu;
-
-       cpu = smp_processor_id(); /* for CONFIG_PREEMPT, this must come after 
irq_enter()! */
 
 #ifndef XEN
-       kstat_cpu(cpu).irqs[irq]++;
+       kstat_this_cpu.irqs[irq]++;
 #endif
-
        if (desc->status & IRQ_PER_CPU) {
-               /* no locking required for CPU-local interrupts: */
+               irqreturn_t action_ret;
+
+               /*
+                * No locking required for CPU-local interrupts:
+                */
                desc->handler->ack(irq);
                action_ret = handle_IRQ_event(irq, regs, desc->action);
+#ifndef XEN
+               if (!noirqdebug)
+                       note_interrupt(irq, desc, action_ret);
+#endif
                desc->handler->end(irq);
-       } else {
-               spin_lock(&desc->lock);
-               desc->handler->ack(irq);
-               /*
-                * REPLAY is when Linux resends an IRQ that was dropped earlier
-                * WAITING is used by probe to mark irqs that are being tested
-                */
+               return 1;
+       }
+
+       spin_lock(&desc->lock);
+       desc->handler->ack(irq);
+       /*
+        * REPLAY is when Linux resends an IRQ that was dropped earlier
+        * WAITING is used by probe to mark irqs that are being tested
+        */
 #ifdef XEN
-               status = desc->status & ~IRQ_REPLAY;
+       status = desc->status & ~IRQ_REPLAY;
 #else
-               status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
+       status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
 #endif
-               status |= IRQ_PENDING; /* we _want_ to handle it */
+       status |= IRQ_PENDING; /* we _want_ to handle it */
 
-               /*
-                * If the IRQ is disabled for whatever reason, we cannot
-                * use the action we have.
-                */
-               action = NULL;
-               if (likely(!(status & (IRQ_DISABLED | IRQ_INPROGRESS)))) {
-                       action = desc->action;
-                       status &= ~IRQ_PENDING; /* we commit to handling */
-                       status |= IRQ_INPROGRESS; /* we are handling it */
-               }
-               desc->status = status;
+       /*
+        * If the IRQ is disabled for whatever reason, we cannot
+        * use the action we have.
+        */
+       action = NULL;
+       if (likely(!(status & (IRQ_DISABLED | IRQ_INPROGRESS)))) {
+               action = desc->action;
+               status &= ~IRQ_PENDING; /* we commit to handling */
+               status |= IRQ_INPROGRESS; /* we are handling it */
+       }
+       desc->status = status;
 
-               /*
-                * If there is no IRQ handler or it was disabled, exit early.
-                * Since we set PENDING, if another processor is handling
-                * a different instance of this same irq, the other processor
-                * will take care of it.
-                */
-               if (unlikely(!action))
-                       goto out;
+       /*
+        * If there is no IRQ handler or it was disabled, exit early.
+        * Since we set PENDING, if another processor is handling
+        * a different instance of this same irq, the other processor
+        * will take care of it.
+        */
+       if (unlikely(!action))
+               goto out;
 
-               /*
-                * Edge triggered interrupts need to remember
-                * pending events.
-                * This applies to any hw interrupts that allow a second
-                * instance of the same irq to arrive while we are in do_IRQ
-                * or in the handler. But the code here only handles the 
_second_
-                * instance of the irq, not the third or fourth. So it is mostly
-                * useful for irq hardware that does not mask cleanly in an
-                * SMP environment.
-                */
-               for (;;) {
-                       spin_unlock(&desc->lock);
-                       action_ret = handle_IRQ_event(irq, regs, action);
-                       spin_lock(&desc->lock);
+       /*
+        * Edge triggered interrupts need to remember
+        * pending events.
+        * This applies to any hw interrupts that allow a second
+        * instance of the same irq to arrive while we are in do_IRQ
+        * or in the handler. But the code here only handles the _second_
+        * instance of the irq, not the third or fourth. So it is mostly
+        * useful for irq hardware that does not mask cleanly in an
+        * SMP environment.
+        */
+       for (;;) {
+               irqreturn_t action_ret;
+
+               spin_unlock(&desc->lock);
+
+               action_ret = handle_IRQ_event(irq, regs, action);
+
+               spin_lock(&desc->lock);
 #ifndef XEN
-                       if (!noirqdebug)
-                               note_interrupt(irq, desc, action_ret);
+               if (!noirqdebug)
+                       note_interrupt(irq, desc, action_ret);
 #endif
-                       if (!(desc->status & IRQ_PENDING))
-                               break;
-                       desc->status &= ~IRQ_PENDING;
-               }
-               desc->status &= ~IRQ_INPROGRESS;
-         out:
-               /*
-                * The ->end() handler has to deal with interrupts which got
-                * disabled while the handler was running.
-                */
-               desc->handler->end(irq);
-               spin_unlock(&desc->lock);
+               if (likely(!(desc->status & IRQ_PENDING)))
+                       break;
+               desc->status &= ~IRQ_PENDING;
        }
+       desc->status &= ~IRQ_INPROGRESS;
+
+out:
+       /*
+        * The ->end() handler has to deal with interrupts which got
+        * disabled while the handler was running.
+        */
+       desc->handler->end(irq);
+       spin_unlock(&desc->lock);
+
        return 1;
 }
 
diff -Nru a/xen/arch/ia64/mm_init.c b/xen/arch/ia64/mm_init.c
--- a/xen/arch/ia64/mm_init.c   2005-04-20 05:02:59 -04:00
+++ b/xen/arch/ia64/mm_init.c   2005-04-20 05:02:59 -04:00
@@ -102,6 +102,39 @@
 /////////////////////////////////////////////
 //following from linux/mm/memory.c
 
+#ifndef __ARCH_HAS_4LEVEL_HACK
+/*
+ * Allocate page upper directory.

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Update to 2.6.11 patch files, BitKeeper Bot <=