Setting tag linux-2.6-32-36
[linux-2.6.git] / linux-2.6-591-chopstix-intern.patch
index 514c21d..bb20c8a 100644 (file)
@@ -1,8 +1,43 @@
+From 6f68de5f723e57e2709b468f55914fd0f963ce90 Mon Sep 17 00:00:00 2001
+From: S.Çağlar Onur <caglar@cs.princeton.edu>
+Date: Tue, 7 Dec 2010 11:09:43 -0500
+Subject: [PATCH] linux-2.6-591-chopstix-intern.patch
+
+block/blk-core.c: In function '__generic_make_request':
+block/blk-core.c:1557: warning: assignment makes integer from pointer without a cast
+fs/exec.c: In function 'open_exec':
+fs/exec.c:698: warning: ISO C90 forbids mixed declarations and code
+fs/bio.c: In function 'bio_endio':
+fs/bio.c:1440: warning: assignment makes integer from pointer without a cast
+mm/slab.c: In function '__cache_alloc':
+mm/slab.c:3513: warning: assignment makes integer from pointer without a cast
+mm/slab.c: In function '__cache_free':
+mm/slab.c:3646: warning: assignment makes integer from pointer without a cast
+
+---
+ arch/Kconfig                     |    8 ++++
+ arch/x86/kernel/asm-offsets_32.c |   25 +++++++++++
+ arch/x86/kernel/entry_32.S       |   28 +++++++++++++
+ arch/x86/mm/fault.c              |   10 +++++
+ block/blk-core.c                 |   29 +++++++++++++
+ drivers/oprofile/cpu_buffer.c    |   30 ++++++++++++++
+ fs/bio.c                         |   31 ++++++++++++++
+ fs/exec.c                        |    8 ++++
+ include/linux/arrays.h           |   39 ++++++++++++++++++
+ include/linux/mutex.h            |    2 +-
+ include/linux/sched.h            |    5 ++
+ kernel/mutex.c                   |   55 +++++++++++++++++++++++++
+ kernel/sched.c                   |   82 +++++++++++++++++++++++++++++++++++++-
+ mm/memory.c                      |   29 +++++++++++++
+ mm/slab.c                        |   54 +++++++++++++++++++++++--
+ 15 files changed, 429 insertions(+), 6 deletions(-)
+ create mode 100644 include/linux/arrays.h
+
 diff --git a/arch/Kconfig b/arch/Kconfig
-index 4e312ff..ef6a721 100644
+index cdea504..608c64d 100644
 --- a/arch/Kconfig
 +++ b/arch/Kconfig
-@@ -43,6 +43,14 @@ config OPROFILE_EVENT_MULTIPLEX
+@@ -27,6 +27,14 @@ config OPROFILE_EVENT_MULTIPLEX
  
          If unsure, say N.
  
@@ -68,10 +103,10 @@ index dfdbf64..29c79b8 100644
        OFFSET(TI_exec_domain, thread_info, exec_domain);
        OFFSET(TI_flags, thread_info, flags);
 diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
-index c097e7d..8eff053 100644
+index 8b8db35..fc82d32 100644
 --- a/arch/x86/kernel/entry_32.S
 +++ b/arch/x86/kernel/entry_32.S
-@@ -526,6 +526,34 @@ ENTRY(system_call)
+@@ -538,6 +538,34 @@ ENTRY(system_call)
        cmpl $(nr_syscalls), %eax
        jae syscall_badsys
  syscall_call:
@@ -107,10 +142,10 @@ index c097e7d..8eff053 100644
        movl %eax,PT_EAX(%esp)          # store the return value
  syscall_exit:
 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
-index 4302583..85bf9f2 100644
+index b899fb7..c827e81 100644
 --- a/arch/x86/mm/fault.c
 +++ b/arch/x86/mm/fault.c
-@@ -62,6 +62,16 @@ static inline int notify_page_fault(struct pt_regs *regs)
+@@ -65,6 +65,16 @@ static inline int notify_page_fault(struct pt_regs *regs)
        return ret;
  }
  
@@ -128,7 +163,7 @@ index 4302583..85bf9f2 100644
   * Prefetch quirks:
   *
 diff --git a/block/blk-core.c b/block/blk-core.c
-index 71da511..1cefcaa 100644
+index 48dbd8d..94030b1 100644
 --- a/block/blk-core.c
 +++ b/block/blk-core.c
 @@ -27,12 +27,23 @@
@@ -155,7 +190,7 @@ index 71da511..1cefcaa 100644
  EXPORT_TRACEPOINT_SYMBOL_GPL(block_remap);
  EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap);
  EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete);
-@@ -1478,6 +1489,24 @@ static inline void __generic_make_request(struct bio *bio)
+@@ -1568,6 +1579,24 @@ static inline void __generic_make_request(struct bio *bio)
  
                trace_block_bio_queue(q, bio);
  
@@ -181,7 +216,7 @@ index 71da511..1cefcaa 100644
        } while (ret);
  
 diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
-index a7aae24..9817d91 100644
+index 9e0ef46..f6217fd 100644
 --- a/drivers/oprofile/cpu_buffer.c
 +++ b/drivers/oprofile/cpu_buffer.c
 @@ -22,6 +22,7 @@
@@ -192,7 +227,7 @@ index a7aae24..9817d91 100644
  
  #include "event_buffer.h"
  #include "cpu_buffer.h"
-@@ -326,6 +327,17 @@ static inline void oprofile_end_trace(struct oprofile_cpu_buffer *cpu_buf)
+@@ -286,6 +287,17 @@ static inline void oprofile_end_trace(struct oprofile_cpu_buffer *cpu_buf)
        cpu_buf->tracing = 0;
  }
  
@@ -210,9 +245,9 @@ index a7aae24..9817d91 100644
  static inline void
  __oprofile_add_ext_sample(unsigned long pc, struct pt_regs * const regs,
                          unsigned long event, int is_kernel)
-@@ -360,7 +372,25 @@ void oprofile_add_sample(struct pt_regs * const regs, unsigned long event)
-       int is_kernel = !user_mode(regs);
-       unsigned long pc = profile_pc(regs);
+@@ -328,7 +340,25 @@ void oprofile_add_sample(struct pt_regs * const regs, unsigned long event)
+               pc = ESCAPE_CODE; /* as this causes an early return. */
+       }
  
 +#ifdef CONFIG_CHOPSTIX
 +      if (rec_event) {
@@ -237,7 +272,7 @@ index a7aae24..9817d91 100644
  
  /*
 diff --git a/fs/bio.c b/fs/bio.c
-index e0c9e71..796767d 100644
+index 06f71fc..56fc42d 100644
 --- a/fs/bio.c
 +++ b/fs/bio.c
 @@ -26,6 +26,7 @@
@@ -256,7 +291,7 @@ index e0c9e71..796767d 100644
  /*
   * fs_bio_set is the bio_set containing bio and iovec memory pools used by
   * IO code that does not need private memory pools.
-@@ -1398,6 +1400,17 @@ void bio_check_pages_dirty(struct bio *bio)
+@@ -1408,6 +1410,17 @@ void bio_check_pages_dirty(struct bio *bio)
        }
  }
  
@@ -274,7 +309,7 @@ index e0c9e71..796767d 100644
  /**
   * bio_endio - end I/O on a bio
   * @bio:      bio
-@@ -1419,6 +1432,24 @@ void bio_endio(struct bio *bio, int error)
+@@ -1429,6 +1442,24 @@ void bio_endio(struct bio *bio, int error)
        else if (!test_bit(BIO_UPTODATE, &bio->bi_flags))
                error = -EIO;
  
@@ -300,7 +335,7 @@ index e0c9e71..796767d 100644
                bio->bi_end_io(bio, error);
  }
 diff --git a/fs/exec.c b/fs/exec.c
-index 0a049b8..c2296b5 100644
+index 7fdbf49..6f2d772 100644
 --- a/fs/exec.c
 +++ b/fs/exec.c
 @@ -27,6 +27,7 @@
@@ -311,7 +346,7 @@ index 0a049b8..c2296b5 100644
  #include <linux/fcntl.h>
  #include <linux/smp_lock.h>
  #include <linux/swap.h>
-@@ -673,6 +674,13 @@ struct file *open_exec(const char *name)
+@@ -735,6 +736,13 @@ struct file *open_exec(const char *name)
        if (err)
                goto exit;
  
@@ -384,10 +419,10 @@ index 878cab4..6c21914 100644
  #endif
  #ifdef CONFIG_DEBUG_MUTEXES
 diff --git a/include/linux/sched.h b/include/linux/sched.h
-index c9d3cae..dd62888 100644
+index b0cb58b..45f69c3 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -1349,6 +1349,11 @@ struct task_struct {
+@@ -1398,6 +1398,11 @@ struct task_struct {
        cputime_t utime, stime, utimescaled, stimescaled;
        cputime_t gtime;
        cputime_t prev_utime, prev_stime;
@@ -400,7 +435,7 @@ index c9d3cae..dd62888 100644
        struct timespec start_time;             /* monotonic time */
        struct timespec real_start_time;        /* boot based time */
 diff --git a/kernel/mutex.c b/kernel/mutex.c
-index 947b3ad..ae1dc67 100644
+index e04aa45..196ac04 100644
 --- a/kernel/mutex.c
 +++ b/kernel/mutex.c
 @@ -23,6 +23,16 @@
@@ -430,7 +465,7 @@ index 947b3ad..ae1dc67 100644
        spin_lock_init(&lock->wait_lock);
        INIT_LIST_HEAD(&lock->wait_list);
        mutex_clear_owner(lock);
-@@ -247,6 +260,25 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
+@@ -254,6 +267,25 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
                }
                __set_task_state(task, state);
  
@@ -456,7 +491,7 @@ index 947b3ad..ae1dc67 100644
                /* didnt get the lock, go to sleep: */
                spin_unlock_mutex(&lock->wait_lock, flags);
                preempt_enable_no_resched();
-@@ -261,6 +293,10 @@ done:
+@@ -268,6 +300,10 @@ done:
        mutex_remove_waiter(lock, &waiter, current_thread_info());
        mutex_set_owner(lock);
  
@@ -467,7 +502,7 @@ index 947b3ad..ae1dc67 100644
        /* set it to 0 if there are no waiters left: */
        if (likely(list_empty(&lock->wait_list)))
                atomic_set(&lock->count, 0);
-@@ -331,6 +367,25 @@ __mutex_unlock_common_slowpath(atomic_t *lock_count, int nested)
+@@ -338,6 +374,25 @@ __mutex_unlock_common_slowpath(atomic_t *lock_count, int nested)
  
                debug_mutex_wake_waiter(lock, waiter);
  
@@ -494,7 +529,7 @@ index 947b3ad..ae1dc67 100644
        }
  
 diff --git a/kernel/sched.c b/kernel/sched.c
-index 90b63b8..43b728e 100644
+index 1e90fc0..aa4d3d7 100644
 --- a/kernel/sched.c
 +++ b/kernel/sched.c
 @@ -10,7 +10,7 @@
@@ -506,7 +541,7 @@ index 90b63b8..43b728e 100644
   *            an array-switch method of distributing timeslices
   *            and per-CPU runqueues.  Cleanups and useful suggestions
   *            by Davide Libenzi, preemptible kernel bits by Robert Love.
-@@ -73,12 +73,16 @@
+@@ -73,6 +73,7 @@
  #include <linux/ftrace.h>
  #include <linux/vs_sched.h>
  #include <linux/vs_cvirt.h>
@@ -514,8 +549,9 @@ index 90b63b8..43b728e 100644
  
  #include <asm/tlb.h>
  #include <asm/irq_regs.h>
+@@ -80,6 +81,9 @@
  #include "sched_cpupri.h"
+ #include "sched_autogroup.h"
  
 +#define INTERRUPTIBLE   -1
 +#define RUNNING         0
@@ -523,18 +559,18 @@ index 90b63b8..43b728e 100644
  #define CREATE_TRACE_POINTS
  #include <trace/events/sched.h>
  
-@@ -2742,6 +2746,10 @@ static void __sched_fork(struct task_struct *p)
-       INIT_HLIST_HEAD(&p->preempt_notifiers);
- #endif
+@@ -2670,6 +2674,10 @@ static int try_to_wake_up(struct task_struct *p, unsigned int state,
+       rq = cpu_rq(cpu);
+       spin_lock(&rq->lock);
  
 +#ifdef CONFIG_CHOPSTIX
 +    p->last_ran_j = jiffies;
 +    p->last_interrupted = INTERRUPTIBLE;
 +#endif
        /*
-        * We mark the process as running here, but have not actually
-        * inserted it onto the runqueue yet. This guarantees that
-@@ -5659,6 +5667,30 @@ pick_next_task(struct rq *rq)
+        * We migrated the task without holding either rq->lock, however
+        * since the task is not on the task list itself, nobody else
+@@ -5988,6 +5996,30 @@ pick_next_task(struct rq *rq)
        }
  }
  
@@ -565,7 +601,7 @@ index 90b63b8..43b728e 100644
  /*
   * schedule() is the main scheduler function.
   */
-@@ -5706,6 +5738,54 @@ need_resched_nonpreemptible:
+@@ -6034,6 +6066,54 @@ need_resched_nonpreemptible:
        next = pick_next_task(rq);
  
        if (likely(prev != next)) {
@@ -618,10 +654,10 @@ index 90b63b8..43b728e 100644
 +#endif
 +
                sched_info_switch(prev, next);
-               perf_event_task_sched_out(prev, next, cpu);
+               perf_event_task_sched_out(prev, next);
  
 diff --git a/mm/memory.c b/mm/memory.c
-index e828063..6e88fed 100644
+index dbd2c19..7f3667d 100644
 --- a/mm/memory.c
 +++ b/mm/memory.c
 @@ -57,6 +57,7 @@
@@ -632,7 +668,7 @@ index e828063..6e88fed 100644
  
  #include <asm/io.h>
  #include <asm/pgalloc.h>
-@@ -3070,6 +3071,16 @@ out:
+@@ -3168,6 +3169,16 @@ out:
        return ret;
  }
  
@@ -649,7 +685,7 @@ index e828063..6e88fed 100644
  /*
   * By the time we get here, we already hold the mm semaphore
   */
-@@ -3115,6 +3126,24 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -3213,6 +3224,24 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
        if (!pte)
                return VM_FAULT_OOM;
  
@@ -675,7 +711,7 @@ index e828063..6e88fed 100644
  }
  
 diff --git a/mm/slab.c b/mm/slab.c
-index ad2828e..5acdf6c 100644
+index c3ceb66..ad2f1a9 100644
 --- a/mm/slab.c
 +++ b/mm/slab.c
 @@ -113,6 +113,7 @@
@@ -685,8 +721,8 @@ index ad2828e..5acdf6c 100644
 +#include <linux/arrays.h>
  #include      <linux/debugobjects.h>
  #include      <linux/kmemcheck.h>
-@@ -252,6 +253,16 @@ struct slab_rcu {
+ #include      <linux/memory.h>
+@@ -253,6 +254,16 @@ struct slab_rcu {
        void *addr;
  };
  
@@ -703,7 +739,7 @@ index ad2828e..5acdf6c 100644
  /*
   * struct array_cache
   *
-@@ -3400,6 +3411,19 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
+@@ -3497,6 +3508,19 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller)
        kmemleak_alloc_recursive(objp, obj_size(cachep), 1, cachep->flags,
                                 flags);
        prefetchw(objp);
@@ -723,7 +759,7 @@ index ad2828e..5acdf6c 100644
  
        if (likely(objp))
                kmemcheck_slab_alloc(cachep, flags, objp, obj_size(cachep));
-@@ -3512,13 +3536,28 @@ free_done:
+@@ -3609,13 +3633,28 @@ free_done:
   * Release an obj back to its cache. If the obj has a constructed state, it must
   * be in this state _before_ it is released.  Called with disabled ints.
   */
@@ -754,7 +790,7 @@ index ad2828e..5acdf6c 100644
        vx_slab_free(cachep);
  
        kmemcheck_slab_free(cachep, objp, obj_size(cachep));
-@@ -3720,10 +3759,17 @@ void *__kmalloc_track_caller(size_t size, gfp_t flags, unsigned long caller)
+@@ -3817,10 +3856,17 @@ void *__kmalloc_track_caller(size_t size, gfp_t flags, unsigned long caller)
  EXPORT_SYMBOL(__kmalloc_track_caller);
  
  #else
@@ -772,7 +808,7 @@ index ad2828e..5acdf6c 100644
  EXPORT_SYMBOL(__kmalloc);
  #endif
  
-@@ -3743,7 +3789,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
+@@ -3840,7 +3886,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
        debug_check_no_locks_freed(objp, obj_size(cachep));
        if (!(cachep->flags & SLAB_DEBUG_OBJECTS))
                debug_check_no_obj_freed(objp, obj_size(cachep));
@@ -781,7 +817,7 @@ index ad2828e..5acdf6c 100644
        local_irq_restore(flags);
  
        trace_kmem_cache_free(_RET_IP_, objp);
-@@ -3773,7 +3819,7 @@ void kfree(const void *objp)
+@@ -3870,7 +3916,7 @@ void kfree(const void *objp)
        c = virt_to_cache(objp);
        debug_check_no_locks_freed(objp, obj_size(c));
        debug_check_no_obj_freed(objp, obj_size(c));