diff options
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/kernel/head_44x.S | 15 | ||||
-rw-r--r-- | arch/ppc/kernel/setup.c | 4 | ||||
-rw-r--r-- | arch/ppc/lib/string.S | 7 | ||||
-rw-r--r-- | arch/ppc/mm/init.c | 1 | ||||
-rw-r--r-- | arch/ppc/syslib/ipic.c | 2 | ||||
-rw-r--r-- | arch/ppc/syslib/mpc83xx_devices.c | 1 | ||||
-rw-r--r-- | arch/ppc/syslib/mpc85xx_devices.c | 1 | ||||
-rw-r--r-- | arch/ppc/syslib/open_pic.c | 2 |
8 files changed, 21 insertions, 12 deletions
diff --git a/arch/ppc/kernel/head_44x.S b/arch/ppc/kernel/head_44x.S index 9b6a8e513657..6c7ae6052464 100644 --- a/arch/ppc/kernel/head_44x.S +++ b/arch/ppc/kernel/head_44x.S | |||
@@ -330,8 +330,9 @@ interrupt_base: | |||
330 | /* If we are faulting a kernel address, we have to use the | 330 | /* If we are faulting a kernel address, we have to use the |
331 | * kernel page tables. | 331 | * kernel page tables. |
332 | */ | 332 | */ |
333 | andis. r11, r10, 0x8000 | 333 | lis r11, TASK_SIZE@h |
334 | beq 3f | 334 | cmplw r10, r11 |
335 | blt+ 3f | ||
335 | lis r11, swapper_pg_dir@h | 336 | lis r11, swapper_pg_dir@h |
336 | ori r11, r11, swapper_pg_dir@l | 337 | ori r11, r11, swapper_pg_dir@l |
337 | 338 | ||
@@ -464,8 +465,9 @@ interrupt_base: | |||
464 | /* If we are faulting a kernel address, we have to use the | 465 | /* If we are faulting a kernel address, we have to use the |
465 | * kernel page tables. | 466 | * kernel page tables. |
466 | */ | 467 | */ |
467 | andis. r11, r10, 0x8000 | 468 | lis r11, TASK_SIZE@h |
468 | beq 3f | 469 | cmplw r10, r11 |
470 | blt+ 3f | ||
469 | lis r11, swapper_pg_dir@h | 471 | lis r11, swapper_pg_dir@h |
470 | ori r11, r11, swapper_pg_dir@l | 472 | ori r11, r11, swapper_pg_dir@l |
471 | 473 | ||
@@ -533,8 +535,9 @@ interrupt_base: | |||
533 | /* If we are faulting a kernel address, we have to use the | 535 | /* If we are faulting a kernel address, we have to use the |
534 | * kernel page tables. | 536 | * kernel page tables. |
535 | */ | 537 | */ |
536 | andis. r11, r10, 0x8000 | 538 | lis r11, TASK_SIZE@h |
537 | beq 3f | 539 | cmplw r10, r11 |
540 | blt+ 3f | ||
538 | lis r11, swapper_pg_dir@h | 541 | lis r11, swapper_pg_dir@h |
539 | ori r11, r11, swapper_pg_dir@l | 542 | ori r11, r11, swapper_pg_dir@l |
540 | 543 | ||
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c index 5dfb42f1a152..5c20266e3b1f 100644 --- a/arch/ppc/kernel/setup.c +++ b/arch/ppc/kernel/setup.c | |||
@@ -499,7 +499,7 @@ static int __init set_preferred_console(void) | |||
499 | { | 499 | { |
500 | struct device_node *prom_stdout; | 500 | struct device_node *prom_stdout; |
501 | char *name; | 501 | char *name; |
502 | int offset; | 502 | int offset = 0; |
503 | 503 | ||
504 | if (of_stdout_device == NULL) | 504 | if (of_stdout_device == NULL) |
505 | return -ENODEV; | 505 | return -ENODEV; |
@@ -753,6 +753,8 @@ void __init setup_arch(char **cmdline_p) | |||
753 | strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE); | 753 | strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE); |
754 | *cmdline_p = cmd_line; | 754 | *cmdline_p = cmd_line; |
755 | 755 | ||
756 | parse_early_param(); | ||
757 | |||
756 | /* set up the bootmem stuff with available memory */ | 758 | /* set up the bootmem stuff with available memory */ |
757 | do_init_bootmem(); | 759 | do_init_bootmem(); |
758 | if ( ppc_md.progress ) ppc_md.progress("setup_arch: bootmem", 0x3eab); | 760 | if ( ppc_md.progress ) ppc_md.progress("setup_arch: bootmem", 0x3eab); |
diff --git a/arch/ppc/lib/string.S b/arch/ppc/lib/string.S index 8d08a2eb225e..36c9b97fd92a 100644 --- a/arch/ppc/lib/string.S +++ b/arch/ppc/lib/string.S | |||
@@ -446,6 +446,7 @@ _GLOBAL(__copy_tofrom_user) | |||
446 | #ifdef CONFIG_8xx | 446 | #ifdef CONFIG_8xx |
447 | /* Don't use prefetch on 8xx */ | 447 | /* Don't use prefetch on 8xx */ |
448 | mtctr r0 | 448 | mtctr r0 |
449 | li r0,0 | ||
449 | 53: COPY_16_BYTES_WITHEX(0) | 450 | 53: COPY_16_BYTES_WITHEX(0) |
450 | bdnz 53b | 451 | bdnz 53b |
451 | 452 | ||
@@ -564,7 +565,9 @@ _GLOBAL(__copy_tofrom_user) | |||
564 | /* or write fault in cacheline loop */ | 565 | /* or write fault in cacheline loop */ |
565 | 105: li r9,1 | 566 | 105: li r9,1 |
566 | 92: li r3,LG_CACHELINE_BYTES | 567 | 92: li r3,LG_CACHELINE_BYTES |
567 | b 99f | 568 | mfctr r8 |
569 | add r0,r0,r8 | ||
570 | b 106f | ||
568 | /* read fault in final word loop */ | 571 | /* read fault in final word loop */ |
569 | 108: li r9,0 | 572 | 108: li r9,0 |
570 | b 93f | 573 | b 93f |
@@ -585,7 +588,7 @@ _GLOBAL(__copy_tofrom_user) | |||
585 | * r5 + (ctr << r3), and r9 is 0 for read or 1 for write. | 588 | * r5 + (ctr << r3), and r9 is 0 for read or 1 for write. |
586 | */ | 589 | */ |
587 | 99: mfctr r0 | 590 | 99: mfctr r0 |
588 | slw r3,r0,r3 | 591 | 106: slw r3,r0,r3 |
589 | add. r3,r3,r5 | 592 | add. r3,r3,r5 |
590 | beq 120f /* shouldn't happen */ | 593 | beq 120f /* shouldn't happen */ |
591 | cmpwi 0,r9,0 | 594 | cmpwi 0,r9,0 |
diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c index be02a7fec2b7..363c157e3617 100644 --- a/arch/ppc/mm/init.c +++ b/arch/ppc/mm/init.c | |||
@@ -179,6 +179,7 @@ void free_initmem(void) | |||
179 | if (!have_of) | 179 | if (!have_of) |
180 | FREESEC(openfirmware); | 180 | FREESEC(openfirmware); |
181 | printk("\n"); | 181 | printk("\n"); |
182 | ppc_md.progress = NULL; | ||
182 | #undef FREESEC | 183 | #undef FREESEC |
183 | } | 184 | } |
184 | 185 | ||
diff --git a/arch/ppc/syslib/ipic.c b/arch/ppc/syslib/ipic.c index acb2cde3171f..580ed658e872 100644 --- a/arch/ppc/syslib/ipic.c +++ b/arch/ppc/syslib/ipic.c | |||
@@ -479,7 +479,7 @@ void __init ipic_init(phys_addr_t phys_addr, | |||
479 | temp = 0; | 479 | temp = 0; |
480 | for (i = 0 ; i < senses_count ; i++) { | 480 | for (i = 0 ; i < senses_count ; i++) { |
481 | if ((senses[i] & IRQ_SENSE_MASK) == IRQ_SENSE_EDGE) { | 481 | if ((senses[i] & IRQ_SENSE_MASK) == IRQ_SENSE_EDGE) { |
482 | temp |= 1 << (16 - i); | 482 | temp |= 1 << (15 - i); |
483 | if (i != 0) | 483 | if (i != 0) |
484 | irq_desc[i + irq_offset + MPC83xx_IRQ_EXT1 - 1].status = 0; | 484 | irq_desc[i + irq_offset + MPC83xx_IRQ_EXT1 - 1].status = 0; |
485 | else | 485 | else |
diff --git a/arch/ppc/syslib/mpc83xx_devices.c b/arch/ppc/syslib/mpc83xx_devices.c index 5c1a919eaabf..75c8e9834ae7 100644 --- a/arch/ppc/syslib/mpc83xx_devices.c +++ b/arch/ppc/syslib/mpc83xx_devices.c | |||
@@ -61,6 +61,7 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
61 | .iotype = UPIO_MEM, | 61 | .iotype = UPIO_MEM, |
62 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, | 62 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, |
63 | }, | 63 | }, |
64 | { }, | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | struct platform_device ppc_sys_platform_devices[] = { | 67 | struct platform_device ppc_sys_platform_devices[] = { |
diff --git a/arch/ppc/syslib/mpc85xx_devices.c b/arch/ppc/syslib/mpc85xx_devices.c index a231795ee26f..1e658ef57e75 100644 --- a/arch/ppc/syslib/mpc85xx_devices.c +++ b/arch/ppc/syslib/mpc85xx_devices.c | |||
@@ -61,6 +61,7 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
61 | .iotype = UPIO_MEM, | 61 | .iotype = UPIO_MEM, |
62 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ, | 62 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ, |
63 | }, | 63 | }, |
64 | { }, | ||
64 | }; | 65 | }; |
65 | 66 | ||
66 | struct platform_device ppc_sys_platform_devices[] = { | 67 | struct platform_device ppc_sys_platform_devices[] = { |
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c index 7619e16fccae..9d4ed68b5804 100644 --- a/arch/ppc/syslib/open_pic.c +++ b/arch/ppc/syslib/open_pic.c | |||
@@ -557,12 +557,10 @@ static void __init openpic_initipi(u_int ipi, u_int pri, u_int vec) | |||
557 | */ | 557 | */ |
558 | void openpic_cause_IPI(u_int ipi, cpumask_t cpumask) | 558 | void openpic_cause_IPI(u_int ipi, cpumask_t cpumask) |
559 | { | 559 | { |
560 | cpumask_t phys; | ||
561 | DECL_THIS_CPU; | 560 | DECL_THIS_CPU; |
562 | 561 | ||
563 | CHECK_THIS_CPU; | 562 | CHECK_THIS_CPU; |
564 | check_arg_ipi(ipi); | 563 | check_arg_ipi(ipi); |
565 | phys = physmask(cpumask); | ||
566 | openpic_write(&OpenPIC->THIS_CPU.IPI_Dispatch(ipi), | 564 | openpic_write(&OpenPIC->THIS_CPU.IPI_Dispatch(ipi), |
567 | cpus_addr(physmask(cpumask))[0]); | 565 | cpus_addr(physmask(cpumask))[0]); |
568 | } | 566 | } |