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
This commit is contained in:
commit
c8988f9682
@ -57,6 +57,7 @@ core-$(CONFIG_IA64_GENERIC) += arch/ia64/dig/
|
|||||||
core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/
|
core-$(CONFIG_IA64_HP_ZX1) += arch/ia64/dig/
|
||||||
core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
|
core-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += arch/ia64/dig/
|
||||||
core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
|
core-$(CONFIG_IA64_SGI_SN2) += arch/ia64/sn/
|
||||||
|
core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
|
||||||
core-$(CONFIG_KVM) += arch/ia64/kvm/
|
core-$(CONFIG_KVM) += arch/ia64/kvm/
|
||||||
|
|
||||||
drivers-$(CONFIG_PCI) += arch/ia64/pci/
|
drivers-$(CONFIG_PCI) += arch/ia64/pci/
|
||||||
|
@ -1864,11 +1864,6 @@ pfm_flush(struct file *filp, fl_owner_t id)
|
|||||||
* invoked after, it will find an empty queue and no
|
* invoked after, it will find an empty queue and no
|
||||||
* signal will be sent. In both case, we are safe
|
* signal will be sent. In both case, we are safe
|
||||||
*/
|
*/
|
||||||
if (filp->f_flags & FASYNC) {
|
|
||||||
DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue));
|
|
||||||
pfm_do_fasync (-1, filp, ctx, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
PROTECT_CTX(ctx, flags);
|
PROTECT_CTX(ctx, flags);
|
||||||
|
|
||||||
state = ctx->ctx_state;
|
state = ctx->ctx_state;
|
||||||
@ -1999,6 +1994,11 @@ pfm_close(struct inode *inode, struct file *filp)
|
|||||||
return -EBADF;
|
return -EBADF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (filp->f_flags & FASYNC) {
|
||||||
|
DPRINT(("cleaning up async_queue=%p\n", ctx->ctx_async_queue));
|
||||||
|
pfm_do_fasync(-1, filp, ctx, 0);
|
||||||
|
}
|
||||||
|
|
||||||
PROTECT_CTX(ctx, flags);
|
PROTECT_CTX(ctx, flags);
|
||||||
|
|
||||||
state = ctx->ctx_state;
|
state = ctx->ctx_state;
|
||||||
|
@ -252,11 +252,10 @@ check_sal_cache_flush (void)
|
|||||||
local_irq_save(flags);
|
local_irq_save(flags);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Schedule a timer interrupt, wait until it's reported, and see if
|
* Send ourselves a timer interrupt, wait until it's reported, and see
|
||||||
* SAL_CACHE_FLUSH drops it.
|
* if SAL_CACHE_FLUSH drops it.
|
||||||
*/
|
*/
|
||||||
ia64_set_itv(IA64_TIMER_VECTOR);
|
platform_send_ipi(cpu, IA64_TIMER_VECTOR, IA64_IPI_DM_INT, 0);
|
||||||
ia64_set_itm(ia64_get_itc() + 1000);
|
|
||||||
|
|
||||||
while (!ia64_get_irr(IA64_TIMER_VECTOR))
|
while (!ia64_get_irr(IA64_TIMER_VECTOR))
|
||||||
cpu_relax();
|
cpu_relax();
|
||||||
|
@ -17,6 +17,9 @@
|
|||||||
DEFINE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
|
DEFINE_PER_CPU(struct uv_hub_info_s, __uv_hub_info);
|
||||||
EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info);
|
EXPORT_PER_CPU_SYMBOL_GPL(__uv_hub_info);
|
||||||
|
|
||||||
|
#ifdef CONFIG_IA64_SGI_UV
|
||||||
|
int sn_prom_type;
|
||||||
|
#endif
|
||||||
|
|
||||||
struct redir_addr {
|
struct redir_addr {
|
||||||
unsigned long redirect;
|
unsigned long redirect;
|
||||||
@ -64,6 +67,15 @@ void __init uv_setup(char **cmdline_p)
|
|||||||
m_n_config.s.m_skt = 37;
|
m_n_config.s.m_skt = 37;
|
||||||
m_n_config.s.n_skt = 0;
|
m_n_config.s.n_skt = 0;
|
||||||
mmr_base = 0;
|
mmr_base = 0;
|
||||||
|
#if 0
|
||||||
|
/* Need BIOS calls - TDB */
|
||||||
|
if (!ia64_sn_is_fake_prom())
|
||||||
|
sn_prom_type = 1;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
sn_prom_type = 2;
|
||||||
|
printk(KERN_INFO "Running on medusa with %s PROM\n",
|
||||||
|
(sn_prom_type == 1) ? "real" : "fake");
|
||||||
} else {
|
} else {
|
||||||
get_lowmem_redirect(&lowmem_redir_base, &lowmem_redir_size);
|
get_lowmem_redirect(&lowmem_redir_base, &lowmem_redir_size);
|
||||||
node_id.v = uv_read_local_mmr(UVH_NODE_ID);
|
node_id.v = uv_read_local_mmr(UVH_NODE_ID);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#ifndef _ASM_IA64_SN_SIMULATOR_H
|
#ifndef _ASM_IA64_SN_SIMULATOR_H
|
||||||
#define _ASM_IA64_SN_SIMULATOR_H
|
#define _ASM_IA64_SN_SIMULATOR_H
|
||||||
|
|
||||||
|
#if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_SGI_SN2) || defined(CONFIG_IA64_SGI_UV)
|
||||||
#define SNMAGIC 0xaeeeeeee8badbeefL
|
#define SNMAGIC 0xaeeeeeee8badbeefL
|
||||||
#define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;})
|
#define IS_MEDUSA() ({long sn; asm("mov %0=cpuid[%1]" : "=r"(sn) : "r"(2)); sn == SNMAGIC;})
|
||||||
|
|
||||||
@ -16,5 +16,10 @@
|
|||||||
#define IS_RUNNING_ON_SIMULATOR() (sn_prom_type)
|
#define IS_RUNNING_ON_SIMULATOR() (sn_prom_type)
|
||||||
#define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2)
|
#define IS_RUNNING_ON_FAKE_PROM() (sn_prom_type == 2)
|
||||||
extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */
|
extern int sn_prom_type; /* 0=hardware, 1=medusa/realprom, 2=medusa/fakeprom */
|
||||||
|
#else
|
||||||
|
#define IS_MEDUSA() 0
|
||||||
|
#define SIMULATOR_SLEEP()
|
||||||
|
#define IS_RUNNING_ON_SIMULATOR() 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _ASM_IA64_SN_SIMULATOR_H */
|
#endif /* _ASM_IA64_SN_SIMULATOR_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user