diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-06-16 14:52:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-06-16 14:52:43 -0400 |
commit | c8988f968240069aeae16d8cf9f59096a085eb27 (patch) | |
tree | 5d75d8b6014353caf5ad9db2d189cd6427c80488 /arch/ia64/kernel | |
parent | 10acaf0c8a481c1ea9ba9d550a292595d8279ee1 (diff) | |
parent | 732a675a6303156d1a197dc780b0712bd4b49d46 (diff) |
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
[IA64] Fix CONFIG_IA64_SGI_UV build error
[IA64] Update check_sal_cache_flush to use platform_send_ipi()
[IA64] perfmon: fix async exit bug
Diffstat (limited to 'arch/ia64/kernel')
-rw-r--r-- | arch/ia64/kernel/perfmon.c | 10 | ||||
-rw-r--r-- | arch/ia64/kernel/sal.c | 7 |
2 files changed, 8 insertions, 9 deletions
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index 71d05133f556..7714a97b0104 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -1864,11 +1864,6 @@ pfm_flush(struct file *filp, fl_owner_t id) | |||
1864 | * invoked after, it will find an empty queue and no | 1864 | * invoked after, it will find an empty queue and no |
1865 | * signal will be sent. In both case, we are safe | 1865 | * signal will be sent. In both case, we are safe |
1866 | */ | 1866 | */ |
1867 | if (filp->f_flags & FASYNC) { | ||
1868 | DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue)); | ||
1869 | pfm_do_fasync (-1, filp, ctx, 0); | ||
1870 | } | ||
1871 | |||
1872 | PROTECT_CTX(ctx, flags); | 1867 | PROTECT_CTX(ctx, flags); |
1873 | 1868 | ||
1874 | state = ctx->ctx_state; | 1869 | state = ctx->ctx_state; |
@@ -1999,6 +1994,11 @@ pfm_close(struct inode *inode, struct file *filp) | |||
1999 | return -EBADF; | 1994 | return -EBADF; |
2000 | } | 1995 | } |
2001 | 1996 | ||
1997 | if (filp->f_flags & FASYNC) { | ||
1998 | DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue)); | ||
1999 | pfm_do_fasync(-1, filp, ctx, 0); | ||
2000 | } | ||
2001 | |||
2002 | PROTECT_CTX(ctx, flags); | 2002 | PROTECT_CTX(ctx, flags); |
2003 | 2003 | ||
2004 | state = ctx->ctx_state; | 2004 | state = ctx->ctx_state; |
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c index 7e0259709c04..0464173ea568 100644 --- a/arch/ia64/kernel/sal.c +++ b/arch/ia64/kernel/sal.c | |||
@@ -252,11 +252,10 @@ check_sal_cache_flush (void) | |||
252 | local_irq_save(flags); | 252 | local_irq_save(flags); |
253 | 253 | ||
254 | /* | 254 | /* |
255 | * Schedule a timer interrupt, wait until it's reported, and see if | 255 | * Send ourselves a timer interrupt, wait until it's reported, and see |
256 | * SAL_CACHE_FLUSH drops it. | 256 | * if SAL_CACHE_FLUSH drops it. |
257 | */ | 257 | */ |
258 | ia64_set_itv(IA64_TIMER_VECTOR); | 258 | platform_send_ipi(cpu, IA64_TIMER_VECTOR, IA64_IPI_DM_INT, 0); |
259 | ia64_set_itm(ia64_get_itc() + 1000); | ||
260 | 259 | ||
261 | while (!ia64_get_irr(IA64_TIMER_VECTOR)) | 260 | while (!ia64_get_irr(IA64_TIMER_VECTOR)) |
262 | cpu_relax(); | 261 | cpu_relax(); |