Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6
This commit is contained in:
Коммит
4fe8a0f4c5
|
@ -339,12 +339,6 @@ config IA64_PALINFO
|
||||||
To use this option, you have to ensure that the "/proc file system
|
To use this option, you have to ensure that the "/proc file system
|
||||||
support" (CONFIG_PROC_FS) is enabled, too.
|
support" (CONFIG_PROC_FS) is enabled, too.
|
||||||
|
|
||||||
config ACPI_DEALLOCATE_IRQ
|
|
||||||
bool
|
|
||||||
depends on ACPI
|
|
||||||
depends on IOSAPIC && EXPERIMENTAL
|
|
||||||
default y
|
|
||||||
|
|
||||||
source "drivers/firmware/Kconfig"
|
source "drivers/firmware/Kconfig"
|
||||||
|
|
||||||
source "fs/Kconfig.binfmt"
|
source "fs/Kconfig.binfmt"
|
||||||
|
|
|
@ -111,7 +111,6 @@ CONFIG_COMPAT=y
|
||||||
CONFIG_IA64_MCA_RECOVERY=y
|
CONFIG_IA64_MCA_RECOVERY=y
|
||||||
CONFIG_PERFMON=y
|
CONFIG_PERFMON=y
|
||||||
CONFIG_IA64_PALINFO=y
|
CONFIG_IA64_PALINFO=y
|
||||||
CONFIG_ACPI_DEALLOCATE_IRQ=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Firmware Drivers
|
# Firmware Drivers
|
||||||
|
|
|
@ -109,7 +109,6 @@ CONFIG_COMPAT=y
|
||||||
CONFIG_IA64_MCA_RECOVERY=y
|
CONFIG_IA64_MCA_RECOVERY=y
|
||||||
CONFIG_PERFMON=y
|
CONFIG_PERFMON=y
|
||||||
CONFIG_IA64_PALINFO=y
|
CONFIG_IA64_PALINFO=y
|
||||||
CONFIG_ACPI_DEALLOCATE_IRQ=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Firmware Drivers
|
# Firmware Drivers
|
||||||
|
|
|
@ -109,7 +109,6 @@ CONFIG_COMPAT=y
|
||||||
CONFIG_IA64_MCA_RECOVERY=y
|
CONFIG_IA64_MCA_RECOVERY=y
|
||||||
CONFIG_PERFMON=y
|
CONFIG_PERFMON=y
|
||||||
CONFIG_IA64_PALINFO=y
|
CONFIG_IA64_PALINFO=y
|
||||||
CONFIG_ACPI_DEALLOCATE_IRQ=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Firmware Drivers
|
# Firmware Drivers
|
||||||
|
|
|
@ -99,7 +99,6 @@ CONFIG_COMPAT=y
|
||||||
CONFIG_IA64_MCA_RECOVERY=y
|
CONFIG_IA64_MCA_RECOVERY=y
|
||||||
CONFIG_PERFMON=y
|
CONFIG_PERFMON=y
|
||||||
CONFIG_IA64_PALINFO=y
|
CONFIG_IA64_PALINFO=y
|
||||||
CONFIG_ACPI_DEALLOCATE_IRQ=y
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Firmware Drivers
|
# Firmware Drivers
|
||||||
|
@ -335,7 +334,7 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
|
||||||
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
|
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
|
||||||
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
|
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
|
||||||
# CONFIG_SCSI_IPR is not set
|
# CONFIG_SCSI_IPR is not set
|
||||||
CONFIG_SCSI_QLOGIC_FC=y
|
# CONFIG_SCSI_QLOGIC_FC is not set
|
||||||
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
|
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
|
||||||
CONFIG_SCSI_QLOGIC_1280=y
|
CONFIG_SCSI_QLOGIC_1280=y
|
||||||
# CONFIG_SCSI_QLOGIC_1280_1040 is not set
|
# CONFIG_SCSI_QLOGIC_1280_1040 is not set
|
||||||
|
|
|
@ -583,14 +583,12 @@ int acpi_register_gsi(u32 gsi, int edge_level, int active_high_low)
|
||||||
|
|
||||||
EXPORT_SYMBOL(acpi_register_gsi);
|
EXPORT_SYMBOL(acpi_register_gsi);
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_DEALLOCATE_IRQ
|
|
||||||
void acpi_unregister_gsi(u32 gsi)
|
void acpi_unregister_gsi(u32 gsi)
|
||||||
{
|
{
|
||||||
iosapic_unregister_intr(gsi);
|
iosapic_unregister_intr(gsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPORT_SYMBOL(acpi_unregister_gsi);
|
EXPORT_SYMBOL(acpi_unregister_gsi);
|
||||||
#endif /* CONFIG_ACPI_DEALLOCATE_IRQ */
|
|
||||||
|
|
||||||
static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size)
|
static int __init acpi_parse_fadt(unsigned long phys_addr, unsigned long size)
|
||||||
{
|
{
|
||||||
|
|
|
@ -204,9 +204,6 @@ GLOBAL_ENTRY(ia64_switch_to)
|
||||||
(p6) br.cond.dpnt .map
|
(p6) br.cond.dpnt .map
|
||||||
;;
|
;;
|
||||||
.done:
|
.done:
|
||||||
(p6) ssm psr.ic // if we had to map, reenable the psr.ic bit FIRST!!!
|
|
||||||
;;
|
|
||||||
(p6) srlz.d
|
|
||||||
ld8 sp=[r21] // load kernel stack pointer of new task
|
ld8 sp=[r21] // load kernel stack pointer of new task
|
||||||
mov IA64_KR(CURRENT)=in0 // update "current" application register
|
mov IA64_KR(CURRENT)=in0 // update "current" application register
|
||||||
mov r8=r13 // return pointer to previously running task
|
mov r8=r13 // return pointer to previously running task
|
||||||
|
@ -234,6 +231,9 @@ GLOBAL_ENTRY(ia64_switch_to)
|
||||||
mov IA64_KR(CURRENT_STACK)=r26 // remember last page we mapped...
|
mov IA64_KR(CURRENT_STACK)=r26 // remember last page we mapped...
|
||||||
;;
|
;;
|
||||||
itr.d dtr[r25]=r23 // wire in new mapping...
|
itr.d dtr[r25]=r23 // wire in new mapping...
|
||||||
|
ssm psr.ic // reenable the psr.ic bit
|
||||||
|
;;
|
||||||
|
srlz.d
|
||||||
br.cond.sptk .done
|
br.cond.sptk .done
|
||||||
END(ia64_switch_to)
|
END(ia64_switch_to)
|
||||||
|
|
||||||
|
|
|
@ -782,7 +782,6 @@ again:
|
||||||
return vector;
|
return vector;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_DEALLOCATE_IRQ
|
|
||||||
void
|
void
|
||||||
iosapic_unregister_intr (unsigned int gsi)
|
iosapic_unregister_intr (unsigned int gsi)
|
||||||
{
|
{
|
||||||
|
@ -865,7 +864,6 @@ iosapic_unregister_intr (unsigned int gsi)
|
||||||
spin_unlock(&iosapic_lock);
|
spin_unlock(&iosapic_lock);
|
||||||
spin_unlock_irqrestore(&idesc->lock, flags);
|
spin_unlock_irqrestore(&idesc->lock, flags);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_ACPI_DEALLOCATE_IRQ */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ACPI calls this when it finds an entry for a platform interrupt.
|
* ACPI calls this when it finds an entry for a platform interrupt.
|
||||||
|
|
|
@ -625,8 +625,11 @@ EK(.ex_handler, (p17) st8 [dst1]=r39,8); \
|
||||||
clrrrb
|
clrrrb
|
||||||
;;
|
;;
|
||||||
alloc saved_pfs_stack=ar.pfs,3,3,3,0
|
alloc saved_pfs_stack=ar.pfs,3,3,3,0
|
||||||
|
cmp.lt p8,p0=A,r0
|
||||||
sub B = dst0, saved_in0 // how many byte copied so far
|
sub B = dst0, saved_in0 // how many byte copied so far
|
||||||
;;
|
;;
|
||||||
|
(p8) mov A = 0; // A shouldn't be negative, cap it
|
||||||
|
;;
|
||||||
sub C = A, B
|
sub C = A, B
|
||||||
sub D = saved_in2, A
|
sub D = saved_in2, A
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -230,9 +230,6 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ia64_done_with_exception(regs))
|
|
||||||
return;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Since we have no vma's for region 5, we might get here even if the address is
|
* Since we have no vma's for region 5, we might get here even if the address is
|
||||||
* valid, due to the VHPT walker inserting a non present translation that becomes
|
* valid, due to the VHPT walker inserting a non present translation that becomes
|
||||||
|
@ -243,6 +240,9 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
|
||||||
if (REGION_NUMBER(address) == 5 && mapped_kernel_page_is_present(address))
|
if (REGION_NUMBER(address) == 5 && mapped_kernel_page_is_present(address))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (ia64_done_with_exception(regs))
|
||||||
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Oops. The kernel tried to access some bad page. We'll have to terminate things
|
* Oops. The kernel tried to access some bad page. We'll have to terminate things
|
||||||
* with extreme prejudice.
|
* with extreme prejudice.
|
||||||
|
|
|
@ -498,13 +498,11 @@ pcibios_enable_device (struct pci_dev *dev, int mask)
|
||||||
return acpi_pci_irq_enable(dev);
|
return acpi_pci_irq_enable(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_DEALLOCATE_IRQ
|
|
||||||
void
|
void
|
||||||
pcibios_disable_device (struct pci_dev *dev)
|
pcibios_disable_device (struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
acpi_pci_irq_disable(dev);
|
acpi_pci_irq_disable(dev);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_ACPI_DEALLOCATE_IRQ */
|
|
||||||
|
|
||||||
void
|
void
|
||||||
pcibios_align_resource (void *data, struct resource *res,
|
pcibios_align_resource (void *data, struct resource *res,
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
DEFINE_PER_CPU(struct pda_s, pda_percpu);
|
DEFINE_PER_CPU(struct pda_s, pda_percpu);
|
||||||
|
|
||||||
#define MAX_PHYS_MEMORY (1UL << 49) /* 1 TB */
|
#define MAX_PHYS_MEMORY (1UL << IA64_MAX_PHYS_BITS) /* Max physical address supported */
|
||||||
|
|
||||||
lboard_t *root_lboard[MAX_COMPACT_NODES];
|
lboard_t *root_lboard[MAX_COMPACT_NODES];
|
||||||
|
|
||||||
|
|
|
@ -885,6 +885,10 @@ xpc_init(void)
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
|
|
||||||
|
|
||||||
|
if (!ia64_platform_is("sn2")) {
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* xpc_remote_copy_buffer is used as a temporary buffer for bte_copy'ng
|
* xpc_remote_copy_buffer is used as a temporary buffer for bte_copy'ng
|
||||||
* both a partition's reserved page and its XPC variables. Its size was
|
* both a partition's reserved page and its XPC variables. Its size was
|
||||||
|
|
|
@ -636,6 +636,10 @@ xpnet_init(void)
|
||||||
int result = -ENOMEM;
|
int result = -ENOMEM;
|
||||||
|
|
||||||
|
|
||||||
|
if (!ia64_platform_is("sn2")) {
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
dev_info(xpnet, "registering network device %s\n", XPNET_DEVICE_NAME);
|
dev_info(xpnet, "registering network device %s\n", XPNET_DEVICE_NAME);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -80,12 +80,9 @@ extern int iosapic_remove (unsigned int gsi_base);
|
||||||
#endif /* CONFIG_HOTPLUG */
|
#endif /* CONFIG_HOTPLUG */
|
||||||
extern int gsi_to_vector (unsigned int gsi);
|
extern int gsi_to_vector (unsigned int gsi);
|
||||||
extern int gsi_to_irq (unsigned int gsi);
|
extern int gsi_to_irq (unsigned int gsi);
|
||||||
extern void iosapic_enable_intr (unsigned int vector);
|
|
||||||
extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity,
|
extern int iosapic_register_intr (unsigned int gsi, unsigned long polarity,
|
||||||
unsigned long trigger);
|
unsigned long trigger);
|
||||||
#ifdef CONFIG_ACPI_DEALLOCATE_IRQ
|
|
||||||
extern void iosapic_unregister_intr (unsigned int irq);
|
extern void iosapic_unregister_intr (unsigned int irq);
|
||||||
#endif
|
|
||||||
extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi,
|
extern void __init iosapic_override_isa_irq (unsigned int isa_irq, unsigned int gsi,
|
||||||
unsigned long polarity,
|
unsigned long polarity,
|
||||||
unsigned long trigger);
|
unsigned long trigger);
|
||||||
|
@ -97,7 +94,6 @@ extern int __init iosapic_register_platform_intr (u32 int_type,
|
||||||
unsigned long trigger);
|
unsigned long trigger);
|
||||||
extern unsigned int iosapic_version (char __iomem *addr);
|
extern unsigned int iosapic_version (char __iomem *addr);
|
||||||
|
|
||||||
extern void iosapic_pci_fixup (int);
|
|
||||||
#ifdef CONFIG_NUMA
|
#ifdef CONFIG_NUMA
|
||||||
extern void __devinit map_iosapic_to_node (unsigned int, int);
|
extern void __devinit map_iosapic_to_node (unsigned int, int);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -35,8 +35,4 @@ extern void disable_irq_nosync (unsigned int);
|
||||||
extern void enable_irq (unsigned int);
|
extern void enable_irq (unsigned int);
|
||||||
extern void set_irq_affinity_info (unsigned int irq, int dest, int redir);
|
extern void set_irq_affinity_info (unsigned int irq, int dest, int redir);
|
||||||
|
|
||||||
struct irqaction;
|
|
||||||
struct pt_regs;
|
|
||||||
int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *);
|
|
||||||
|
|
||||||
#endif /* _ASM_IA64_IRQ_H */
|
#endif /* _ASM_IA64_IRQ_H */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче