diff options
Diffstat (limited to 'arch/x86/kernel')
| -rw-r--r-- | arch/x86/kernel/acpi/sleep.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/amd_iommu_init.c | 10 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_uv_x.c | 12 | ||||
| -rw-r--r-- | arch/x86/kernel/cpu/perf_event.c | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/process.c | 4 | ||||
| -rw-r--r-- | arch/x86/kernel/process_32.c | 14 | ||||
| -rw-r--r-- | arch/x86/kernel/process_64.c | 24 |
7 files changed, 40 insertions, 28 deletions
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index 82e508677b91..f9961034e557 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c | |||
| @@ -162,6 +162,8 @@ static int __init acpi_sleep_setup(char *str) | |||
| 162 | #endif | 162 | #endif |
| 163 | if (strncmp(str, "old_ordering", 12) == 0) | 163 | if (strncmp(str, "old_ordering", 12) == 0) |
| 164 | acpi_old_suspend_ordering(); | 164 | acpi_old_suspend_ordering(); |
| 165 | if (strncmp(str, "sci_force_enable", 16) == 0) | ||
| 166 | acpi_set_sci_en_on_resume(); | ||
| 165 | str = strchr(str, ','); | 167 | str = strchr(str, ','); |
| 166 | if (str != NULL) | 168 | if (str != NULL) |
| 167 | str += strspn(str, ", \t"); | 169 | str += strspn(str, ", \t"); |
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 1dca9c34eaeb..fb490ce7dd55 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
| @@ -138,6 +138,11 @@ int amd_iommus_present; | |||
| 138 | bool amd_iommu_np_cache __read_mostly; | 138 | bool amd_iommu_np_cache __read_mostly; |
| 139 | 139 | ||
| 140 | /* | 140 | /* |
| 141 | * Set to true if ACPI table parsing and hardware intialization went properly | ||
| 142 | */ | ||
| 143 | static bool amd_iommu_initialized; | ||
| 144 | |||
| 145 | /* | ||
| 141 | * List of protection domains - used during resume | 146 | * List of protection domains - used during resume |
| 142 | */ | 147 | */ |
| 143 | LIST_HEAD(amd_iommu_pd_list); | 148 | LIST_HEAD(amd_iommu_pd_list); |
| @@ -929,6 +934,8 @@ static int __init init_iommu_all(struct acpi_table_header *table) | |||
| 929 | } | 934 | } |
| 930 | WARN_ON(p != end); | 935 | WARN_ON(p != end); |
| 931 | 936 | ||
| 937 | amd_iommu_initialized = true; | ||
| 938 | |||
| 932 | return 0; | 939 | return 0; |
| 933 | } | 940 | } |
| 934 | 941 | ||
| @@ -1263,6 +1270,9 @@ static int __init amd_iommu_init(void) | |||
| 1263 | if (acpi_table_parse("IVRS", init_iommu_all) != 0) | 1270 | if (acpi_table_parse("IVRS", init_iommu_all) != 0) |
| 1264 | goto free; | 1271 | goto free; |
| 1265 | 1272 | ||
| 1273 | if (!amd_iommu_initialized) | ||
| 1274 | goto free; | ||
| 1275 | |||
| 1266 | if (acpi_table_parse("IVRS", init_memory_definitions) != 0) | 1276 | if (acpi_table_parse("IVRS", init_memory_definitions) != 0) |
| 1267 | goto free; | 1277 | goto free; |
| 1268 | 1278 | ||
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index d56b0efb2057..5f92494dab61 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
| @@ -629,8 +629,10 @@ void __init uv_system_init(void) | |||
| 629 | uv_rtc_init(); | 629 | uv_rtc_init(); |
| 630 | 630 | ||
| 631 | for_each_present_cpu(cpu) { | 631 | for_each_present_cpu(cpu) { |
| 632 | int apicid = per_cpu(x86_cpu_to_apicid, cpu); | ||
| 633 | |||
| 632 | nid = cpu_to_node(cpu); | 634 | nid = cpu_to_node(cpu); |
| 633 | pnode = uv_apicid_to_pnode(per_cpu(x86_cpu_to_apicid, cpu)); | 635 | pnode = uv_apicid_to_pnode(apicid); |
| 634 | blade = boot_pnode_to_blade(pnode); | 636 | blade = boot_pnode_to_blade(pnode); |
| 635 | lcpu = uv_blade_info[blade].nr_possible_cpus; | 637 | lcpu = uv_blade_info[blade].nr_possible_cpus; |
| 636 | uv_blade_info[blade].nr_possible_cpus++; | 638 | uv_blade_info[blade].nr_possible_cpus++; |
| @@ -651,15 +653,13 @@ void __init uv_system_init(void) | |||
| 651 | uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra; | 653 | uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra; |
| 652 | uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; | 654 | uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; |
| 653 | uv_cpu_hub_info(cpu)->coherency_domain_number = sn_coherency_id; | 655 | uv_cpu_hub_info(cpu)->coherency_domain_number = sn_coherency_id; |
| 654 | uv_cpu_hub_info(cpu)->scir.offset = SCIR_LOCAL_MMR_BASE + lcpu; | 656 | uv_cpu_hub_info(cpu)->scir.offset = uv_scir_offset(apicid); |
| 655 | uv_node_to_blade[nid] = blade; | 657 | uv_node_to_blade[nid] = blade; |
| 656 | uv_cpu_to_blade[cpu] = blade; | 658 | uv_cpu_to_blade[cpu] = blade; |
| 657 | max_pnode = max(pnode, max_pnode); | 659 | max_pnode = max(pnode, max_pnode); |
| 658 | 660 | ||
| 659 | printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, " | 661 | printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, lcpu %d, blade %d\n", |
| 660 | "lcpu %d, blade %d\n", | 662 | cpu, apicid, pnode, nid, lcpu, blade); |
| 661 | cpu, per_cpu(x86_cpu_to_apicid, cpu), pnode, nid, | ||
| 662 | lcpu, blade); | ||
| 663 | } | 663 | } |
| 664 | 664 | ||
| 665 | /* Add blade/pnode info for nodes without cpus */ | 665 | /* Add blade/pnode info for nodes without cpus */ |
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index c223b7e895d9..d616c06e99b4 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
| @@ -2347,7 +2347,7 @@ perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry) | |||
| 2347 | callchain_store(entry, PERF_CONTEXT_KERNEL); | 2347 | callchain_store(entry, PERF_CONTEXT_KERNEL); |
| 2348 | callchain_store(entry, regs->ip); | 2348 | callchain_store(entry, regs->ip); |
| 2349 | 2349 | ||
| 2350 | dump_trace(NULL, regs, NULL, 0, &backtrace_ops, entry); | 2350 | dump_trace(NULL, regs, NULL, regs->bp, &backtrace_ops, entry); |
| 2351 | } | 2351 | } |
| 2352 | 2352 | ||
| 2353 | /* | 2353 | /* |
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 98c2cdeb599e..c6ee241c8a98 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
| @@ -103,8 +103,8 @@ void show_regs_common(void) | |||
| 103 | if (!product) | 103 | if (!product) |
| 104 | product = ""; | 104 | product = ""; |
| 105 | 105 | ||
| 106 | printk("\n"); | 106 | printk(KERN_CONT "\n"); |
| 107 | printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s/%s\n", | 107 | printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s %s/%s\n", |
| 108 | current->pid, current->comm, print_tainted(), | 108 | current->pid, current->comm, print_tainted(), |
| 109 | init_utsname()->release, | 109 | init_utsname()->release, |
| 110 | (int)strcspn(init_utsname()->version, " "), | 110 | (int)strcspn(init_utsname()->version, " "), |
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index 9c517b5858f0..37ad1e046aae 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c | |||
| @@ -139,16 +139,16 @@ void __show_regs(struct pt_regs *regs, int all) | |||
| 139 | 139 | ||
| 140 | show_regs_common(); | 140 | show_regs_common(); |
| 141 | 141 | ||
| 142 | printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", | 142 | printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", |
| 143 | (u16)regs->cs, regs->ip, regs->flags, | 143 | (u16)regs->cs, regs->ip, regs->flags, |
| 144 | smp_processor_id()); | 144 | smp_processor_id()); |
| 145 | print_symbol("EIP is at %s\n", regs->ip); | 145 | print_symbol("EIP is at %s\n", regs->ip); |
| 146 | 146 | ||
| 147 | printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", | 147 | printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", |
| 148 | regs->ax, regs->bx, regs->cx, regs->dx); | 148 | regs->ax, regs->bx, regs->cx, regs->dx); |
| 149 | printk("ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n", | 149 | printk(KERN_DEFAULT "ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n", |
| 150 | regs->si, regs->di, regs->bp, sp); | 150 | regs->si, regs->di, regs->bp, sp); |
| 151 | printk(" DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n", | 151 | printk(KERN_DEFAULT " DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n", |
| 152 | (u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss); | 152 | (u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss); |
| 153 | 153 | ||
| 154 | if (!all) | 154 | if (!all) |
| @@ -158,19 +158,19 @@ void __show_regs(struct pt_regs *regs, int all) | |||
| 158 | cr2 = read_cr2(); | 158 | cr2 = read_cr2(); |
| 159 | cr3 = read_cr3(); | 159 | cr3 = read_cr3(); |
| 160 | cr4 = read_cr4_safe(); | 160 | cr4 = read_cr4_safe(); |
| 161 | printk("CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", | 161 | printk(KERN_DEFAULT "CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", |
| 162 | cr0, cr2, cr3, cr4); | 162 | cr0, cr2, cr3, cr4); |
| 163 | 163 | ||
| 164 | get_debugreg(d0, 0); | 164 | get_debugreg(d0, 0); |
| 165 | get_debugreg(d1, 1); | 165 | get_debugreg(d1, 1); |
| 166 | get_debugreg(d2, 2); | 166 | get_debugreg(d2, 2); |
| 167 | get_debugreg(d3, 3); | 167 | get_debugreg(d3, 3); |
| 168 | printk("DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n", | 168 | printk(KERN_DEFAULT "DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n", |
| 169 | d0, d1, d2, d3); | 169 | d0, d1, d2, d3); |
| 170 | 170 | ||
| 171 | get_debugreg(d6, 6); | 171 | get_debugreg(d6, 6); |
| 172 | get_debugreg(d7, 7); | 172 | get_debugreg(d7, 7); |
| 173 | printk("DR6: %08lx DR7: %08lx\n", | 173 | printk(KERN_DEFAULT "DR6: %08lx DR7: %08lx\n", |
| 174 | d6, d7); | 174 | d6, d7); |
| 175 | } | 175 | } |
| 176 | 176 | ||
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 52fbd0c60198..f9e033150cdf 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
| @@ -161,19 +161,19 @@ void __show_regs(struct pt_regs *regs, int all) | |||
| 161 | unsigned int ds, cs, es; | 161 | unsigned int ds, cs, es; |
| 162 | 162 | ||
| 163 | show_regs_common(); | 163 | show_regs_common(); |
| 164 | printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); | 164 | printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); |
| 165 | printk_address(regs->ip, 1); | 165 | printk_address(regs->ip, 1); |
| 166 | printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, | 166 | printk(KERN_DEFAULT "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, |
| 167 | regs->sp, regs->flags); | 167 | regs->sp, regs->flags); |
| 168 | printk(KERN_INFO "RAX: %016lx RBX: %016lx RCX: %016lx\n", | 168 | printk(KERN_DEFAULT "RAX: %016lx RBX: %016lx RCX: %016lx\n", |
| 169 | regs->ax, regs->bx, regs->cx); | 169 | regs->ax, regs->bx, regs->cx); |
| 170 | printk(KERN_INFO "RDX: %016lx RSI: %016lx RDI: %016lx\n", | 170 | printk(KERN_DEFAULT "RDX: %016lx RSI: %016lx RDI: %016lx\n", |
| 171 | regs->dx, regs->si, regs->di); | 171 | regs->dx, regs->si, regs->di); |
| 172 | printk(KERN_INFO "RBP: %016lx R08: %016lx R09: %016lx\n", | 172 | printk(KERN_DEFAULT "RBP: %016lx R08: %016lx R09: %016lx\n", |
| 173 | regs->bp, regs->r8, regs->r9); | 173 | regs->bp, regs->r8, regs->r9); |
| 174 | printk(KERN_INFO "R10: %016lx R11: %016lx R12: %016lx\n", | 174 | printk(KERN_DEFAULT "R10: %016lx R11: %016lx R12: %016lx\n", |
| 175 | regs->r10, regs->r11, regs->r12); | 175 | regs->r10, regs->r11, regs->r12); |
| 176 | printk(KERN_INFO "R13: %016lx R14: %016lx R15: %016lx\n", | 176 | printk(KERN_DEFAULT "R13: %016lx R14: %016lx R15: %016lx\n", |
| 177 | regs->r13, regs->r14, regs->r15); | 177 | regs->r13, regs->r14, regs->r15); |
| 178 | 178 | ||
| 179 | asm("movl %%ds,%0" : "=r" (ds)); | 179 | asm("movl %%ds,%0" : "=r" (ds)); |
| @@ -194,21 +194,21 @@ void __show_regs(struct pt_regs *regs, int all) | |||
| 194 | cr3 = read_cr3(); | 194 | cr3 = read_cr3(); |
| 195 | cr4 = read_cr4(); | 195 | cr4 = read_cr4(); |
| 196 | 196 | ||
| 197 | printk(KERN_INFO "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", | 197 | printk(KERN_DEFAULT "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", |
| 198 | fs, fsindex, gs, gsindex, shadowgs); | 198 | fs, fsindex, gs, gsindex, shadowgs); |
| 199 | printk(KERN_INFO "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, | 199 | printk(KERN_DEFAULT "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, |
| 200 | es, cr0); | 200 | es, cr0); |
| 201 | printk(KERN_INFO "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, | 201 | printk(KERN_DEFAULT "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, |
| 202 | cr4); | 202 | cr4); |
| 203 | 203 | ||
| 204 | get_debugreg(d0, 0); | 204 | get_debugreg(d0, 0); |
| 205 | get_debugreg(d1, 1); | 205 | get_debugreg(d1, 1); |
| 206 | get_debugreg(d2, 2); | 206 | get_debugreg(d2, 2); |
| 207 | printk(KERN_INFO "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); | 207 | printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); |
| 208 | get_debugreg(d3, 3); | 208 | get_debugreg(d3, 3); |
| 209 | get_debugreg(d6, 6); | 209 | get_debugreg(d6, 6); |
| 210 | get_debugreg(d7, 7); | 210 | get_debugreg(d7, 7); |
| 211 | printk(KERN_INFO "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); | 211 | printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); |
| 212 | } | 212 | } |
| 213 | 213 | ||
| 214 | void show_regs(struct pt_regs *regs) | 214 | void show_regs(struct pt_regs *regs) |
