diff options
Diffstat (limited to 'arch/powerpc/kernel')
| -rw-r--r-- | arch/powerpc/kernel/cpu_setup_44x.S | 7 | ||||
| -rw-r--r-- | arch/powerpc/kernel/entry_64.S | 8 | ||||
| -rw-r--r-- | arch/powerpc/kernel/prom_parse.c | 7 | ||||
| -rw-r--r-- | arch/powerpc/kernel/sysfs.c | 2 |
4 files changed, 20 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/cpu_setup_44x.S b/arch/powerpc/kernel/cpu_setup_44x.S index 80cac984d85d..31c18b52affb 100644 --- a/arch/powerpc/kernel/cpu_setup_44x.S +++ b/arch/powerpc/kernel/cpu_setup_44x.S | |||
| @@ -34,7 +34,12 @@ _GLOBAL(__setup_cpu_440grx) | |||
| 34 | blr | 34 | blr |
| 35 | _GLOBAL(__setup_cpu_460ex) | 35 | _GLOBAL(__setup_cpu_460ex) |
| 36 | _GLOBAL(__setup_cpu_460gt) | 36 | _GLOBAL(__setup_cpu_460gt) |
| 37 | b __init_fpu_44x | 37 | mflr r4 |
| 38 | bl __init_fpu_44x | ||
| 39 | bl __fixup_440A_mcheck | ||
| 40 | mtlr r4 | ||
| 41 | blr | ||
| 42 | |||
| 38 | _GLOBAL(__setup_cpu_440gx) | 43 | _GLOBAL(__setup_cpu_440gx) |
| 39 | _GLOBAL(__setup_cpu_440spe) | 44 | _GLOBAL(__setup_cpu_440spe) |
| 40 | b __fixup_440A_mcheck | 45 | b __fixup_440A_mcheck |
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index e6d52845854f..e0bcf9354286 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
| @@ -57,12 +57,18 @@ system_call_common: | |||
| 57 | beq- 1f | 57 | beq- 1f |
| 58 | ld r1,PACAKSAVE(r13) | 58 | ld r1,PACAKSAVE(r13) |
| 59 | 1: std r10,0(r1) | 59 | 1: std r10,0(r1) |
| 60 | crclr so | ||
| 61 | std r11,_NIP(r1) | 60 | std r11,_NIP(r1) |
| 62 | std r12,_MSR(r1) | 61 | std r12,_MSR(r1) |
| 63 | std r0,GPR0(r1) | 62 | std r0,GPR0(r1) |
| 64 | std r10,GPR1(r1) | 63 | std r10,GPR1(r1) |
| 65 | ACCOUNT_CPU_USER_ENTRY(r10, r11) | 64 | ACCOUNT_CPU_USER_ENTRY(r10, r11) |
| 65 | /* | ||
| 66 | * This "crclr so" clears CR0.SO, which is the error indication on | ||
| 67 | * return from this system call. There must be no cmp instruction | ||
| 68 | * between it and the "mfcr r9" below, otherwise if XER.SO is set, | ||
| 69 | * CR0.SO will get set, causing all system calls to appear to fail. | ||
| 70 | */ | ||
| 71 | crclr so | ||
| 66 | std r2,GPR2(r1) | 72 | std r2,GPR2(r1) |
| 67 | std r3,GPR3(r1) | 73 | std r3,GPR3(r1) |
| 68 | std r4,GPR4(r1) | 74 | std r4,GPR4(r1) |
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c index bc1fb27368af..a11d68976dc8 100644 --- a/arch/powerpc/kernel/prom_parse.c +++ b/arch/powerpc/kernel/prom_parse.c | |||
| @@ -250,8 +250,11 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) | |||
| 250 | * parsing | 250 | * parsing |
| 251 | */ | 251 | */ |
| 252 | dn = pci_device_to_OF_node(pdev); | 252 | dn = pci_device_to_OF_node(pdev); |
| 253 | if (dn) | 253 | if (dn) { |
| 254 | return of_irq_map_one(dn, 0, out_irq); | 254 | rc = of_irq_map_one(dn, 0, out_irq); |
| 255 | if (!rc) | ||
| 256 | return rc; | ||
| 257 | } | ||
| 255 | 258 | ||
| 256 | /* Ok, we don't, time to have fun. Let's start by building up an | 259 | /* Ok, we don't, time to have fun. Let's start by building up an |
| 257 | * interrupt spec. we assume #interrupt-cells is 1, which is standard | 260 | * interrupt spec. we assume #interrupt-cells is 1, which is standard |
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c index 86a2ffccef25..20885a38237a 100644 --- a/arch/powerpc/kernel/sysfs.c +++ b/arch/powerpc/kernel/sysfs.c | |||
| @@ -717,9 +717,11 @@ static void unregister_cpu_online(unsigned int cpu) | |||
| 717 | 717 | ||
| 718 | BUG_ON(!c->hotpluggable); | 718 | BUG_ON(!c->hotpluggable); |
| 719 | 719 | ||
| 720 | #ifdef CONFIG_PPC64 | ||
| 720 | if (!firmware_has_feature(FW_FEATURE_ISERIES) && | 721 | if (!firmware_has_feature(FW_FEATURE_ISERIES) && |
| 721 | cpu_has_feature(CPU_FTR_SMT)) | 722 | cpu_has_feature(CPU_FTR_SMT)) |
| 722 | sysdev_remove_file(s, &attr_smt_snooze_delay); | 723 | sysdev_remove_file(s, &attr_smt_snooze_delay); |
| 724 | #endif | ||
| 723 | 725 | ||
| 724 | /* PMC stuff */ | 726 | /* PMC stuff */ |
| 725 | switch (cur_cpu_spec->pmc_type) { | 727 | switch (cur_cpu_spec->pmc_type) { |
