]> nv-tegra.nvidia Code Review - linux-2.6.git/commitdiff
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 17 May 2007 04:15:18 +0000 (21:15 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 17 May 2007 04:15:18 +0000 (21:15 -0700)
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] optimize pagefaults a little
  [IA64] Fix section conflict of ia64_mlogbuf_finish
  [IA64] s/scalibility/scalability/
  [IA64] kdump on INIT needs multi-nodes sync-up (v.2)
  [IA64] wire up {signal,timer,event}fd syscalls
  [IA64] spelling fixes: arch/ia64/

35 files changed:
arch/ia64/kernel/acpi.c
arch/ia64/kernel/crash.c
arch/ia64/kernel/entry.S
arch/ia64/kernel/irq.c
arch/ia64/kernel/irq_lsapic.c
arch/ia64/kernel/kprobes.c
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca_drv.c
arch/ia64/kernel/module.c
arch/ia64/kernel/perfmon.c
arch/ia64/kernel/perfmon_mckinley.h
arch/ia64/kernel/sal.c
arch/ia64/kernel/salinfo.c
arch/ia64/kernel/setup.c
arch/ia64/kernel/smp.c
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/traps.c
arch/ia64/kernel/unwind.c
arch/ia64/mm/discontig.c
arch/ia64/mm/fault.c
arch/ia64/sn/kernel/bte.c
arch/ia64/sn/kernel/bte_error.c
arch/ia64/sn/kernel/io_common.c
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/sn2/sn2_smp.c
arch/ia64/sn/kernel/xpc_channel.c
arch/ia64/sn/kernel/xpnet.c
arch/ia64/sn/pci/pci_dma.c
arch/ia64/sn/pci/pcibr/pcibr_ate.c
arch/ia64/sn/pci/pcibr/pcibr_dma.c
arch/ia64/sn/pci/tioca_provider.c
arch/ia64/sn/pci/tioce_provider.c
include/asm-ia64/kdebug.h
include/asm-ia64/kprobes.h
include/asm-ia64/unistd.h

index 3549c94467b8a2ceea285af768f5a3a6da2dbc32..c4784494970e5ed0ebf54d67bffbbedf5c31783a 100644 (file)
@@ -791,7 +791,7 @@ static __init int setup_additional_cpus(char *s)
 early_param("additional_cpus", setup_additional_cpus);
 
 /*
- * cpu_possible_map should be static, it cannot change as cpu's
+ * cpu_possible_map should be static, it cannot change as CPUs
  * are onlined, or offlined. The reason is per-cpu data-structures
  * are allocated by some modules at init time, and dont expect to
  * do this dynamically on cpu arrival/departure.
index aeb79fb28f0bbd56672ea1c4b1e33bf7f58f33ec..1d64ef478dde9397ec99e5dace2ce9e52ba996d9 100644 (file)
@@ -156,24 +156,30 @@ kdump_init_notifier(struct notifier_block *self, unsigned long val, void *data)
        if (!kdump_on_init)
                return NOTIFY_DONE;
 
-       if (val != DIE_INIT_MONARCH_ENTER &&
-           val != DIE_INIT_SLAVE_ENTER &&
+       if (val != DIE_INIT_MONARCH_LEAVE &&
+           val != DIE_INIT_SLAVE_LEAVE &&
+           val != DIE_INIT_MONARCH_PROCESS &&
            val != DIE_MCA_RENDZVOUS_LEAVE &&
            val != DIE_MCA_MONARCH_LEAVE)
                return NOTIFY_DONE;
 
        nd = (struct ia64_mca_notify_die *)args->err;
-       /* Reason code 1 means machine check rendezous*/
-       if ((val == DIE_INIT_MONARCH_ENTER || val == DIE_INIT_SLAVE_ENTER) &&
-                nd->sos->rv_rc == 1)
+       /* Reason code 1 means machine check rendezvous*/
+       if ((val == DIE_INIT_MONARCH_LEAVE || val == DIE_INIT_SLAVE_LEAVE
+           || val == DIE_INIT_MONARCH_PROCESS) && nd->sos->rv_rc == 1)
                return NOTIFY_DONE;
 
        switch (val) {
-               case DIE_INIT_MONARCH_ENTER:
+               case DIE_INIT_MONARCH_PROCESS:
+                       atomic_set(&kdump_in_progress, 1);
+                       *(nd->monarch_cpu) = -1;
+                       break;
+               case DIE_INIT_MONARCH_LEAVE:
                        machine_kdump_on_init();
                        break;
-               case DIE_INIT_SLAVE_ENTER:
-                       unw_init_running(kdump_cpu_freeze, NULL);
+               case DIE_INIT_SLAVE_LEAVE:
+                       if (atomic_read(&kdump_in_progress))
+                               unw_init_running(kdump_cpu_freeze, NULL);
                        break;
                case DIE_MCA_RENDZVOUS_LEAVE:
                        if (atomic_read(&kdump_in_progress))
@@ -215,8 +221,10 @@ static ctl_table sys_table[] = {
 static int
 machine_crash_setup(void)
 {
+       /* be notified before default_monarch_init_process */
        static struct notifier_block kdump_init_notifier_nb = {
                .notifier_call = kdump_init_notifier,
+               .priority = 1,
        };
        int ret;
        if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0)
index 144b056282af0c06762fc1060cca5c219085523b..95f517515235ef1612d35f1eb635c407c0a7dad7 100644 (file)
@@ -1585,5 +1585,8 @@ sys_call_table:
        data8 sys_getcpu
        data8 sys_epoll_pwait                   // 1305
        data8 sys_utimensat
+       data8 sys_signalfd
+       data8 sys_timerfd
+       data8 sys_eventfd
 
        .org sys_call_table + 8*NR_syscalls     // guard against failures to increase NR_syscalls
index b4c239685d2eb8f0072d2510573d027ab867d1c3..407b45870489ebb6cb5024dde6eefa00809c9596 100644 (file)
@@ -4,7 +4,7 @@
  *     Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar
  *
  * This file contains the code used by various IRQ handling routines:
- * asking for different IRQ's should be done through these routines
+ * asking for different IRQs should be done through these routines
  * instead of just grabbing them. Thus setups with different IRQ numbers
  * shouldn't result in any weird surprises, and installing new handlers
  * should be easier.
@@ -12,7 +12,7 @@
  * Copyright (C) Ashok Raj<ashok.raj@intel.com>, Intel Corporation 2004
  *
  * 4/14/2004: Added code to handle cpu migration and do safe irq
- *                     migration without lossing interrupts for iosapic
+ *                     migration without losing interrupts for iosapic
  *                     architecture.
  */
 
@@ -190,7 +190,7 @@ void fixup_irqs(void)
        }
 
        /*
-        * Phase 1: Locate irq's bound to this cpu and
+        * Phase 1: Locate IRQs bound to this cpu and
         * relocate them for cpu removal.
         */
        migrate_irqs();
index c2f07beb17590fcd9e2796208c1355e555d0827f..e56a7a36aca30d061538fb490e86ec9241b25eed 100644 (file)
@@ -23,7 +23,7 @@ lsapic_noop_startup (unsigned int irq)
 static void
 lsapic_noop (unsigned int irq)
 {
-       /* nuthing to do... */
+       /* nothing to do... */
 }
 
 static int lsapic_retrigger(unsigned int irq)
index 72e593e940531dc136af5334f83d29f00235ff31..5bc46f1513443b3fa6e28d82baced294d7c776d7 100644 (file)
@@ -151,12 +151,12 @@ static uint __kprobes is_cmp_ctype_unc_inst(uint template, uint slot,
 
        cmp_inst.l = kprobe_inst;
        if ((cmp_inst.f.x2 == 0) || (cmp_inst.f.x2 == 1)) {
-               /* Integere compare - Register Register (A6 type)*/
+               /* Integer compare - Register Register (A6 type)*/
                if ((cmp_inst.f.tb == 0) && (cmp_inst.f.ta == 0)
                                &&(cmp_inst.f.c == 1))
                        ctype_unc = 1;
        } else if ((cmp_inst.f.x2 == 2)||(cmp_inst.f.x2 == 3)) {
-               /* Integere compare - Immediate Register (A8 type)*/
+               /* Integer compare - Immediate Register (A8 type)*/
                if ((cmp_inst.f.ta == 0) &&(cmp_inst.f.c == 1))
                        ctype_unc = 1;
        }
@@ -820,7 +820,7 @@ out:
        return 1;
 }
 
-static int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr)
+int __kprobes kprobes_fault_handler(struct pt_regs *regs, int trapnr)
 {
        struct kprobe *cur = kprobe_running();
        struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
@@ -904,13 +904,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
                        if (post_kprobes_handler(args->regs))
                                ret = NOTIFY_STOP;
                break;
-       case DIE_PAGE_FAULT:
-               /* kprobe_running() needs smp_processor_id() */
-               preempt_disable();
-               if (kprobe_running() &&
-                       kprobes_fault_handler(args->regs, args->trapnr))
-                       ret = NOTIFY_STOP;
-               preempt_enable();
        default:
                break;
        }
@@ -954,7 +947,7 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs)
        /*
         * Callee owns the argument space and could overwrite it, eg
         * tail call optimization. So to be absolutely safe
-        * we save the argument space before transfering the control
+        * we save the argument space before transferring the control
         * to instrumented jprobe function which runs in
         * the process context
         */
index 26814de6c29ace5955dc65b3b0eac36b97f36e69..1ead5ea6c5ce71afaf259eb6629abc8f65a0c11e 100644 (file)
@@ -273,7 +273,6 @@ static void ia64_mlogbuf_finish(int wait)
 
        mlogbuf_finished = 1;
 }
-EXPORT_SYMBOL(ia64_mlogbuf_finish);
 
 /*
  * Print buffered messages from INIT context.
@@ -1477,6 +1476,10 @@ default_monarch_init_process(struct notifier_block *self, unsigned long val, voi
        struct task_struct *g, *t;
        if (val != DIE_INIT_MONARCH_PROCESS)
                return NOTIFY_DONE;
+#ifdef CONFIG_KEXEC
+       if (atomic_read(&kdump_in_progress))
+               return NOTIFY_DONE;
+#endif
 
        /*
         * FIXME: mlogbuf will brim over with INIT stack dumps.
index 70b8bdbb7e6f8b49e46c4fb84f637b7cab9d2b26..aba813c2c150670e808078a4e5866096f523a3db 100644 (file)
@@ -438,7 +438,7 @@ is_mca_global(peidx_table_t *peidx, pal_bus_check_info_t *pbci,
  * @peidx:     pointer of index of processor error section
  *
  * Return value:
- *     target address on Success / 0 on Failue
+ *     target address on Success / 0 on Failure
  */
 static u64
 get_target_identifier(peidx_table_t *peidx)
@@ -701,7 +701,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx,
                return fatal_mca("External bus check fatal status");
 
        /*
-        * This is a local MCA and estimated as a recoverble error.
+        * This is a local MCA and estimated as a recoverable error.
         */
        if (platform)
                return recover_from_platform_error(slidx, peidx, pbci, sos);
index 158e3c51bb771fb5efb5d3424c7efda4c68905bf..196287928baebcee3a1ac8a33f389510a316d371 100644 (file)
@@ -861,7 +861,7 @@ apply_relocate (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symindex,
 /*
  * Modules contain a single unwind table which covers both the core and the init text
  * sections but since the two are not contiguous, we need to split this table up such that
- * we can register (and unregister) each "segment" seperately.  Fortunately, this sounds
+ * we can register (and unregister) each "segment" separately.  Fortunately, this sounds
  * more complicated than it really is.
  */
 static void
index e7191ca30b165806d1cf28a49c88ca89f99d2512..b7133cabdbea98db50b6e348ca6173fc1a790239 100644 (file)
@@ -1318,7 +1318,7 @@ pfm_reserve_session(struct task_struct *task, int is_syswide, unsigned int cpu)
 {
        unsigned long flags;
        /*
-        * validy checks on cpu_mask have been done upstream
+        * validity checks on cpu_mask have been done upstream
         */
        LOCK_PFS(flags);
 
@@ -1384,7 +1384,7 @@ pfm_unreserve_session(pfm_context_t *ctx, int is_syswide, unsigned int cpu)
 {
        unsigned long flags;
        /*
-        * validy checks on cpu_mask have been done upstream
+        * validity checks on cpu_mask have been done upstream
         */
        LOCK_PFS(flags);
 
@@ -1835,7 +1835,7 @@ pfm_flush(struct file *filp, fl_owner_t id)
        /*
         * remove our file from the async queue, if we use this mode.
         * This can be done without the context being protected. We come
-        * here when the context has become unreacheable by other tasks.
+        * here when the context has become unreachable by other tasks.
         *
         * We may still have active monitoring at this point and we may
         * end up in pfm_overflow_handler(). However, fasync_helper()
@@ -2132,7 +2132,7 @@ doit:
        filp->private_data = NULL;
 
        /*
-        * if we free on the spot, the context is now completely unreacheable
+        * if we free on the spot, the context is now completely unreachable
         * from the callers side. The monitored task side is also cut, so we
         * can freely cut.
         *
@@ -2562,7 +2562,7 @@ pfm_reset_pmu_state(pfm_context_t *ctx)
        ctx->ctx_all_pmcs[0] = pmu_conf->impl_pmcs[0] & ~0x1;
 
        /*
-        * bitmask of all PMDs that are accesible to this context
+        * bitmask of all PMDs that are accessible to this context
         */
        ctx->ctx_all_pmds[0] = pmu_conf->impl_pmds[0];
 
@@ -3395,7 +3395,7 @@ pfm_read_pmds(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
                if (unlikely(!PMD_IS_IMPL(cnum))) goto error;
                /*
                 * we can only read the register that we use. That includes
-                * the one we explicitely initialize AND the one we want included
+                * the one we explicitly initialize AND the one we want included
                 * in the sampling buffer (smpl_regs).
                 *
                 * Having this restriction allows optimization in the ctxsw routine
@@ -3715,7 +3715,7 @@ pfm_restart(pfm_context_t *ctx, void *arg, int count, struct pt_regs *regs)
         * if non-blocking, then we ensure that the task will go into
         * pfm_handle_work() before returning to user mode.
         *
-        * We cannot explicitely reset another task, it MUST always
+        * We cannot explicitly reset another task, it MUST always
         * be done by the task itself. This works for system wide because
         * the tool that is controlling the session is logically doing 
         * "self-monitoring".
@@ -4644,7 +4644,7 @@ pfm_exit_thread(struct task_struct *task)
        switch(state) {
                case PFM_CTX_UNLOADED:
                        /*
-                        * only comes to thios function if pfm_context is not NULL, i.e., cannot
+                        * only comes to this function if pfm_context is not NULL, i.e., cannot
                         * be in unloaded state
                         */
                        printk(KERN_ERR "perfmon: pfm_exit_thread [%d] ctx unloaded\n", task->pid);
@@ -5247,7 +5247,7 @@ pfm_end_notify_user(pfm_context_t *ctx)
 
 /*
  * main overflow processing routine.
- * it can be called from the interrupt path or explicitely during the context switch code
+ * it can be called from the interrupt path or explicitly during the context switch code
  */
 static void
 pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, struct pt_regs *regs)
index 9becccda28975fa539774cfe295bd2af13cd6137..c4bec7a9d18ffa0fafa8ca973e62ee118a5c30fa 100644 (file)
@@ -181,7 +181,7 @@ static pmu_config_t pmu_conf_mck={
        .pmc_desc      = pfm_mck_pmc_desc,
        .num_ibrs       = 8,
        .num_dbrs       = 8,
-       .use_rr_dbregs = 1 /* debug register are use for range retrictions */
+       .use_rr_dbregs = 1 /* debug register are use for range restrictions */
 };
 
 
index 37c876f95dba38de4fbc4e30b159e6c472704a65..27c2ef445a565abb1cb62c8ae8ff983a4ca6f2fc 100644 (file)
@@ -134,7 +134,7 @@ set_smp_redirect (int flag)
         * interrupt redirection. The reason is this would require that
         * All interrupts be stopped and hard bind the irq to a cpu.
         * Later when the interrupt is fired we need to set the redir hint
-        * on again in the vector. This is combersome for something that the
+        * on again in the vector. This is cumbersome for something that the
         * user mode irq balancer will solve anyways.
         */
        no_int_routing=1;
index 89f6b138a62cc2c7f82f7c0fed22c7fbafcc065a..25cd75f50ab10606c5337d91ec0fe6525fc95b2c 100644 (file)
@@ -162,7 +162,7 @@ static DEFINE_SPINLOCK(data_saved_lock);
 /** salinfo_platform_oemdata - optional callback to decode oemdata from an error
  * record.
  * @sect_header: pointer to the start of the section to decode.
- * @oemdata: returns vmalloc area containing the decded output.
+ * @oemdata: returns vmalloc area containing the decoded output.
  * @oemdata_size: returns length of decoded output (strlen).
  *
  * Description: If user space asks for oem data to be decoded by the kernel
index 9df1efe7487d8ae5d23826db03f59958aa4e0d30..eaa6a24bc0b6e61b284d38aef67fa2db6e31f1c2 100644 (file)
@@ -576,7 +576,7 @@ setup_arch (char **cmdline_p)
 }
 
 /*
- * Display cpu info for all cpu's.
+ * Display cpu info for all CPUs.
  */
 static int
 show_cpuinfo (struct seq_file *m, void *v)
@@ -761,7 +761,7 @@ identify_cpu (struct cpuinfo_ia64 *c)
        c->cpu = smp_processor_id();
 
        /* below default values will be overwritten  by identify_siblings() 
-        * for Multi-Threading/Multi-Core capable cpu's
+        * for Multi-Threading/Multi-Core capable CPUs
         */
        c->threads_per_core = c->cores_per_socket = c->num_log = 1;
        c->socket_id = -1;
@@ -947,7 +947,7 @@ cpu_init (void)
        ia32_cpu_init();
 #endif
 
-       /* Clear ITC to eliminiate sched_clock() overflows in human time.  */
+       /* Clear ITC to eliminate sched_clock() overflows in human time.  */
        ia64_set_itc(0);
 
        /* disable all local interrupt sources: */
index 221de38045604ef1f791a015f61e2a399ca00a89..b3a47f986e1e69e99e5cc980cdff3af3418a368a 100644 (file)
@@ -186,7 +186,7 @@ handle_IPI (int irq, void *dev_id)
 }
 
 /*
- * Called with preeemption disabled.
+ * Called with preemption disabled.
  */
 static inline void
 send_IPI_single (int dest_cpu, int op)
@@ -196,7 +196,7 @@ send_IPI_single (int dest_cpu, int op)
 }
 
 /*
- * Called with preeemption disabled.
+ * Called with preemption disabled.
  */
 static inline void
 send_IPI_allbutself (int op)
@@ -210,7 +210,7 @@ send_IPI_allbutself (int op)
 }
 
 /*
- * Called with preeemption disabled.
+ * Called with preemption disabled.
  */
 static inline void
 send_IPI_all (int op)
@@ -223,7 +223,7 @@ send_IPI_all (int op)
 }
 
 /*
- * Called with preeemption disabled.
+ * Called with preemption disabled.
  */
 static inline void
 send_IPI_self (int op)
@@ -252,7 +252,7 @@ kdump_smp_send_init(void)
 }
 #endif
 /*
- * Called with preeemption disabled.
+ * Called with preemption disabled.
  */
 void
 smp_send_reschedule (int cpu)
@@ -261,7 +261,7 @@ smp_send_reschedule (int cpu)
 }
 
 /*
- * Called with preeemption disabled.
+ * Called with preemption disabled.
  */
 static void
 smp_send_local_flush_tlb (int cpu)
index a44792d0f3a97aadb215c60a841b21fb285aa22a..542958079f1b1eb4b0da70f0dc0beeca8260257e 100644 (file)
@@ -694,7 +694,7 @@ int migrate_platform_irqs(unsigned int cpu)
                        set_cpei_target_cpu(new_cpei_cpu);
                        desc = irq_desc + ia64_cpe_irq;
                        /*
-                        * Switch for now, immediatly, we need to do fake intr
+                        * Switch for now, immediately, we need to do fake intr
                         * as other interrupts, but need to study CPEI behaviour with
                         * polling before making changes.
                         */
@@ -840,7 +840,7 @@ __cpu_up (unsigned int cpu)
 }
 
 /*
- * Assume that CPU's have been discovered by some platform-dependent interface.  For
+ * Assume that CPUs have been discovered by some platform-dependent interface.  For
  * SoftSDV/Lion, that would be ACPI.
  *
  * Setup of the IPI irq handler is done in irq.c:init_IRQ_SMP().
@@ -854,7 +854,7 @@ init_smp_config(void)
        } *ap_startup;
        long sal_ret;
 
-       /* Tell SAL where to drop the AP's.  */
+       /* Tell SAL where to drop the APs.  */
        ap_startup = (struct fptr *) start_ap;
        sal_ret = ia64_sal_set_vectors(SAL_VECTOR_OS_BOOT_RENDEZ,
                                       ia64_tpa(ap_startup->fp), ia64_tpa(ap_startup->gp), 0, 0, 0, 0);
index b8e0d70bf9893f21451d7baad5f6dfd033bac527..15ad85da15a9b2e8f533bf8e7c111dda1bc88a31 100644 (file)
@@ -304,7 +304,7 @@ handle_fpu_swa (int fp_fault, struct pt_regs *regs, unsigned long isr)
                         * Lower 4 bits are used as a count. Upper bits are a sequence
                         * number that is updated when count is reset. The cmpxchg will
                         * fail is seqno has changed. This minimizes mutiple cpus
-                        * reseting the count.
+                        * resetting the count.
                         */
                        if (current_jiffies > last.time)
                                (void) cmpxchg_acq(&last.count, count, 16 + (count & ~15));
index fe1426266b9bf3092191c83183e174e746a58684..7d3dd6cdafa4aeef31008c31bf62e45cab95da75 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999-2004 Hewlett-Packard Co
  *     David Mosberger-Tang <davidm@hpl.hp.com>
  * Copyright (C) 2003 Fenghua Yu <fenghua.yu@intel.com>
- *     - Change pt_regs_off() to make it less dependant on pt_regs structure.
+ *     - Change pt_regs_off() to make it less dependent on pt_regs structure.
  */
 /*
  * This file implements call frame unwind support for the Linux
index 38085ac183380af17b1a805151c10699a89385fb..0dbf0e81f8c00a4a42442f8b58a1a2c4fb35dda6 100644 (file)
@@ -317,7 +317,7 @@ static void __meminit scatter_node_data(void)
         * node_online_map is not set for hot-added nodes at this time,
         * because we are halfway through initialization of the new node's
         * structures.  If for_each_online_node() is used, a new node's
-        * pg_data_ptrs will be not initialized. Insted of using it,
+        * pg_data_ptrs will be not initialized. Instead of using it,
         * pgdat_list[] is checked.
         */
        for_each_node(node) {
index 21658e02116c5a77f3694f64ba15e3856d5938c8..b87f785c24161f2a8c4fc6061d89429ff5fd46ba 100644 (file)
 extern void die (char *, struct pt_regs *, long);
 
 #ifdef CONFIG_KPROBES
-ATOMIC_NOTIFIER_HEAD(notify_page_fault_chain);
-
-/* Hook to register for page fault notifications */
-int register_page_fault_notifier(struct notifier_block *nb)
-{
-       return atomic_notifier_chain_register(&notify_page_fault_chain, nb);
-}
-
-int unregister_page_fault_notifier(struct notifier_block *nb)
+static inline int notify_page_fault(struct pt_regs *regs, int trap)
 {
-       return atomic_notifier_chain_unregister(&notify_page_fault_chain, nb);
-}
+       int ret = 0;
+
+       if (!user_mode(regs)) {
+               /* kprobe_running() needs smp_processor_id() */
+               preempt_disable();
+               if (kprobe_running() && kprobes_fault_handler(regs, trap))
+                       ret = 1;
+               preempt_enable();
+       }
 
-static inline int notify_page_fault(enum die_val val, const char *str,
-                       struct pt_regs *regs, long err, int trap, int sig)
-{
-       struct die_args args = {
-               .regs = regs,
-               .str = str,
-               .err = err,
-               .trapnr = trap,
-               .signr = sig
-       };
-       return atomic_notifier_call_chain(&notify_page_fault_chain, val, &args);
+       return ret;
 }
 #else
-static inline int notify_page_fault(enum die_val val, const char *str,
-                       struct pt_regs *regs, long err, int trap, int sig)
+static inline int notify_page_fault(struct pt_regs *regs, int trap)
 {
-       return NOTIFY_DONE;
+       return 0;
 }
 #endif
 
@@ -117,8 +105,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
        /*
         * This is to handle the kprobes on user space access instructions
         */
-       if (notify_page_fault(DIE_PAGE_FAULT, "page fault", regs, code, TRAP_BRKPT,
-                                       SIGSEGV) == NOTIFY_STOP)
+       if (notify_page_fault(regs, TRAP_BRKPT))
                return;
 
        down_read(&mm->mmap_sem);
index ff1c55601178b2c2ff7071b26f03bf64f5638865..b362d6d6a8c8f76234596037d8a3406626e2aa64 100644 (file)
@@ -63,7 +63,7 @@ static inline void bte_start_transfer(struct bteinfo_s *bte, u64 len, u64 mode)
  * Use the block transfer engine to move kernel memory from src to dest
  * using the assigned mode.
  *
- * Paramaters:
+ * Parameters:
  *   src - physical address of the transfer source.
  *   dest - physical address of the transfer destination.
  *   len - number of bytes to transfer from source to dest.
@@ -247,7 +247,7 @@ EXPORT_SYMBOL(bte_copy);
  * use the block transfer engine to move kernel
  * memory from src to dest using the assigned mode.
  *
- * Paramaters:
+ * Parameters:
  *   src - physical address of the transfer source.
  *   dest - physical address of the transfer destination.
  *   len - number of bytes to transfer from source to dest.
@@ -255,7 +255,7 @@ EXPORT_SYMBOL(bte_copy);
  *          for IBCT0/1 in the SGI documentation.
  *
  * NOTE: If the source, dest, and len are all cache line aligned,
- * then it would be _FAR_ preferrable to use bte_copy instead.
+ * then it would be _FAR_ preferable to use bte_copy instead.
  */
 bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
 {
@@ -300,7 +300,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
         * a standard bte copy.
         *
         * One nasty exception to the above rule is when the
-        * source and destination are not symetrically
+        * source and destination are not symmetrically
         * mis-aligned.  If the source offset from the first
         * cache line is different from the destination offset,
         * we make the first section be the entire transfer
@@ -337,7 +337,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
 
                        if (footBcopyDest == (headBcopyDest + headBcopyLen)) {
                                /*
-                                * We have two contigous bcopy
+                                * We have two contiguous bcopy
                                 * blocks.  Merge them.
                                 */
                                headBcopyLen += footBcopyLen;
@@ -375,7 +375,7 @@ bte_result_t bte_unaligned_copy(u64 src, u64 dest, u64 len, u64 mode)
        } else {
 
                /*
-                * The transfer is not symetric, we will
+                * The transfer is not symmetric, we will
                 * allocate a buffer large enough for all the
                 * data, bte_copy into that buffer and then
                 * bcopy to the destination.
index b6fcf8164f2b91e25fcff564255745f40a7d28ac..27c5936ccfe96b5287f87994a37aa0956b12061f 100644 (file)
@@ -105,7 +105,7 @@ int shub1_bte_error_handler(unsigned long _nodepda)
        }
 
        BTE_PRINTK(("eh:%p:%d Cleaning up\n", err_nodepda, smp_processor_id()));
-       /* Reenable both bte interfaces */
+       /* Re-enable both bte interfaces */
        imem.ii_imem_regval = REMOTE_HUB_L(nasid, IIO_IMEM);
        imem.ii_imem_fld_s.i_b0_esd = imem.ii_imem_fld_s.i_b1_esd = 1;
        REMOTE_HUB_S(nasid, IIO_IMEM, imem.ii_imem_regval);
@@ -243,7 +243,7 @@ bte_crb_error_handler(cnodeid_t cnode, int btenum,
 
        /*
         * The caller has already figured out the error type, we save that
-        * in the bte handle structure for the thread excercising the
+        * in the bte handle structure for the thread exercising the
         * interface to consume.
         */
        bte->bh_error = ioe->ie_errortype + BTEFAIL_OFFSET;
index 7ed72d3faf73047130cdc042e8da9a02b3e6ed36..787ed642dd49a876607fa5e0f34d58bf50ddc281 100644 (file)
@@ -479,7 +479,7 @@ sn_io_early_init(void)
        }
 
        /*
-        * prime sn_pci_provider[].  Individial provider init routines will
+        * prime sn_pci_provider[].  Individual provider init routines will
         * override their respective default entries.
         */
 
index a9bed5ca2ed8a566617434d08e96d91aff4c5ee9..a574fcd163ddd57776031bffe8d0a151dcfb3991 100644 (file)
@@ -167,7 +167,7 @@ void __init early_sn_setup(void)
         * IO on SN2 is done via SAL calls, early_printk won't work without this.
         *
         * This code duplicates some of the ACPI table parsing that is in efi.c & sal.c.
-        * Any changes to those file may have to be made hereas well.
+        * Any changes to those file may have to be made here as well.
         */
        efi_systab = (efi_system_table_t *) __va(ia64_boot_param->efi_systab);
        config_tables = __va(efi_systab->tables);
index 5d318b579fb1b01b3fb4f89c95c849a31d2939aa..033c8a9f000e60276bf597399d08b77d8c972218 100644 (file)
@@ -104,7 +104,7 @@ static inline unsigned long wait_piowc(void)
  *
  * SN2 PIO writes from separate CPUs are not guaranteed to arrive in order.
  * Context switching user threads which have memory-mapped MMIO may cause
- * PIOs to issue from seperate CPUs, thus the PIO writes must be drained
+ * PIOs to issue from separate CPUs, thus the PIO writes must be drained
  * from the previous CPU's Shub before execution resumes on the new CPU.
  */
 void sn_migrate(struct task_struct *task)
index c08db9c2375dd1e4327aacd0e0035ef3ac0e4663..44ccc0d789c90badcced226d2860a70a217f0035 100644 (file)
@@ -293,7 +293,7 @@ xpc_pull_remote_cachelines(struct xpc_partition *part, void *dst,
 
 
 /*
- * Pull the remote per partititon specific variables from the specified
+ * Pull the remote per partition specific variables from the specified
  * partition.
  */
 enum xpc_retval
@@ -461,7 +461,7 @@ xpc_allocate_local_msgqueue(struct xpc_channel *ch)
        // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between
        // >>> iterations of the for-loop, bail if set?
 
-       // >>> should we impose a minumum #of entries? like 4 or 8?
+       // >>> should we impose a minimum #of entries? like 4 or 8?
        for (nentries = ch->local_nentries; nentries > 0; nentries--) {
 
                nbytes = nentries * ch->msg_size;
@@ -514,7 +514,7 @@ xpc_allocate_remote_msgqueue(struct xpc_channel *ch)
        // >>> may want to check for ch->flags & XPC_C_DISCONNECTING between
        // >>> iterations of the for-loop, bail if set?
 
-       // >>> should we impose a minumum #of entries? like 4 or 8?
+       // >>> should we impose a minimum #of entries? like 4 or 8?
        for (nentries = ch->remote_nentries; nentries > 0; nentries--) {
 
                nbytes = nentries * ch->msg_size;
@@ -1478,7 +1478,7 @@ xpc_teardown_infrastructure(struct xpc_partition *part)
 
 
        /*
-        * Before proceding with the teardown we have to wait until all
+        * Before proceeding with the teardown we have to wait until all
         * existing references cease.
         */
        wait_event(part->teardown_wq, (atomic_read(&part->references) == 0));
index da7213530972820fbc34bdc37b0eb051137e991a..e58fcadff2e976392c03e935e39ab0e5f97ca7cb 100644 (file)
@@ -531,7 +531,7 @@ xpnet_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
        dev_dbg(xpnet, "destination Partitions mask (dp) = 0x%lx\n", dp);
 
        /*
-        * If we wanted to allow promiscous mode to work like an
+        * If we wanted to allow promiscuous mode to work like an
         * unswitched network, this would be a good point to OR in a
         * mask of partitions which should be receiving all packets.
         */
index 7a291a27151186abb95eefb79f16091ebb44a4b7..d79ddacfba2d282aa5c7075e1433b92c2f7deae2 100644 (file)
@@ -333,7 +333,7 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
        /*
         * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work
         * around hw issues at the pci bus level.  SGI proms older than
-        * 4.10 don't implment this.
+        * 4.10 don't implement this.
         */
 
        SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE,
@@ -348,7 +348,7 @@ int sn_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size)
        /*
         * If the above failed, retry using the SAL_PROBE call which should
         * be present in all proms (but which cannot work round PCI chipset
-        * bugs).  This code is retained for compatability with old
+        * bugs).  This code is retained for compatibility with old
         * pre-4.10 proms, and should be removed at some point in the future.
         */
 
@@ -379,7 +379,7 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
        /*
         * First, try the SN_SAL_IOIF_PCI_SAFE SAL call which can work
         * around hw issues at the pci bus level.  SGI proms older than
-        * 4.10 don't implment this.
+        * 4.10 don't implement this.
         */
 
        SAL_CALL(isrv, SN_SAL_IOIF_PCI_SAFE,
@@ -394,7 +394,7 @@ int sn_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size)
        /*
         * If the above failed, retry using the SAL_PROBE call which should
         * be present in all proms (but which cannot work round PCI chipset
-        * bugs).  This code is retained for compatability with old
+        * bugs).  This code is retained for compatibility with old
         * pre-4.10 proms, and should be removed at some point in the future.
         */
 
index 935029fc400d73a632a959b08962ad6b760fdf28..239b3cedcf2bfde7848aca3ecca03631c228d15e 100644 (file)
@@ -30,7 +30,7 @@ static void mark_ate(struct ate_resource *ate_resource, int start, int number,
 
 /*
  * find_free_ate:  Find the first free ate index starting from the given
- *                index for the desired consequtive count.
+ *                index for the desired consecutive count.
  */
 static int find_free_ate(struct ate_resource *ate_resource, int start,
                         int count)
@@ -88,7 +88,7 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource,
                return -1;
 
        /*
-        * Find the required number of free consequtive ates.
+        * Find the required number of free consecutive ates.
         */
        start_index =
            find_free_ate(ate_resource, ate_resource->lowest_free_index,
@@ -105,7 +105,7 @@ static inline int alloc_ate_resource(struct ate_resource *ate_resource,
 /*
  * Allocate "count" contiguous Bridge Address Translation Entries
  * on the specified bridge to be used for PCI to XTALK mappings.
- * Indices in rm map range from 1..num_entries.  Indicies returned
+ * Indices in rm map range from 1..num_entries.  Indices returned
  * to caller range from 0..num_entries-1.
  *
  * Return the start index on success, -1 on failure.
index 95af40cb22f216dd3dc160766bf46102e57d5273..e626e50a938a3ce91b2d9926f06d036d63f29609 100644 (file)
@@ -201,7 +201,7 @@ pcibr_dmatrans_direct32(struct pcidev_info * info,
 }
 
 /*
- * Wrapper routine for free'ing DMA maps
+ * Wrapper routine for freeing DMA maps
  * DMA mappings for Direct 64 and 32 do not have any DMA maps.
  */
 void
index 8a2cb4e691fd6977ebe1300c6c2ba9a5fe3e14db..b9bedbd6e1d628d38016e9910fd0ab0b6307b7a8 100644 (file)
@@ -223,7 +223,7 @@ tioca_fastwrite_enable(struct tioca_kernel *tioca_kern)
 
        /*
         * Scan all vga controllers on this bus making sure they all
-        * suport FW.  If not, return.
+        * support FW.  If not, return.
         */
 
        list_for_each_entry(pdev, tioca_kern->ca_devices, bus_list) {
@@ -364,7 +364,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr)
  * @req_size: len (bytes) to map
  *
  * Map @paddr into CA address space using the GART mechanism.  The mapped
- * dma_addr_t is guarenteed to be contiguous in CA bus space.
+ * dma_addr_t is guaranteed to be contiguous in CA bus space.
  */
 static dma_addr_t
 tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size)
@@ -526,7 +526,7 @@ tioca_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count, int dma_flags)
                return 0;
 
        /*
-        * If card is 64 or 48 bit addresable, use a direct mapping.  32
+        * If card is 64 or 48 bit addressable, use a direct mapping.  32
         * bit direct is so restrictive w.r.t. where the memory resides that
         * we don't use it even though CA has some support.
         */
index 35f854fb6120ff3f2d45709a2562d1a1a518e05d..f4c0b961a9390ccbaad79dc45413615a9f6addc3 100644 (file)
@@ -256,9 +256,9 @@ pcidev_to_tioce(struct pci_dev *pdev, struct tioce __iomem **base,
  * @ct_addr: the coretalk address to map
  * @len: number of bytes to map
  *
- * Given the addressing type, set up various paramaters that define the
+ * Given the addressing type, set up various parameters that define the
  * ATE pool to use.  Search for a contiguous block of entries to cover the
- * length, and if enough resources exist, fill in the ATE's and construct a
+ * length, and if enough resources exist, fill in the ATEs and construct a
  * tioce_dmamap struct to track the mapping.
  */
 static u64
@@ -581,8 +581,8 @@ tioce_do_dma_map(struct pci_dev *pdev, u64 paddr, size_t byte_count,
         */
        if (!mapaddr && !barrier && dma_mask >= 0xffffffffffUL) {
                /*
-                * We have two options for 40-bit mappings:  16GB "super" ATE's
-                * and 64MB "regular" ATE's.  We'll try both if needed for a
+                * We have two options for 40-bit mappings:  16GB "super" ATEs
+                * and 64MB "regular" ATEs.  We'll try both if needed for a
                 * given mapping but which one we try first depends on the
                 * size.  For requests >64MB, prefer to use a super page with
                 * regular as the fallback. Otherwise, try in the reverse order.
@@ -687,8 +687,8 @@ tioce_error_intr_handler(int irq, void *arg)
 }
 
 /**
- * tioce_reserve_m32 - reserve M32 ate's for the indicated address range
- * @tioce_kernel: TIOCE context to reserve ate's for
+ * tioce_reserve_m32 - reserve M32 ATEs for the indicated address range
+ * @tioce_kernel: TIOCE context to reserve ATEs for
  * @base: starting bus address to reserve
  * @limit: last bus address to reserve
  *
@@ -763,7 +763,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
 
        /*
         * Set PMU pagesize to the largest size available, and zero out
-        * the ate's.
+        * the ATEs.
         */
 
        tioce_mmr = (struct tioce __iomem *)tioce_common->ce_pcibus.bs_base;
@@ -784,7 +784,7 @@ tioce_kern_init(struct tioce_common *tioce_common)
        }
 
        /*
-        * Reserve ATE's corresponding to reserved address ranges.  These
+        * Reserve ATEs corresponding to reserved address ranges.  These
         * include:
         *
         *      Memory space covered by each PPB mem base/limit register
index ba211e011a1d4d22dcfa4d8d7a0bcaed3a9747e1..320cd8e754ea44a9841e874251f2e7113721e84b 100644 (file)
  */
 #include <linux/notifier.h>
 
-extern int register_page_fault_notifier(struct notifier_block *);
-extern int unregister_page_fault_notifier(struct notifier_block *);
+/*
+ * These are only here because kprobes.c wants them to implement a
+ * blatant layering violation.  Will hopefully go away soon once all
+ * architectures are updated.
+ */
+static inline int register_page_fault_notifier(struct notifier_block *nb)
+{
+       return 0;
+}
+static inline int unregister_page_fault_notifier(struct notifier_block *nb)
+{
+       return 0;
+}
 
 enum die_val {
        DIE_BREAK = 1,
        DIE_FAULT,
        DIE_OOPS,
-       DIE_PAGE_FAULT,
        DIE_MACHINE_HALT,
        DIE_MACHINE_RESTART,
        DIE_MCA_MONARCH_ENTER,
index 2abc98b336f3f605ac4b18213b56d7a2f13d88f4..6382e52ec2272b1ec39f4ea3432e061e75c51b1e 100644 (file)
@@ -120,6 +120,7 @@ struct arch_specific_insn {
        unsigned short slot;
 };
 
+extern int kprobes_fault_handler(struct pt_regs *regs, int trapnr);
 extern int kprobe_exceptions_notify(struct notifier_block *self,
                                    unsigned long val, void *data);
 
index f049bc40ca7d5378ce878ff7063c70dce9733e2a..d7781a2ddefec086fa085f1f9902e50cd69bbb77 100644 (file)
 #define __NR_getcpu                    1304
 #define __NR_epoll_pwait               1305
 #define __NR_utimensat                 1306
+#define __NR_signalfd                  1307
+#define __NR_timerfd                   1308
+#define __NR_eventfd                   1309
 
 #ifdef __KERNEL__
 
 
-#define NR_syscalls                    283 /* length of syscall table */
+#define NR_syscalls                    286 /* length of syscall table */
 
 #define __ARCH_WANT_SYS_RT_SIGACTION
 #define __ARCH_WANT_SYS_RT_SIGSUSPEND