Commit 31373a87 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/net-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents 1de32ed1 0f0a76be
...@@ -82,7 +82,9 @@ unwcheck: vmlinux ...@@ -82,7 +82,9 @@ unwcheck: vmlinux
archclean: archclean:
$(Q)$(MAKE) $(clean)=$(boot) $(Q)$(MAKE) $(clean)=$(boot)
CLEAN_FILES += include/asm-ia64/.offsets.h.stamp include/asm-ia64/offsets.h vmlinux.gz bootloader CLEAN_FILES += include/asm-ia64/.offsets.h.stamp vmlinux.gz bootloader
MRPROPER_FILES += include/asm-ia64/offsets.h
prepare: include/asm-ia64/offsets.h prepare: include/asm-ia64/offsets.h
......
...@@ -1998,7 +1998,7 @@ pfm_close(struct inode *inode, struct file *filp) ...@@ -1998,7 +1998,7 @@ pfm_close(struct inode *inode, struct file *filp)
/* /*
* XXX: check for signals : * XXX: check for signals :
* - ok of explicit close * - ok for explicit close
* - not ok when coming from exit_files() * - not ok when coming from exit_files()
*/ */
schedule(); schedule();
...@@ -4978,26 +4978,14 @@ pfm_resume_after_ovfl(pfm_context_t *ctx, unsigned long ovfl_regs, struct pt_reg ...@@ -4978,26 +4978,14 @@ pfm_resume_after_ovfl(pfm_context_t *ctx, unsigned long ovfl_regs, struct pt_reg
static void static void
pfm_context_force_terminate(pfm_context_t *ctx, struct pt_regs *regs) pfm_context_force_terminate(pfm_context_t *ctx, struct pt_regs *regs)
{ {
if (ctx->ctx_fl_system) { int ret;
printk(KERN_ERR "perfmon: pfm_context_force_terminate [%d] is system-wide\n", current->pid);
return;
}
/*
* we stop the whole thing, we do no need to flush
* we know we WERE masked
*/
pfm_clear_psr_up();
ia64_psr(regs)->up = 0;
ia64_psr(regs)->sp = 1;
/* DPRINT(("entering for [%d]\n", current->pid));
* disconnect the task from the context and vice-versa
*/
current->thread.pfm_context = NULL;
current->thread.flags &= ~IA64_THREAD_PM_VALID;
ctx->ctx_task = NULL;
DPRINT(("context terminated\n")); ret = pfm_context_unload(ctx, NULL, 0, regs);
if (ret) {
printk(KERN_ERR "pfm_context_force_terminate: [%d] unloaded failed with %d\n", current->pid, ret);
}
/* /*
* and wakeup controlling task, indicating we are now disconnected * and wakeup controlling task, indicating we are now disconnected
...@@ -5370,9 +5358,8 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str ...@@ -5370,9 +5358,8 @@ pfm_overflow_handler(struct task_struct *task, pfm_context_t *ctx, u64 pmc0, str
if (ovfl_notify == 0) reset_pmds = ovfl_pmds; if (ovfl_notify == 0) reset_pmds = ovfl_pmds;
} }
DPRINT(("ovfl_pmds=0x%lx reset_pmds=0x%lx\n", DPRINT_ovfl(("ovfl_pmds=0x%lx reset_pmds=0x%lx\n", ovfl_pmds, reset_pmds));
ovfl_pmds,
reset_pmds));
/* /*
* reset the requested PMD registers using the short reset values * reset the requested PMD registers using the short reset values
*/ */
...@@ -6367,6 +6354,9 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx) ...@@ -6367,6 +6354,9 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx)
* XXX: sampling situation is not taken into account here * XXX: sampling situation is not taken into account here
*/ */
mask2 = ctx->ctx_used_pmds[0]; mask2 = ctx->ctx_used_pmds[0];
DPRINT(("is_self=%d ovfl_val=0x%lx mask2=0x%lx\n", is_self, ovfl_val, mask2));
for (i = 0; mask2; i++, mask2>>=1) { for (i = 0; mask2; i++, mask2>>=1) {
/* skip non used pmds */ /* skip non used pmds */
...@@ -6405,7 +6395,7 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx) ...@@ -6405,7 +6395,7 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx)
} }
} }
DPRINT(("[%d] is_self=%d ctx_pmd[%d]=0x%lx pmd_val=0x%lx\n", task->pid, is_self, i, val, pmd_val)); DPRINT(("[%d] ctx_pmd[%d]=0x%lx pmd_val=0x%lx\n", task->pid, i, val, pmd_val));
if (is_self) task->thread.pmds[i] = pmd_val; if (is_self) task->thread.pmds[i] = pmd_val;
......
...@@ -184,7 +184,7 @@ static inline void memset_io(volatile void __iomem *addr, unsigned char val, int ...@@ -184,7 +184,7 @@ static inline void memset_io(volatile void __iomem *addr, unsigned char val, int
{ {
memset((void __force *) addr, val, count); memset((void __force *) addr, val, count);
} }
static inline void memcpy_fromio(void *dst, volatile void __iomem *src, int count) static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, int count)
{ {
__memcpy(dst, (void __force *) src, count); __memcpy(dst, (void __force *) src, count);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment