Module: xenomai-head
Branch: master
Commit: ff3a738027b81cf6d476761d8a85e466485f66ef
URL:    
http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=ff3a738027b81cf6d476761d8a85e466485f66ef

Author: Philippe Gerum <r...@xenomai.org>
Date:   Tue Dec 22 14:44:53 2009 +0100

arm: upgrade I-pipe support to 2.6.30-arm-1.14-03, 2.6.28.10-arm-1.12-06, 
2.6.29-arm-1.13-04

---

 ...tch => adeos-ipipe-2.6.28.10-arm-1.12-06.patch} |  146 +++++++++++--------
 ....patch => adeos-ipipe-2.6.29-arm-1.13-04.patch} |   27 +++--
 ....patch => adeos-ipipe-2.6.30-arm-1.14-03.patch} |    6 +-
 3 files changed, 104 insertions(+), 75 deletions(-)

diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-05.patch 
b/ksrc/arch/arm/patches/adeos-ipipe-2.6.28.10-arm-1.12-06.patch
similarity index 99%
rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-05.patch
rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.28.10-arm-1.12-06.patch
index d02b770..3930a97 100644
--- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.28-arm-1.12-05.patch
+++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.28.10-arm-1.12-06.patch
@@ -1,5 +1,5 @@
 diff --git a/Makefile b/Makefile
-index 71e98e9..e47f38a 100644
+index f625d8c..40a6998 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -525,6 +525,10 @@ endif
@@ -445,7 +445,7 @@ index 0000000..2a0c0e3
 +#endif /* __ASM_ARM_FCSE_H */
 diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h
 new file mode 100644
-index 0000000..e51f147
+index 0000000..64568f1
 --- /dev/null
 +++ b/arch/arm/include/asm/ipipe.h
 @@ -0,0 +1,226 @@
@@ -479,10 +479,10 @@ index 0000000..e51f147
 +
 +#include <linux/ipipe_percpu.h>
 +
-+#define IPIPE_ARCH_STRING     "1.12-05"
++#define IPIPE_ARCH_STRING     "1.12-06"
 +#define IPIPE_MAJOR_NUMBER    1
 +#define IPIPE_MINOR_NUMBER    12
-+#define IPIPE_PATCH_NUMBER    5
++#define IPIPE_PATCH_NUMBER    6
 +
 +#ifdef CONFIG_SMP
 +#error "I-pipe/arm: SMP not yet implemented"
@@ -1900,10 +1900,10 @@ index 87ab4e1..e57aff8 100644
   * have in theory up to 7 arguments to a function - r0 to r6.
 diff --git a/arch/arm/kernel/fcse.c b/arch/arm/kernel/fcse.c
 new file mode 100644
-index 0000000..2f154c6
+index 0000000..8917eb7
 --- /dev/null
 +++ b/arch/arm/kernel/fcse.c
-@@ -0,0 +1,172 @@
+@@ -0,0 +1,173 @@
 +#include <linux/bitops.h>
 +#include <linux/memory.h>
 +#include <linux/spinlock.h>
@@ -2042,6 +2042,7 @@ index 0000000..2f154c6
 +
 +      return res;
 +}
++EXPORT_SYMBOL_GPL(fcse_needs_flush);
 +
 +/* Called with mm->mmap_sem write-locked. */
 +void fcse_relocate_mm_to_null_pid(struct mm_struct *mm)
@@ -2122,10 +2123,10 @@ index 0000000..ce61e0c
 +#endif
 diff --git a/arch/arm/kernel/ipipe.c b/arch/arm/kernel/ipipe.c
 new file mode 100644
-index 0000000..e83cd63
+index 0000000..ea7330b
 --- /dev/null
 +++ b/arch/arm/kernel/ipipe.c
-@@ -0,0 +1,447 @@
+@@ -0,0 +1,453 @@
 +/* -*- linux-c -*-
 + * linux/arch/arm/kernel/ipipe.c
 + *
@@ -2566,13 +2567,19 @@ index 0000000..e83cd63
 +#endif
 +EXPORT_SYMBOL_GPL(__check_kvm_seq);
 +#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-+EXPORT_SYMBOL(tasklist_lock);
++EXPORT_SYMBOL_GPL(tasklist_lock);
 +#endif /* CONFIG_SMP || CONFIG_DEBUG_SPINLOCK */
 +
 +#ifdef CONFIG_IPIPE_TRACE_MCOUNT
 +void notrace mcount(void);
 +EXPORT_SYMBOL(mcount);
 +#endif /* CONFIG_IPIPE_TRACE_MCOUNT */
++
++#ifdef CONFIG_CPU_HAS_ASID
++EXPORT_SYMBOL_GPL(__new_context);
++EXPORT_SYMBOL_GPL(cpu_last_asid);
++#endif /* CONFIG_CPU_HAS_ASID */
++
 diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
 index 2f3eb79..4780cc9 100644
 --- a/arch/arm/kernel/irq.c
@@ -2768,7 +2775,7 @@ index cca612d..6d8be0e 100644
 +endif
 diff --git a/arch/arm/mach-at91/at91_ipipe_time.c 
b/arch/arm/mach-at91/at91_ipipe_time.c
 new file mode 100644
-index 0000000..61f51a0
+index 0000000..5f91054
 --- /dev/null
 +++ b/arch/arm/mach-at91/at91_ipipe_time.c
 @@ -0,0 +1,414 @@
@@ -3105,7 +3112,7 @@ index 0000000..61f51a0
 +void __init at91_timer_init(void)
 +{
 +      unsigned char tc_divisors[] = { 2, 8, 32, 128, 0, };
-+      unsigned master_freq, divisor, divided_freq;
++      unsigned master_freq, divisor = 0, divided_freq = 0;
 +      unsigned long long wrap_ns;
 +
 +      /* Disable (boot loader) timer interrupts. */
@@ -7614,14 +7621,14 @@ index bf7d6ce..0ffac4e 100644
  struct ht_irq_cfg {
        struct pci_dev *dev;
 diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
-index 303272a..c007c96 100644
+index a181ccf..e494638 100644
 --- a/drivers/serial/8250.c
 +++ b/drivers/serial/8250.c
-@@ -57,6 +57,51 @@ static unsigned int share_irqs = SERIAL8250_SHARE_IRQS;
- 
- static unsigned int nr_uarts = CONFIG_SERIAL_8250_RUNTIME_UARTS;
+@@ -2895,6 +2895,51 @@ static int serial8250_resume(struct platform_device 
*dev)
+       return 0;
+ }
  
-+#ifdef CONFIG_IPIPE_DEBUG
++#if defined(CONFIG_IPIPE_DEBUG) && defined(CONFIG_SERIAL_8250_CONSOLE)
 +
 +#include <stdarg.h>
 +
@@ -7666,21 +7673,45 @@ index 303272a..c007c96 100644
 +
 +#endif
 +
- static struct uart_driver serial8250_reg;
- 
- static int serial_index(struct uart_port *port)
+ static struct platform_driver serial8250_isa_driver = {
+       .probe          = serial8250_probe,
+       .remove         = __devexit_p(serial8250_remove),
 diff --git a/include/asm-generic/cmpxchg-local.h 
b/include/asm-generic/cmpxchg-local.h
-index b2ba2fc..4764463 100644
+index b2ba2fc..ed01ab9 100644
 --- a/include/asm-generic/cmpxchg-local.h
 +++ b/include/asm-generic/cmpxchg-local.h
-@@ -1,6 +1,7 @@
- #ifndef __ASM_GENERIC_CMPXCHG_LOCAL_H
- #define __ASM_GENERIC_CMPXCHG_LOCAL_H
+@@ -20,7 +20,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile 
void *ptr,
+       if (size == 8 && sizeof(unsigned long) != 8)
+               wrong_size_cmpxchg(ptr);
  
-+#include <asm/ipipe_base.h>
- #include <linux/types.h>
+-      local_irq_save(flags);
++      local_irq_save_hw(flags);
+       switch (size) {
+       case 1: prev = *(u8 *)ptr;
+               if (prev == old)
+@@ -41,7 +41,7 @@ static inline unsigned long __cmpxchg_local_generic(volatile 
void *ptr,
+       default:
+               wrong_size_cmpxchg(ptr);
+       }
+-      local_irq_restore(flags);
++      local_irq_restore_hw(flags);
+       return prev;
+ }
+ 
+@@ -54,11 +54,11 @@ static inline u64 __cmpxchg64_local_generic(volatile void 
*ptr,
+       u64 prev;
+       unsigned long flags;
+ 
+-      local_irq_save(flags);
++      local_irq_save_hw(flags);
+       prev = *(u64 *)ptr;
+       if (prev == old)
+               *(u64 *)ptr = new;
+-      local_irq_restore(flags);
++      local_irq_restore_hw(flags);
+       return prev;
+ }
  
- extern unsigned long wrong_size_cmpxchg(volatile void *ptr);
 diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
 index 181006c..bc69d94 100644
 --- a/include/linux/hardirq.h
@@ -7712,7 +7743,7 @@ index 181006c..bc69d94 100644
  #endif /* LINUX_HARDIRQ_H */
 diff --git a/include/linux/ipipe.h b/include/linux/ipipe.h
 new file mode 100644
-index 0000000..065a43d
+index 0000000..2b12117
 --- /dev/null
 +++ b/include/linux/ipipe.h
 @@ -0,0 +1,673 @@
@@ -8314,7 +8345,7 @@ index 0000000..065a43d
 +
 +static inline void local_irq_restore_nosync(unsigned long x)
 +{
-+      if (x)
++      if (raw_irqs_disabled_flags(x))
 +              set_bit(IPIPE_STALL_FLAG, &ipipe_cpudom_var(ipipe_root_domain, 
status));
 +      else
 +              clear_bit(IPIPE_STALL_FLAG, 
&ipipe_cpudom_var(ipipe_root_domain, status));
@@ -8845,7 +8876,7 @@ index 9fd1f85..8018d53 100644
 +
  #endif
 diff --git a/include/linux/mm.h b/include/linux/mm.h
-index ffee2f7..afe330b 100644
+index 5c7f5f5..3bd32c2 100644
 --- a/include/linux/mm.h
 +++ b/include/linux/mm.h
 @@ -115,6 +115,8 @@ extern unsigned int kobjsize(const void *objp);
@@ -8885,7 +8916,7 @@ index 72b1a10..80553be 100644
  
  #define inc_preempt_count() add_preempt_count(1)
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 55e30d1..5f61f39 100644
+index 1538c16..898da7d 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
 @@ -59,6 +59,7 @@ struct sched_param {
@@ -8910,7 +8941,7 @@ index 55e30d1..5f61f39 100644
  
  /* Convenience macros for the sake of set_task_state */
  #define TASK_KILLABLE         (TASK_WAKEKILL | TASK_UNINTERRUPTIBLE)
-@@ -289,6 +297,15 @@ extern void account_process_tick(struct task_struct 
*task, int user);
+@@ -290,6 +298,15 @@ extern void account_process_tick(struct task_struct 
*task, int user);
  extern void update_process_times(int user);
  extern void scheduler_tick(void);
  
@@ -9263,7 +9294,7 @@ index 68d88f7..f5ce3c4 100644
 +
  #endif /* __LINUX_SPINLOCK_TYPES_H */
 diff --git a/init/Kconfig b/init/Kconfig
-index f763762..06af92d 100644
+index 83b6905..27ccba5 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
 @@ -73,6 +73,7 @@ config INIT_ENV_ARG_LIMIT
@@ -9320,10 +9351,10 @@ index 19fad00..e36e4e3 100644
  obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
 diff --git a/kernel/exit.c b/kernel/exit.c
-index 2d8be7e..9a96afa 100644
+index dd9bfe2..d970aec 100644
 --- a/kernel/exit.c
 +++ b/kernel/exit.c
-@@ -1072,6 +1072,7 @@ NORET_TYPE void do_exit(long code)
+@@ -1071,6 +1071,7 @@ NORET_TYPE void do_exit(long code)
                acct_process();
        trace_sched_process_exit(tsk);
  
@@ -9332,7 +9363,7 @@ index 2d8be7e..9a96afa 100644
        exit_files(tsk);
        exit_fs(tsk);
 diff --git a/kernel/fork.c b/kernel/fork.c
-index 495da2e..8b925b1 100644
+index 8f753e5..d91e8d8 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -468,6 +468,7 @@ void mmput(struct mm_struct *mm)
@@ -9352,7 +9383,7 @@ index 495da2e..8b925b1 100644
        new_flags |= PF_FORKNOEXEC;
        new_flags |= PF_STARTING;
        p->flags = new_flags;
-@@ -1272,6 +1273,9 @@ static struct task_struct *copy_process(unsigned long 
clone_flags,
+@@ -1271,6 +1272,9 @@ static struct task_struct *copy_process(unsigned long 
clone_flags,
        write_unlock_irq(&tasklist_lock);
        proc_fork_connector(p);
        cgroup_post_fork(p);
@@ -12928,7 +12959,7 @@ index c9d7408..e6915f2 100644
        device_pm_unlock();
        return error;
 diff --git a/kernel/printk.c b/kernel/printk.c
-index f492f15..8500d11 100644
+index b84eec7..eab2d52 100644
 --- a/kernel/printk.c
 +++ b/kernel/printk.c
 @@ -533,6 +533,41 @@ static int have_callable_console(void)
@@ -13046,7 +13077,7 @@ index f492f15..8500d11 100644
  /* cpu currently holding logbuf_lock */
  static volatile unsigned int printk_cpu = UINT_MAX;
 diff --git a/kernel/sched.c b/kernel/sched.c
-index e4bb1dd..470d43d 100644
+index 2674597..474ffe2 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
 @@ -2255,7 +2255,7 @@ static int try_to_wake_up(struct task_struct *p, 
unsigned int state, int sync)
@@ -13099,7 +13130,7 @@ index e4bb1dd..470d43d 100644
  }
  
  /*
-@@ -4335,6 +4348,7 @@ EXPORT_SYMBOL(add_preempt_count);
+@@ -4384,6 +4397,7 @@ EXPORT_SYMBOL(add_preempt_count);
  
  void __kprobes sub_preempt_count(int val)
  {
@@ -13107,7 +13138,7 @@ index e4bb1dd..470d43d 100644
  #ifdef CONFIG_DEBUG_PREEMPT
        /*
         * Underflow?
-@@ -4383,6 +4397,7 @@ static noinline void __schedule_bug(struct task_struct 
*prev)
+@@ -4432,6 +4446,7 @@ static noinline void __schedule_bug(struct task_struct 
*prev)
   */
  static inline void schedule_debug(struct task_struct *prev)
  {
@@ -13115,7 +13146,7 @@ index e4bb1dd..470d43d 100644
        /*
         * Test if we are atomic. Since do_exit() needs to call into
         * schedule() atomically, we ignore that path for now.
-@@ -4451,6 +4466,9 @@ need_resched:
+@@ -4500,6 +4515,9 @@ need_resched:
        rcu_qsctr_inc(cpu);
        prev = rq->curr;
        switch_count = &prev->nivcsw;
@@ -13125,7 +13156,7 @@ index e4bb1dd..470d43d 100644
  
        release_kernel_lock(prev);
  need_resched_nonpreemptible:
-@@ -4490,15 +4508,18 @@ need_resched_nonpreemptible:
+@@ -4539,15 +4557,18 @@ need_resched_nonpreemptible:
                rq->curr = next;
                ++*switch_count;
  
@@ -13146,7 +13177,7 @@ index e4bb1dd..470d43d 100644
  
        if (unlikely(reacquire_kernel_lock(current) < 0))
                goto need_resched_nonpreemptible;
-@@ -5241,6 +5262,7 @@ recheck:
+@@ -5290,6 +5311,7 @@ recheck:
  
        oldprio = p->prio;
        __setscheduler(rq, p, policy, param->sched_priority);
@@ -13154,7 +13185,7 @@ index e4bb1dd..470d43d 100644
  
        if (running)
                p->sched_class->set_curr_task(rq);
-@@ -5570,6 +5592,7 @@ static void __cond_resched(void)
+@@ -5619,6 +5641,7 @@ static void __cond_resched(void)
  #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
        __might_sleep(__FILE__, __LINE__);
  #endif
@@ -13162,7 +13193,7 @@ index e4bb1dd..470d43d 100644
        /*
         * The BKS might be reacquired before we have dropped
         * PREEMPT_ACTIVE, which could trigger a second
-@@ -9388,3 +9411,60 @@ struct cgroup_subsys cpuacct_subsys = {
+@@ -9437,3 +9460,60 @@ struct cgroup_subsys cpuacct_subsys = {
        .subsys_id = cpuacct_subsys_id,
  };
  #endif        /* CONFIG_CGROUP_CPUACCT */
@@ -13224,7 +13255,7 @@ index e4bb1dd..470d43d 100644
 +
 +#endif /* CONFIG_IPIPE */
 diff --git a/kernel/signal.c b/kernel/signal.c
-index 4530fc6..6858bd5 100644
+index d896bc4..06f2c82 100644
 --- a/kernel/signal.c
 +++ b/kernel/signal.c
 @@ -494,6 +494,7 @@ void signal_wake_up(struct task_struct *t, int resume)
@@ -13304,7 +13335,7 @@ index 342fc9c..3665e47 100644
        }
  
 diff --git a/kernel/timer.c b/kernel/timer.c
-index dbd50fa..0c2a5ec 100644
+index a5eaea2..6ecc85e 100644
 --- a/kernel/timer.c
 +++ b/kernel/timer.c
 @@ -1052,6 +1052,26 @@ void update_process_times(int user_tick)
@@ -13493,7 +13524,7 @@ index 9c4b025..08f096b 100644
 +
 +EXPORT_SYMBOL(_raw_write_unlock);
 diff --git a/mm/memory.c b/mm/memory.c
-index 164951c..b3b1d8f 100644
+index fe2257f..d710733 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
 @@ -52,6 +52,7 @@
@@ -13774,10 +13805,10 @@ index 164951c..b3b1d8f 100644
 +
 +#endif
 diff --git a/mm/mlock.c b/mm/mlock.c
-index 1ada366..2d7ff28 100644
+index 64dca47..4058ba6 100644
 --- a/mm/mlock.c
 +++ b/mm/mlock.c
-@@ -572,10 +572,10 @@ asmlinkage long sys_munlock(unsigned long start, size_t 
len)
+@@ -532,10 +532,10 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, 
len)
  static int do_mlockall(int flags)
  {
        struct vm_area_struct * vma, * prev = NULL;
@@ -13791,24 +13822,15 @@ index 1ada366..2d7ff28 100644
        if (flags == MCL_FUTURE)
                goto out;
 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
-index 1ddb77b..00a13dd 100644
+index 4172ce4..1ad78b1 100644
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -155,7 +155,7 @@ static int vmap_page_range(unsigned long addr, unsigned 
long end,
-                               pgprot_t prot, struct page **pages)
- {
-       pgd_t *pgd;
--      unsigned long next;
-+      unsigned long next, start_addr = addr;
-       int err = 0;
-       int nr = 0;
- 
-@@ -171,6 +171,9 @@ static int vmap_page_range(unsigned long addr, unsigned 
long end,
+@@ -173,6 +173,9 @@ static int vmap_page_range(unsigned long start, unsigned 
long end,
  
        if (unlikely(err))
                return err;
 +
-+      __ipipe_pin_range_globally(start_addr, end);
++      __ipipe_pin_range_globally(start, end);
 +
        return nr;
  }
diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-03.patch 
b/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-04.patch
similarity index 99%
rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-03.patch
rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-04.patch
index 9469e46..2b77d24 100644
--- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-03.patch
+++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.29-arm-1.13-04.patch
@@ -428,7 +428,7 @@ index 0000000..11e5388
 +#endif /* __ASM_ARM_FCSE_H */
 diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h
 new file mode 100644
-index 0000000..807560b
+index 0000000..1a89c56
 --- /dev/null
 +++ b/arch/arm/include/asm/ipipe.h
 @@ -0,0 +1,243 @@
@@ -463,10 +463,10 @@ index 0000000..807560b
 +#include <linux/ipipe_percpu.h>
 +#include <mach/irqs.h>                /* For __IPIPE_FEATURE_PIC_MUTE */
 +
-+#define IPIPE_ARCH_STRING     "1.13-03"
++#define IPIPE_ARCH_STRING     "1.13-04"
 +#define IPIPE_MAJOR_NUMBER    1
 +#define IPIPE_MINOR_NUMBER    13
-+#define IPIPE_PATCH_NUMBER    3
++#define IPIPE_PATCH_NUMBER    4
 +
 +#ifdef CONFIG_SMP
 +#error "I-pipe/arm: SMP not yet implemented"
@@ -1858,10 +1858,10 @@ index 87ab4e1..f72280f 100644
   * These are the registers used in the syscall handler, and allow us to
 diff --git a/arch/arm/kernel/fcse.c b/arch/arm/kernel/fcse.c
 new file mode 100644
-index 0000000..119758e
+index 0000000..22f5669
 --- /dev/null
 +++ b/arch/arm/kernel/fcse.c
-@@ -0,0 +1,171 @@
+@@ -0,0 +1,172 @@
 +#include <linux/bitops.h>
 +#include <linux/memory.h>
 +#include <linux/spinlock.h>
@@ -2000,6 +2000,7 @@ index 0000000..119758e
 +
 +      return res;
 +}
++EXPORT_SYMBOL_GPL(fcse_needs_flush);
 +
 +/* Called with mm->mmap_sem write-locked. */
 +void fcse_relocate_mm_to_null_pid(struct mm_struct *mm)
@@ -2035,10 +2036,10 @@ index 0000000..119758e
 +#endif /* CONFIG_ARM_FCSE_BEST_EFFORT */
 diff --git a/arch/arm/kernel/ipipe.c b/arch/arm/kernel/ipipe.c
 new file mode 100644
-index 0000000..bcf6f33
+index 0000000..1b6a9f7
 --- /dev/null
 +++ b/arch/arm/kernel/ipipe.c
-@@ -0,0 +1,512 @@
+@@ -0,0 +1,518 @@
 +/* -*- linux-c -*-
 + * linux/arch/arm/kernel/ipipe.c
 + *
@@ -2549,8 +2550,14 @@ index 0000000..bcf6f33
 +#endif
 +EXPORT_SYMBOL_GPL(__check_kvm_seq);
 +#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-+EXPORT_SYMBOL(tasklist_lock);
++EXPORT_SYMBOL_GPL(tasklist_lock);
 +#endif /* CONFIG_SMP || CONFIG_DEBUG_SPINLOCK */
++
++#ifdef CONFIG_CPU_HAS_ASID
++EXPORT_SYMBOL_GPL(__new_context);
++EXPORT_SYMBOL_GPL(cpu_last_asid);
++#endif /* CONFIG_CPU_HAS_ASID */
++
 diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
 index 363db18..dc665b6 100644
 --- a/arch/arm/kernel/irq.c
@@ -2746,7 +2753,7 @@ index c69ff23..6aa36f3 100644
 +endif
 diff --git a/arch/arm/mach-at91/at91_ipipe_time.c 
b/arch/arm/mach-at91/at91_ipipe_time.c
 new file mode 100644
-index 0000000..9ba9a35
+index 0000000..13d1dfd
 --- /dev/null
 +++ b/arch/arm/mach-at91/at91_ipipe_time.c
 @@ -0,0 +1,413 @@
@@ -3082,7 +3089,7 @@ index 0000000..9ba9a35
 +void __init at91_timer_init(void)
 +{
 +      unsigned char tc_divisors[] = { 2, 8, 32, 128, 0, };
-+      unsigned master_freq, divisor, divided_freq;
++      unsigned master_freq, divisor = 0, divided_freq = 0;
 +      unsigned long long wrap_ns;
 +
 +      /* Disable (boot loader) timer interrupts. */
diff --git a/ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-02.patch 
b/ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-03.patch
similarity index 99%
rename from ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-02.patch
rename to ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-03.patch
index 070c6f5..f27826a 100644
--- a/ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-02.patch
+++ b/ksrc/arch/arm/patches/adeos-ipipe-2.6.30-arm-1.14-03.patch
@@ -428,7 +428,7 @@ index 0000000..11e5388
 +#endif /* __ASM_ARM_FCSE_H */
 diff --git a/arch/arm/include/asm/ipipe.h b/arch/arm/include/asm/ipipe.h
 new file mode 100644
-index 0000000..8330d78
+index 0000000..8b47644
 --- /dev/null
 +++ b/arch/arm/include/asm/ipipe.h
 @@ -0,0 +1,273 @@
@@ -463,10 +463,10 @@ index 0000000..8330d78
 +#include <linux/ipipe_percpu.h>
 +#include <mach/irqs.h>                /* For __IPIPE_FEATURE_PIC_MUTE */
 +
-+#define IPIPE_ARCH_STRING     "1.14-02"
++#define IPIPE_ARCH_STRING     "1.14-03"
 +#define IPIPE_MAJOR_NUMBER    1
 +#define IPIPE_MINOR_NUMBER    14
-+#define IPIPE_PATCH_NUMBER    2
++#define IPIPE_PATCH_NUMBER    3
 +
 +#ifdef CONFIG_SMP
 +#error "I-pipe/arm: SMP not yet implemented"


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to