diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/Kconfig | 4 | ||||
-rw-r--r-- | arch/mips/au1000/common/dbdma.c | 2 | ||||
-rw-r--r-- | arch/mips/au1000/common/irq.c | 16 | ||||
-rw-r--r-- | arch/mips/au1000/pb1200/irqmap.c | 2 | ||||
-rw-r--r-- | arch/mips/oprofile/op_model_mipsxx.c | 44 | ||||
-rw-r--r-- | arch/mips/pci/pci-bcm1480.c | 5 | ||||
-rw-r--r-- | arch/s390/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/s390/kernel/setup.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/devices.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/pcic.c | 8 | ||||
-rw-r--r-- | arch/sparc64/defconfig | 9 | ||||
-rw-r--r-- | arch/sparc64/kernel/isa.c | 2 | ||||
-rw-r--r-- | arch/sparc64/kernel/ldc.c | 15 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci_sun4v.c | 4 | ||||
-rw-r--r-- | arch/sparc64/kernel/smp.c | 5 | ||||
-rw-r--r-- | arch/um/Makefile-i386 | 5 | ||||
-rw-r--r-- | arch/x86/Kconfig | 8 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/intel_cacheinfo.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/nmi_32.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/nmi_64.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/topology.c | 5 |
21 files changed, 103 insertions, 49 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 455bd1f560aa..c6fc405a6c8e 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -714,6 +714,10 @@ config ARCH_HAS_ILOG2_U64 | |||
714 | bool | 714 | bool |
715 | default n | 715 | default n |
716 | 716 | ||
717 | config ARCH_SUPPORTS_OPROFILE | ||
718 | bool | ||
719 | default y if !MIPS_MT_SMTC | ||
720 | |||
717 | config GENERIC_FIND_NEXT_BIT | 721 | config GENERIC_FIND_NEXT_BIT |
718 | bool | 722 | bool |
719 | default y | 723 | default y |
diff --git a/arch/mips/au1000/common/dbdma.c b/arch/mips/au1000/common/dbdma.c index 9d6ad43fded6..edf91f41a786 100644 --- a/arch/mips/au1000/common/dbdma.c +++ b/arch/mips/au1000/common/dbdma.c | |||
@@ -859,7 +859,7 @@ dbdma_interrupt(int irq, void *dev_id) | |||
859 | 859 | ||
860 | intstat = dbdma_gptr->ddma_intstat; | 860 | intstat = dbdma_gptr->ddma_intstat; |
861 | au_sync(); | 861 | au_sync(); |
862 | chan_index = ffs(intstat); | 862 | chan_index = __ffs(intstat); |
863 | 863 | ||
864 | ctp = chan_tab_ptr[chan_index]; | 864 | ctp = chan_tab_ptr[chan_index]; |
865 | cp = ctp->chan_ptr; | 865 | cp = ctp->chan_ptr; |
diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c index ddfb7f0a17a6..3c7714f057ac 100644 --- a/arch/mips/au1000/common/irq.c +++ b/arch/mips/au1000/common/irq.c | |||
@@ -462,9 +462,9 @@ static void intc0_req0_irqdispatch(void) | |||
462 | return; | 462 | return; |
463 | } | 463 | } |
464 | #endif | 464 | #endif |
465 | bit = ffs(intc0_req0); | 465 | bit = __ffs(intc0_req0); |
466 | intc0_req0 &= ~(1 << bit); | 466 | intc0_req0 &= ~(1 << bit); |
467 | do_IRQ(MIPS_CPU_IRQ_BASE + bit); | 467 | do_IRQ(AU1000_INTC0_INT_BASE + bit); |
468 | } | 468 | } |
469 | 469 | ||
470 | 470 | ||
@@ -478,9 +478,9 @@ static void intc0_req1_irqdispatch(void) | |||
478 | if (!intc0_req1) | 478 | if (!intc0_req1) |
479 | return; | 479 | return; |
480 | 480 | ||
481 | bit = ffs(intc0_req1); | 481 | bit = __ffs(intc0_req1); |
482 | intc0_req1 &= ~(1 << bit); | 482 | intc0_req1 &= ~(1 << bit); |
483 | do_IRQ(bit); | 483 | do_IRQ(AU1000_INTC0_INT_BASE + bit); |
484 | } | 484 | } |
485 | 485 | ||
486 | 486 | ||
@@ -498,9 +498,9 @@ static void intc1_req0_irqdispatch(void) | |||
498 | if (!intc1_req0) | 498 | if (!intc1_req0) |
499 | return; | 499 | return; |
500 | 500 | ||
501 | bit = ffs(intc1_req0); | 501 | bit = __ffs(intc1_req0); |
502 | intc1_req0 &= ~(1 << bit); | 502 | intc1_req0 &= ~(1 << bit); |
503 | do_IRQ(MIPS_CPU_IRQ_BASE + 32 + bit); | 503 | do_IRQ(AU1000_INTC1_INT_BASE + bit); |
504 | } | 504 | } |
505 | 505 | ||
506 | 506 | ||
@@ -514,9 +514,9 @@ static void intc1_req1_irqdispatch(void) | |||
514 | if (!intc1_req1) | 514 | if (!intc1_req1) |
515 | return; | 515 | return; |
516 | 516 | ||
517 | bit = ffs(intc1_req1); | 517 | bit = __ffs(intc1_req1); |
518 | intc1_req1 &= ~(1 << bit); | 518 | intc1_req1 &= ~(1 << bit); |
519 | do_IRQ(MIPS_CPU_IRQ_BASE + 32 + bit); | 519 | do_IRQ(AU1000_INTC1_INT_BASE + bit); |
520 | } | 520 | } |
521 | 521 | ||
522 | asmlinkage void plat_irq_dispatch(void) | 522 | asmlinkage void plat_irq_dispatch(void) |
diff --git a/arch/mips/au1000/pb1200/irqmap.c b/arch/mips/au1000/pb1200/irqmap.c index c096be4ed4e7..8fcd0df86f93 100644 --- a/arch/mips/au1000/pb1200/irqmap.c +++ b/arch/mips/au1000/pb1200/irqmap.c | |||
@@ -74,7 +74,7 @@ irqreturn_t pb1200_cascade_handler( int irq, void *dev_id) | |||
74 | bcsr->int_status = bisr; | 74 | bcsr->int_status = bisr; |
75 | for( ; bisr; bisr &= (bisr-1) ) | 75 | for( ; bisr; bisr &= (bisr-1) ) |
76 | { | 76 | { |
77 | extirq_nr = PB1200_INT_BEGIN + ffs(bisr); | 77 | extirq_nr = PB1200_INT_BEGIN + __ffs(bisr); |
78 | /* Ack and dispatch IRQ */ | 78 | /* Ack and dispatch IRQ */ |
79 | do_IRQ(extirq_nr); | 79 | do_IRQ(extirq_nr); |
80 | } | 80 | } |
diff --git a/arch/mips/oprofile/op_model_mipsxx.c b/arch/mips/oprofile/op_model_mipsxx.c index 423bc2c473df..bdfa07aecd97 100644 --- a/arch/mips/oprofile/op_model_mipsxx.c +++ b/arch/mips/oprofile/op_model_mipsxx.c | |||
@@ -6,6 +6,7 @@ | |||
6 | * Copyright (C) 2004, 05, 06 by Ralf Baechle | 6 | * Copyright (C) 2004, 05, 06 by Ralf Baechle |
7 | * Copyright (C) 2005 by MIPS Technologies, Inc. | 7 | * Copyright (C) 2005 by MIPS Technologies, Inc. |
8 | */ | 8 | */ |
9 | #include <linux/cpumask.h> | ||
9 | #include <linux/oprofile.h> | 10 | #include <linux/oprofile.h> |
10 | #include <linux/interrupt.h> | 11 | #include <linux/interrupt.h> |
11 | #include <linux/smp.h> | 12 | #include <linux/smp.h> |
@@ -33,11 +34,45 @@ | |||
33 | #ifdef CONFIG_MIPS_MT_SMP | 34 | #ifdef CONFIG_MIPS_MT_SMP |
34 | #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) | 35 | #define WHAT (M_TC_EN_VPE | M_PERFCTL_VPEID(smp_processor_id())) |
35 | #define vpe_id() smp_processor_id() | 36 | #define vpe_id() smp_processor_id() |
37 | |||
38 | /* | ||
39 | * The number of bits to shift to convert between counters per core and | ||
40 | * counters per VPE. There is no reasonable interface atm to obtain the | ||
41 | * number of VPEs used by Linux and in the 34K this number is fixed to two | ||
42 | * anyways so we hardcore a few things here for the moment. The way it's | ||
43 | * done here will ensure that oprofile VSMP kernel will run right on a lesser | ||
44 | * core like a 24K also or with maxcpus=1. | ||
45 | */ | ||
46 | static inline unsigned int vpe_shift(void) | ||
47 | { | ||
48 | if (num_possible_cpus() > 1) | ||
49 | return 1; | ||
50 | |||
51 | return 0; | ||
52 | } | ||
53 | |||
36 | #else | 54 | #else |
55 | |||
37 | #define WHAT 0 | 56 | #define WHAT 0 |
38 | #define vpe_id() 0 | 57 | #define vpe_id() 0 |
58 | |||
59 | static inline unsigned int vpe_shift(void) | ||
60 | { | ||
61 | return 0; | ||
62 | } | ||
63 | |||
39 | #endif | 64 | #endif |
40 | 65 | ||
66 | static inline unsigned int counters_total_to_per_cpu(unsigned int counters) | ||
67 | { | ||
68 | return counters >> vpe_shift(); | ||
69 | } | ||
70 | |||
71 | static inline unsigned int counters_per_cpu_to_total(unsigned int counters) | ||
72 | { | ||
73 | return counters << vpe_shift(); | ||
74 | } | ||
75 | |||
41 | #define __define_perf_accessors(r, n, np) \ | 76 | #define __define_perf_accessors(r, n, np) \ |
42 | \ | 77 | \ |
43 | static inline unsigned int r_c0_ ## r ## n(void) \ | 78 | static inline unsigned int r_c0_ ## r ## n(void) \ |
@@ -269,9 +304,7 @@ static int __init mipsxx_init(void) | |||
269 | 304 | ||
270 | reset_counters(counters); | 305 | reset_counters(counters); |
271 | 306 | ||
272 | #ifdef CONFIG_MIPS_MT_SMP | 307 | counters = counters_total_to_per_cpu(counters); |
273 | counters >>= 1; | ||
274 | #endif | ||
275 | 308 | ||
276 | op_model_mipsxx_ops.num_counters = counters; | 309 | op_model_mipsxx_ops.num_counters = counters; |
277 | switch (current_cpu_type()) { | 310 | switch (current_cpu_type()) { |
@@ -330,9 +363,8 @@ static int __init mipsxx_init(void) | |||
330 | static void mipsxx_exit(void) | 363 | static void mipsxx_exit(void) |
331 | { | 364 | { |
332 | int counters = op_model_mipsxx_ops.num_counters; | 365 | int counters = op_model_mipsxx_ops.num_counters; |
333 | #ifdef CONFIG_MIPS_MT_SMP | 366 | |
334 | counters <<= 1; | 367 | counters = counters_per_cpu_to_total(counters); |
335 | #endif | ||
336 | reset_counters(counters); | 368 | reset_counters(counters); |
337 | 369 | ||
338 | perf_irq = null_perf_irq; | 370 | perf_irq = null_perf_irq; |
diff --git a/arch/mips/pci/pci-bcm1480.c b/arch/mips/pci/pci-bcm1480.c index bc647cb77298..47f316c86ab1 100644 --- a/arch/mips/pci/pci-bcm1480.c +++ b/arch/mips/pci/pci-bcm1480.c | |||
@@ -76,7 +76,10 @@ static inline void WRITECFG32(u32 addr, u32 data) | |||
76 | 76 | ||
77 | int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) | 77 | int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) |
78 | { | 78 | { |
79 | return K_BCM1480_INT_PCI_INTA + pin; | 79 | if (pin == 0) |
80 | return -1; | ||
81 | |||
82 | return K_BCM1480_INT_PCI_INTA - 1 + pin; | ||
80 | } | 83 | } |
81 | 84 | ||
82 | /* Do platform specific device initialization at pci_enable_device() time */ | 85 | /* Do platform specific device initialization at pci_enable_device() time */ |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index b2b2edc40eb1..1a6dac8df6fb 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -1079,8 +1079,10 @@ cleanup_io_leave_insn: | |||
1079 | .Lexecve_tail: .long execve_tail | 1079 | .Lexecve_tail: .long execve_tail |
1080 | .Ljump_table: .long pgm_check_table | 1080 | .Ljump_table: .long pgm_check_table |
1081 | .Lschedule: .long schedule | 1081 | .Lschedule: .long schedule |
1082 | #ifdef CONFIG_PREEMPT | ||
1082 | .Lpreempt_schedule_irq: | 1083 | .Lpreempt_schedule_irq: |
1083 | .long preempt_schedule_irq | 1084 | .long preempt_schedule_irq |
1085 | #endif | ||
1084 | .Ltrace: .long syscall_trace | 1086 | .Ltrace: .long syscall_trace |
1085 | .Lschedtail: .long schedule_tail | 1087 | .Lschedtail: .long schedule_tail |
1086 | .Lsysc_table: .long sys_call_table | 1088 | .Lsysc_table: .long sys_call_table |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 50f8f1e3760e..577aa7dd660e 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -486,9 +486,7 @@ static void setup_addressing_mode(void) | |||
486 | if (s390_noexec) { | 486 | if (s390_noexec) { |
487 | printk("S390 execute protection active, "); | 487 | printk("S390 execute protection active, "); |
488 | set_amode_and_uaccess(PSW_ASC_SECONDARY, PSW32_ASC_SECONDARY); | 488 | set_amode_and_uaccess(PSW_ASC_SECONDARY, PSW32_ASC_SECONDARY); |
489 | return; | 489 | } else if (switch_amode) { |
490 | } | ||
491 | if (switch_amode) { | ||
492 | printk("S390 address spaces switched, "); | 490 | printk("S390 address spaces switched, "); |
493 | set_amode_and_uaccess(PSW_ASC_PRIMARY, PSW32_ASC_PRIMARY); | 491 | set_amode_and_uaccess(PSW_ASC_PRIMARY, PSW32_ASC_PRIMARY); |
494 | } | 492 | } |
diff --git a/arch/sparc/kernel/devices.c b/arch/sparc/kernel/devices.c index af90a5f9ab57..b240b8863fd0 100644 --- a/arch/sparc/kernel/devices.c +++ b/arch/sparc/kernel/devices.c | |||
@@ -62,8 +62,10 @@ static int __cpu_find_by(int (*compare)(int, int, void *), void *compare_arg, | |||
62 | int err = check_cpu_node(dp->node, &cur_inst, | 62 | int err = check_cpu_node(dp->node, &cur_inst, |
63 | compare, compare_arg, | 63 | compare, compare_arg, |
64 | prom_node, mid); | 64 | prom_node, mid); |
65 | if (!err) | 65 | if (!err) { |
66 | of_node_put(dp); | ||
66 | return 0; | 67 | return 0; |
68 | } | ||
67 | } | 69 | } |
68 | 70 | ||
69 | return -ENODEV; | 71 | return -ENODEV; |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index f2d432edc92d..4cd5d7818dc6 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
@@ -329,7 +329,7 @@ int __init pcic_probe(void) | |||
329 | pcic->pcic_res_cfg_addr.name = "pcic_cfg_addr"; | 329 | pcic->pcic_res_cfg_addr.name = "pcic_cfg_addr"; |
330 | if ((pcic->pcic_config_space_addr = | 330 | if ((pcic->pcic_config_space_addr = |
331 | ioremap(regs[2].phys_addr, regs[2].reg_size * 2)) == 0) { | 331 | ioremap(regs[2].phys_addr, regs[2].reg_size * 2)) == 0) { |
332 | prom_printf("PCIC: Error, cannot map" | 332 | prom_printf("PCIC: Error, cannot map " |
333 | "PCI Configuration Space Address.\n"); | 333 | "PCI Configuration Space Address.\n"); |
334 | prom_halt(); | 334 | prom_halt(); |
335 | } | 335 | } |
@@ -341,7 +341,7 @@ int __init pcic_probe(void) | |||
341 | pcic->pcic_res_cfg_data.name = "pcic_cfg_data"; | 341 | pcic->pcic_res_cfg_data.name = "pcic_cfg_data"; |
342 | if ((pcic->pcic_config_space_data = | 342 | if ((pcic->pcic_config_space_data = |
343 | ioremap(regs[3].phys_addr, regs[3].reg_size * 2)) == 0) { | 343 | ioremap(regs[3].phys_addr, regs[3].reg_size * 2)) == 0) { |
344 | prom_printf("PCIC: Error, cannot map" | 344 | prom_printf("PCIC: Error, cannot map " |
345 | "PCI Configuration Space Data.\n"); | 345 | "PCI Configuration Space Data.\n"); |
346 | prom_halt(); | 346 | prom_halt(); |
347 | } | 347 | } |
@@ -518,8 +518,8 @@ static void pcic_map_pci_device(struct linux_pcic *pcic, | |||
518 | * board in a PCI slot. We must remap it | 518 | * board in a PCI slot. We must remap it |
519 | * under 64K but it is not done yet. XXX | 519 | * under 64K but it is not done yet. XXX |
520 | */ | 520 | */ |
521 | printk("PCIC: Skipping I/O space at 0x%lx," | 521 | printk("PCIC: Skipping I/O space at 0x%lx, " |
522 | "this will Oops if a driver attaches;" | 522 | "this will Oops if a driver attaches " |
523 | "device '%s' at %02x:%02x)\n", address, | 523 | "device '%s' at %02x:%02x)\n", address, |
524 | namebuf, dev->bus->number, dev->devfn); | 524 | namebuf, dev->bus->number, dev->devfn); |
525 | } | 525 | } |
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig index 22734ac08c8a..f62d9f6c5e2a 100644 --- a/arch/sparc64/defconfig +++ b/arch/sparc64/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc1 | 3 | # Linux kernel version: 2.6.24-rc4 |
4 | # Wed Oct 31 15:36:47 2007 | 4 | # Tue Dec 4 00:37:59 2007 |
5 | # | 5 | # |
6 | CONFIG_SPARC=y | 6 | CONFIG_SPARC=y |
7 | CONFIG_SPARC64=y | 7 | CONFIG_SPARC64=y |
@@ -47,6 +47,7 @@ CONFIG_POSIX_MQUEUE=y | |||
47 | # CONFIG_BSD_PROCESS_ACCT is not set | 47 | # CONFIG_BSD_PROCESS_ACCT is not set |
48 | # CONFIG_TASKSTATS is not set | 48 | # CONFIG_TASKSTATS is not set |
49 | # CONFIG_USER_NS is not set | 49 | # CONFIG_USER_NS is not set |
50 | # CONFIG_PID_NS is not set | ||
50 | # CONFIG_AUDIT is not set | 51 | # CONFIG_AUDIT is not set |
51 | # CONFIG_IKCONFIG is not set | 52 | # CONFIG_IKCONFIG is not set |
52 | CONFIG_LOG_BUF_SHIFT=18 | 53 | CONFIG_LOG_BUF_SHIFT=18 |
@@ -154,6 +155,7 @@ CONFIG_PCI_DOMAINS=y | |||
154 | CONFIG_PCI_SYSCALL=y | 155 | CONFIG_PCI_SYSCALL=y |
155 | CONFIG_ARCH_SUPPORTS_MSI=y | 156 | CONFIG_ARCH_SUPPORTS_MSI=y |
156 | CONFIG_PCI_MSI=y | 157 | CONFIG_PCI_MSI=y |
158 | # CONFIG_PCI_LEGACY is not set | ||
157 | # CONFIG_PCI_DEBUG is not set | 159 | # CONFIG_PCI_DEBUG is not set |
158 | CONFIG_SUN_OPENPROMFS=m | 160 | CONFIG_SUN_OPENPROMFS=m |
159 | CONFIG_SPARC32_COMPAT=y | 161 | CONFIG_SPARC32_COMPAT=y |
@@ -359,7 +361,6 @@ CONFIG_IDE_GENERIC=y | |||
359 | CONFIG_BLK_DEV_IDEPCI=y | 361 | CONFIG_BLK_DEV_IDEPCI=y |
360 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 362 | # CONFIG_IDEPCI_SHARE_IRQ is not set |
361 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 363 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
362 | # CONFIG_BLK_DEV_OFFBOARD is not set | ||
363 | # CONFIG_BLK_DEV_GENERIC is not set | 364 | # CONFIG_BLK_DEV_GENERIC is not set |
364 | # CONFIG_BLK_DEV_OPTI621 is not set | 365 | # CONFIG_BLK_DEV_OPTI621 is not set |
365 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 366 | CONFIG_BLK_DEV_IDEDMA_PCI=y |
@@ -584,7 +585,6 @@ CONFIG_NIU=m | |||
584 | # CONFIG_USB_KAWETH is not set | 585 | # CONFIG_USB_KAWETH is not set |
585 | # CONFIG_USB_PEGASUS is not set | 586 | # CONFIG_USB_PEGASUS is not set |
586 | # CONFIG_USB_RTL8150 is not set | 587 | # CONFIG_USB_RTL8150 is not set |
587 | # CONFIG_USB_USBNET_MII is not set | ||
588 | # CONFIG_USB_USBNET is not set | 588 | # CONFIG_USB_USBNET is not set |
589 | # CONFIG_WAN is not set | 589 | # CONFIG_WAN is not set |
590 | # CONFIG_FDDI is not set | 590 | # CONFIG_FDDI is not set |
@@ -780,6 +780,7 @@ CONFIG_HWMON=y | |||
780 | # CONFIG_SENSORS_ADT7470 is not set | 780 | # CONFIG_SENSORS_ADT7470 is not set |
781 | # CONFIG_SENSORS_ATXP1 is not set | 781 | # CONFIG_SENSORS_ATXP1 is not set |
782 | # CONFIG_SENSORS_DS1621 is not set | 782 | # CONFIG_SENSORS_DS1621 is not set |
783 | # CONFIG_SENSORS_I5K_AMB is not set | ||
783 | # CONFIG_SENSORS_F71805F is not set | 784 | # CONFIG_SENSORS_F71805F is not set |
784 | # CONFIG_SENSORS_F71882FG is not set | 785 | # CONFIG_SENSORS_F71882FG is not set |
785 | # CONFIG_SENSORS_F75375S is not set | 786 | # CONFIG_SENSORS_F75375S is not set |
diff --git a/arch/sparc64/kernel/isa.c b/arch/sparc64/kernel/isa.c index 0f19dce1c905..b5f7b354084f 100644 --- a/arch/sparc64/kernel/isa.c +++ b/arch/sparc64/kernel/isa.c | |||
@@ -155,6 +155,7 @@ void __init isa_init(void) | |||
155 | isa_br = kzalloc(sizeof(*isa_br), GFP_KERNEL); | 155 | isa_br = kzalloc(sizeof(*isa_br), GFP_KERNEL); |
156 | if (!isa_br) { | 156 | if (!isa_br) { |
157 | printk(KERN_DEBUG "isa: cannot allocate sparc_isa_bridge"); | 157 | printk(KERN_DEBUG "isa: cannot allocate sparc_isa_bridge"); |
158 | pci_dev_put(pdev); | ||
158 | return; | 159 | return; |
159 | } | 160 | } |
160 | 161 | ||
@@ -168,6 +169,7 @@ void __init isa_init(void) | |||
168 | printk(KERN_DEBUG "isa: device registration error for %s!\n", | 169 | printk(KERN_DEBUG "isa: device registration error for %s!\n", |
169 | dp->path_component_name); | 170 | dp->path_component_name); |
170 | kfree(isa_br); | 171 | kfree(isa_br); |
172 | pci_dev_put(pdev); | ||
171 | return; | 173 | return; |
172 | } | 174 | } |
173 | 175 | ||
diff --git a/arch/sparc64/kernel/ldc.c b/arch/sparc64/kernel/ldc.c index 217478a94128..63969f610284 100644 --- a/arch/sparc64/kernel/ldc.c +++ b/arch/sparc64/kernel/ldc.c | |||
@@ -2338,6 +2338,7 @@ static int __init ldc_init(void) | |||
2338 | unsigned long major, minor; | 2338 | unsigned long major, minor; |
2339 | struct mdesc_handle *hp; | 2339 | struct mdesc_handle *hp; |
2340 | const u64 *v; | 2340 | const u64 *v; |
2341 | int err; | ||
2341 | u64 mp; | 2342 | u64 mp; |
2342 | 2343 | ||
2343 | hp = mdesc_grab(); | 2344 | hp = mdesc_grab(); |
@@ -2345,29 +2346,33 @@ static int __init ldc_init(void) | |||
2345 | return -ENODEV; | 2346 | return -ENODEV; |
2346 | 2347 | ||
2347 | mp = mdesc_node_by_name(hp, MDESC_NODE_NULL, "platform"); | 2348 | mp = mdesc_node_by_name(hp, MDESC_NODE_NULL, "platform"); |
2349 | err = -ENODEV; | ||
2348 | if (mp == MDESC_NODE_NULL) | 2350 | if (mp == MDESC_NODE_NULL) |
2349 | return -ENODEV; | 2351 | goto out; |
2350 | 2352 | ||
2351 | v = mdesc_get_property(hp, mp, "domaining-enabled", NULL); | 2353 | v = mdesc_get_property(hp, mp, "domaining-enabled", NULL); |
2352 | if (!v) | 2354 | if (!v) |
2353 | return -ENODEV; | 2355 | goto out; |
2354 | 2356 | ||
2355 | major = 1; | 2357 | major = 1; |
2356 | minor = 0; | 2358 | minor = 0; |
2357 | if (sun4v_hvapi_register(HV_GRP_LDOM, major, &minor)) { | 2359 | if (sun4v_hvapi_register(HV_GRP_LDOM, major, &minor)) { |
2358 | printk(KERN_INFO PFX "Could not register LDOM hvapi.\n"); | 2360 | printk(KERN_INFO PFX "Could not register LDOM hvapi.\n"); |
2359 | return -ENODEV; | 2361 | goto out; |
2360 | } | 2362 | } |
2361 | 2363 | ||
2362 | printk(KERN_INFO "%s", version); | 2364 | printk(KERN_INFO "%s", version); |
2363 | 2365 | ||
2364 | if (!*v) { | 2366 | if (!*v) { |
2365 | printk(KERN_INFO PFX "Domaining disabled.\n"); | 2367 | printk(KERN_INFO PFX "Domaining disabled.\n"); |
2366 | return -ENODEV; | 2368 | goto out; |
2367 | } | 2369 | } |
2368 | ldom_domaining_enabled = 1; | 2370 | ldom_domaining_enabled = 1; |
2371 | err = 0; | ||
2369 | 2372 | ||
2370 | return 0; | 2373 | out: |
2374 | mdesc_release(hp); | ||
2375 | return err; | ||
2371 | } | 2376 | } |
2372 | 2377 | ||
2373 | core_initcall(ldc_init); | 2378 | core_initcall(ldc_init); |
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c index 8c4875bdb4a8..e587a372f3fe 100644 --- a/arch/sparc64/kernel/pci_sun4v.c +++ b/arch/sparc64/kernel/pci_sun4v.c | |||
@@ -1022,6 +1022,10 @@ void __init sun4v_pci_init(struct device_node *dp, char *model_name) | |||
1022 | } | 1022 | } |
1023 | 1023 | ||
1024 | prop = of_find_property(dp, "reg", NULL); | 1024 | prop = of_find_property(dp, "reg", NULL); |
1025 | if (!prop) { | ||
1026 | prom_printf("SUN4V_PCI: Could not find config registers\n"); | ||
1027 | prom_halt(); | ||
1028 | } | ||
1025 | regs = prop->value; | 1029 | regs = prop->value; |
1026 | 1030 | ||
1027 | devhandle = (regs->phys_addr >> 32UL) & 0x0fffffff; | 1031 | devhandle = (regs->phys_addr >> 32UL) & 0x0fffffff; |
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index 7cd8d94df0dc..894b506f9636 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -236,8 +236,9 @@ void smp_synchronize_tick_client(void) | |||
236 | t[i].rt, t[i].master, t[i].diff, t[i].lat); | 236 | t[i].rt, t[i].master, t[i].diff, t[i].lat); |
237 | #endif | 237 | #endif |
238 | 238 | ||
239 | printk(KERN_INFO "CPU %d: synchronized TICK with master CPU (last diff %ld cycles," | 239 | printk(KERN_INFO "CPU %d: synchronized TICK with master CPU " |
240 | "maxerr %lu cycles)\n", smp_processor_id(), delta, rt); | 240 | "(last diff %ld cycles, maxerr %lu cycles)\n", |
241 | smp_processor_id(), delta, rt); | ||
241 | } | 242 | } |
242 | 243 | ||
243 | static void smp_start_sync_tick_client(int cpu); | 244 | static void smp_start_sync_tick_client(int cpu); |
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index 67290117d909..561e373bd850 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 | |||
@@ -22,11 +22,6 @@ export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS | |||
22 | endif | 22 | endif |
23 | endif | 23 | endif |
24 | 24 | ||
25 | KBUILD_CFLAGS += -DCONFIG_X86_32 | ||
26 | KBUILD_AFLAGS += -DCONFIG_X86_32 | ||
27 | CONFIG_X86_32 := y | ||
28 | export CONFIG_X86_32 | ||
29 | |||
30 | # First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y. | 25 | # First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y. |
31 | include $(srctree)/arch/x86/Makefile_32.cpu | 26 | include $(srctree)/arch/x86/Makefile_32.cpu |
32 | 27 | ||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 368864dfe6eb..80b7ba4056db 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -112,8 +112,9 @@ config GENERIC_TIME_VSYSCALL | |||
112 | bool | 112 | bool |
113 | default X86_64 | 113 | default X86_64 |
114 | 114 | ||
115 | 115 | config ARCH_SUPPORTS_OPROFILE | |
116 | 116 | bool | |
117 | default y | ||
117 | 118 | ||
118 | 119 | ||
119 | config ZONE_DMA32 | 120 | config ZONE_DMA32 |
@@ -148,7 +149,8 @@ config X86_SMP | |||
148 | 149 | ||
149 | config X86_HT | 150 | config X86_HT |
150 | bool | 151 | bool |
151 | depends on SMP && !(X86_VISWS || X86_VOYAGER || MK8) | 152 | depends on SMP |
153 | depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || (X86_64 && !MK8) | ||
152 | default y | 154 | default y |
153 | 155 | ||
154 | config X86_BIOS_REBOOT | 156 | config X86_BIOS_REBOOT |
diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c index 9921b01fe199..606fe4d55a91 100644 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c | |||
@@ -497,7 +497,7 @@ static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index) {} | |||
497 | static void __cpuinit cache_remove_shared_cpu_map(unsigned int cpu, int index) {} | 497 | static void __cpuinit cache_remove_shared_cpu_map(unsigned int cpu, int index) {} |
498 | #endif | 498 | #endif |
499 | 499 | ||
500 | static void free_cache_attributes(unsigned int cpu) | 500 | static void __cpuinit free_cache_attributes(unsigned int cpu) |
501 | { | 501 | { |
502 | int i; | 502 | int i; |
503 | 503 | ||
diff --git a/arch/x86/kernel/nmi_32.c b/arch/x86/kernel/nmi_32.c index f5cc47c60b13..80ca72e5ac29 100644 --- a/arch/x86/kernel/nmi_32.c +++ b/arch/x86/kernel/nmi_32.c | |||
@@ -106,7 +106,8 @@ static int __init check_nmi_watchdog(void) | |||
106 | if (!per_cpu(wd_enabled, cpu)) | 106 | if (!per_cpu(wd_enabled, cpu)) |
107 | continue; | 107 | continue; |
108 | if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) { | 108 | if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) { |
109 | printk("CPU#%d: NMI appears to be stuck (%d->%d)!\n", | 109 | printk(KERN_WARNING "WARNING: CPU#%d: NMI " |
110 | "appears to be stuck (%d->%d)!\n", | ||
110 | cpu, | 111 | cpu, |
111 | prev_nmi_count[cpu], | 112 | prev_nmi_count[cpu], |
112 | nmi_count(cpu)); | 113 | nmi_count(cpu)); |
diff --git a/arch/x86/kernel/nmi_64.c b/arch/x86/kernel/nmi_64.c index a576fd740062..4253c4e8849c 100644 --- a/arch/x86/kernel/nmi_64.c +++ b/arch/x86/kernel/nmi_64.c | |||
@@ -109,7 +109,8 @@ int __init check_nmi_watchdog (void) | |||
109 | if (!per_cpu(wd_enabled, cpu)) | 109 | if (!per_cpu(wd_enabled, cpu)) |
110 | continue; | 110 | continue; |
111 | if (cpu_pda(cpu)->__nmi_count - counts[cpu] <= 5) { | 111 | if (cpu_pda(cpu)->__nmi_count - counts[cpu] <= 5) { |
112 | printk("CPU#%d: NMI appears to be stuck (%d->%d)!\n", | 112 | printk(KERN_WARNING "WARNING: CPU#%d: NMI " |
113 | "appears to be stuck (%d->%d)!\n", | ||
113 | cpu, | 114 | cpu, |
114 | counts[cpu], | 115 | counts[cpu], |
115 | cpu_pda(cpu)->__nmi_count); | 116 | cpu_pda(cpu)->__nmi_count); |
diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c index 8caa0b777466..7e16d675eb85 100644 --- a/arch/x86/kernel/topology.c +++ b/arch/x86/kernel/topology.c | |||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | static struct i386_cpu cpu_devices[NR_CPUS]; | 34 | static struct i386_cpu cpu_devices[NR_CPUS]; |
35 | 35 | ||
36 | int arch_register_cpu(int num) | 36 | int __cpuinit arch_register_cpu(int num) |
37 | { | 37 | { |
38 | /* | 38 | /* |
39 | * CPU0 cannot be offlined due to several | 39 | * CPU0 cannot be offlined due to several |
@@ -53,7 +53,8 @@ int arch_register_cpu(int num) | |||
53 | } | 53 | } |
54 | 54 | ||
55 | #ifdef CONFIG_HOTPLUG_CPU | 55 | #ifdef CONFIG_HOTPLUG_CPU |
56 | void arch_unregister_cpu(int num) { | 56 | void arch_unregister_cpu(int num) |
57 | { | ||
57 | return unregister_cpu(&cpu_devices[num].cpu); | 58 | return unregister_cpu(&cpu_devices[num].cpu); |
58 | } | 59 | } |
59 | EXPORT_SYMBOL(arch_register_cpu); | 60 | EXPORT_SYMBOL(arch_register_cpu); |