diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 20:19:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-23 20:19:37 -0400 |
commit | 0e65ae099ca6a70a7a521e0358c57d43ec95dce5 (patch) | |
tree | ab4b11ec028229530ad1f616b80e6ea1057d0e71 /arch | |
parent | 2fb9e96cada81e7288579e14c3d56f1f969354a5 (diff) | |
parent | b86c4782ab501e3b69e5e0b32050455f95caa681 (diff) |
Merge tag 'ia64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux
Pull miscellaneous Itanium patches from Tony Luck.
The conflicts in arch/ia64/hp/sim/simserial.c were due to patches to
simserial that had alredy been included (with lots of further cleanups)
in the serial tree.
* tag 'ia64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
Documentation/kernel-parameters: remove inttest parameter
[IA64] Fix ISA IRQ trigger model and polarity setting
[IA64] Fix a couple of warnings for EXPORT_SYMBOL
[IA64] Check return from device_register() in cx_device_register()
[IA64] Fix warning from machine_kexec.c
[IA64] simserial, bail out when request_irq fails
[IA64] hpsim, initialize chip for assigned irqs
[IA64] simserial, include some headers
[IA64] hpsim, fix SAL handling in fw-emu
[IA64] genirq fixup for SGI/SN
[IA64] disable interrupts when exiting from ia64_mca_cmc_int_handler()
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/acpi.c | 8 | ||||
-rw-r--r-- | arch/ia64/kernel/machine_kexec.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/mca.c | 2 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/huberror.c | 2 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/io_common.c | 1 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/sn2/sn_hwperf.c | 1 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/tiocx.c | 7 | ||||
-rw-r--r-- | arch/ia64/sn/pci/pcibr/pcibr_provider.c | 1 | ||||
-rw-r--r-- | arch/ia64/sn/pci/tioca_provider.c | 1 | ||||
-rw-r--r-- | arch/ia64/sn/pci/tioce_provider.c | 1 |
11 files changed, 22 insertions, 6 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 5207035dc061..2d801bfe16ac 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -349,11 +349,11 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header, | |||
349 | 349 | ||
350 | iosapic_override_isa_irq(p->source_irq, p->global_irq, | 350 | iosapic_override_isa_irq(p->source_irq, p->global_irq, |
351 | ((p->inti_flags & ACPI_MADT_POLARITY_MASK) == | 351 | ((p->inti_flags & ACPI_MADT_POLARITY_MASK) == |
352 | ACPI_MADT_POLARITY_ACTIVE_HIGH) ? | 352 | ACPI_MADT_POLARITY_ACTIVE_LOW) ? |
353 | IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW, | 353 | IOSAPIC_POL_LOW : IOSAPIC_POL_HIGH, |
354 | ((p->inti_flags & ACPI_MADT_TRIGGER_MASK) == | 354 | ((p->inti_flags & ACPI_MADT_TRIGGER_MASK) == |
355 | ACPI_MADT_TRIGGER_EDGE) ? | 355 | ACPI_MADT_TRIGGER_LEVEL) ? |
356 | IOSAPIC_EDGE : IOSAPIC_LEVEL); | 356 | IOSAPIC_LEVEL : IOSAPIC_EDGE); |
357 | return 0; | 357 | return 0; |
358 | } | 358 | } |
359 | 359 | ||
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c index 4eed35814994..070e8effa175 100644 --- a/arch/ia64/kernel/machine_kexec.c +++ b/arch/ia64/kernel/machine_kexec.c | |||
@@ -157,7 +157,7 @@ void arch_crash_save_vmcoreinfo(void) | |||
157 | #endif | 157 | #endif |
158 | #ifdef CONFIG_PGTABLE_3 | 158 | #ifdef CONFIG_PGTABLE_3 |
159 | VMCOREINFO_CONFIG(PGTABLE_3); | 159 | VMCOREINFO_CONFIG(PGTABLE_3); |
160 | #elif CONFIG_PGTABLE_4 | 160 | #elif defined(CONFIG_PGTABLE_4) |
161 | VMCOREINFO_CONFIG(PGTABLE_4); | 161 | VMCOREINFO_CONFIG(PGTABLE_4); |
162 | #endif | 162 | #endif |
163 | } | 163 | } |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 84fb405eee87..8192009cb924 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -1447,6 +1447,8 @@ out: | |||
1447 | /* Get the CMC error record and log it */ | 1447 | /* Get the CMC error record and log it */ |
1448 | ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CMC); | 1448 | ia64_mca_log_sal_error_record(SAL_INFO_TYPE_CMC); |
1449 | 1449 | ||
1450 | local_irq_disable(); | ||
1451 | |||
1450 | return IRQ_HANDLED; | 1452 | return IRQ_HANDLED; |
1451 | } | 1453 | } |
1452 | 1454 | ||
diff --git a/arch/ia64/sn/kernel/huberror.c b/arch/ia64/sn/kernel/huberror.c index 08b0d9bb62ec..f925dec2da92 100644 --- a/arch/ia64/sn/kernel/huberror.c +++ b/arch/ia64/sn/kernel/huberror.c | |||
@@ -192,6 +192,7 @@ void hub_error_init(struct hubdev_info *hubdev_info) | |||
192 | hubdev_info); | 192 | hubdev_info); |
193 | return; | 193 | return; |
194 | } | 194 | } |
195 | irq_set_handler(SGI_II_ERROR, handle_level_irq); | ||
195 | sn_set_err_irq_affinity(SGI_II_ERROR); | 196 | sn_set_err_irq_affinity(SGI_II_ERROR); |
196 | } | 197 | } |
197 | 198 | ||
@@ -213,6 +214,7 @@ void ice_error_init(struct hubdev_info *hubdev_info) | |||
213 | hubdev_info); | 214 | hubdev_info); |
214 | return; | 215 | return; |
215 | } | 216 | } |
217 | irq_set_handler(SGI_TIO_ERROR, handle_level_irq); | ||
216 | sn_set_err_irq_affinity(SGI_TIO_ERROR); | 218 | sn_set_err_irq_affinity(SGI_TIO_ERROR); |
217 | } | 219 | } |
218 | 220 | ||
diff --git a/arch/ia64/sn/kernel/io_common.c b/arch/ia64/sn/kernel/io_common.c index 4433dd019d3c..fbb5f2f87eed 100644 --- a/arch/ia64/sn/kernel/io_common.c +++ b/arch/ia64/sn/kernel/io_common.c | |||
@@ -7,6 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/bootmem.h> | 9 | #include <linux/bootmem.h> |
10 | #include <linux/export.h> | ||
10 | #include <linux/slab.h> | 11 | #include <linux/slab.h> |
11 | #include <asm/sn/types.h> | 12 | #include <asm/sn/types.h> |
12 | #include <asm/sn/addrs.h> | 13 | #include <asm/sn/addrs.h> |
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index dfac09ab027a..62cf4dde6a04 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -352,6 +352,8 @@ void sn_irq_fixup(struct pci_dev *pci_dev, struct sn_irq_info *sn_irq_info) | |||
352 | spin_lock(&sn_irq_info_lock); | 352 | spin_lock(&sn_irq_info_lock); |
353 | list_add_rcu(&sn_irq_info->list, sn_irq_lh[sn_irq_info->irq_irq]); | 353 | list_add_rcu(&sn_irq_info->list, sn_irq_lh[sn_irq_info->irq_irq]); |
354 | reserve_irq_vector(sn_irq_info->irq_irq); | 354 | reserve_irq_vector(sn_irq_info->irq_irq); |
355 | if (sn_irq_info->irq_int_bit != -1) | ||
356 | irq_set_handler(sn_irq_info->irq_irq, handle_level_irq); | ||
355 | spin_unlock(&sn_irq_info_lock); | 357 | spin_unlock(&sn_irq_info_lock); |
356 | 358 | ||
357 | register_intr_pda(sn_irq_info); | 359 | register_intr_pda(sn_irq_info); |
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index 2de41d44266e..4554f68b7865 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -25,6 +25,7 @@ | |||
25 | 25 | ||
26 | #include <linux/fs.h> | 26 | #include <linux/fs.h> |
27 | #include <linux/slab.h> | 27 | #include <linux/slab.h> |
28 | #include <linux/export.h> | ||
28 | #include <linux/vmalloc.h> | 29 | #include <linux/vmalloc.h> |
29 | #include <linux/seq_file.h> | 30 | #include <linux/seq_file.h> |
30 | #include <linux/miscdevice.h> | 31 | #include <linux/miscdevice.h> |
diff --git a/arch/ia64/sn/kernel/tiocx.c b/arch/ia64/sn/kernel/tiocx.c index c1bd1cfda327..2f406f509d44 100644 --- a/arch/ia64/sn/kernel/tiocx.c +++ b/arch/ia64/sn/kernel/tiocx.c | |||
@@ -191,6 +191,7 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num, | |||
191 | struct hubdev_info *hubdev, int bt) | 191 | struct hubdev_info *hubdev, int bt) |
192 | { | 192 | { |
193 | struct cx_dev *cx_dev; | 193 | struct cx_dev *cx_dev; |
194 | int r; | ||
194 | 195 | ||
195 | cx_dev = kzalloc(sizeof(struct cx_dev), GFP_KERNEL); | 196 | cx_dev = kzalloc(sizeof(struct cx_dev), GFP_KERNEL); |
196 | DBG("cx_dev= 0x%p\n", cx_dev); | 197 | DBG("cx_dev= 0x%p\n", cx_dev); |
@@ -207,7 +208,11 @@ cx_device_register(nasid_t nasid, int part_num, int mfg_num, | |||
207 | cx_dev->dev.bus = &tiocx_bus_type; | 208 | cx_dev->dev.bus = &tiocx_bus_type; |
208 | cx_dev->dev.release = tiocx_bus_release; | 209 | cx_dev->dev.release = tiocx_bus_release; |
209 | dev_set_name(&cx_dev->dev, "%d", cx_dev->cx_id.nasid); | 210 | dev_set_name(&cx_dev->dev, "%d", cx_dev->cx_id.nasid); |
210 | device_register(&cx_dev->dev); | 211 | r = device_register(&cx_dev->dev); |
212 | if (r) { | ||
213 | kfree(cx_dev); | ||
214 | return r; | ||
215 | } | ||
211 | get_device(&cx_dev->dev); | 216 | get_device(&cx_dev->dev); |
212 | 217 | ||
213 | device_create_file(&cx_dev->dev, &dev_attr_cxdev_control); | 218 | device_create_file(&cx_dev->dev, &dev_attr_cxdev_control); |
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_provider.c b/arch/ia64/sn/pci/pcibr/pcibr_provider.c index 8886a0bc4a11..8dbbef4a4f47 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_provider.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_provider.c | |||
@@ -146,6 +146,7 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
146 | printk(KERN_WARNING | 146 | printk(KERN_WARNING |
147 | "pcibr cannot allocate interrupt for error handler\n"); | 147 | "pcibr cannot allocate interrupt for error handler\n"); |
148 | } | 148 | } |
149 | irq_set_handler(SGI_PCIASIC_ERROR, handle_level_irq); | ||
149 | sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); | 150 | sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); |
150 | 151 | ||
151 | /* | 152 | /* |
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c index e77c477245fd..a70b11fd57d6 100644 --- a/arch/ia64/sn/pci/tioca_provider.c +++ b/arch/ia64/sn/pci/tioca_provider.c | |||
@@ -649,6 +649,7 @@ tioca_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
649 | __func__, SGI_TIOCA_ERROR, | 649 | __func__, SGI_TIOCA_ERROR, |
650 | (int)tioca_common->ca_common.bs_persist_busnum); | 650 | (int)tioca_common->ca_common.bs_persist_busnum); |
651 | 651 | ||
652 | irq_set_handler(SGI_TIOCA_ERROR, handle_level_irq); | ||
652 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); | 653 | sn_set_err_irq_affinity(SGI_TIOCA_ERROR); |
653 | 654 | ||
654 | /* Setup locality information */ | 655 | /* Setup locality information */ |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index 27faba035f3a..46d3df4b03a1 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -1037,6 +1037,7 @@ tioce_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont | |||
1037 | tioce_common->ce_pcibus.bs_persist_segment, | 1037 | tioce_common->ce_pcibus.bs_persist_segment, |
1038 | tioce_common->ce_pcibus.bs_persist_busnum); | 1038 | tioce_common->ce_pcibus.bs_persist_busnum); |
1039 | 1039 | ||
1040 | irq_set_handler(SGI_PCIASIC_ERROR, handle_level_irq); | ||
1040 | sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); | 1041 | sn_set_err_irq_affinity(SGI_PCIASIC_ERROR); |
1041 | return tioce_common; | 1042 | return tioce_common; |
1042 | } | 1043 | } |