Commit 4fe8a0f4 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'release' of master.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6

parents 529980c8 344a0761
...@@ -339,12 +339,6 @@ config IA64_PALINFO ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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: ...@@ -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) ...@@ -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); \ ...@@ -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 ...@@ -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 ...@@ -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) ...@@ -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 @@ ...@@ -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) ...@@ -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) ...@@ -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); ...@@ -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, ...@@ -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); ...@@ -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 */
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