Skip to content

Commit cadaba8

Browse files
glevandgregkh
authored andcommitted
powerpc/ps3: Fix system hang with GCC 5 builds
commit 6dff5b67054e17c91bd630bcdda17cfca5aa4215 upstream. GCC 5 generates different code for this bootwrapper null check that causes the PS3 to hang very early in its bootup. This check is of limited value, so just get rid of it. Signed-off-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 8a2bcaa commit cadaba8

2 files changed

Lines changed: 1 addition & 12 deletions

File tree

arch/powerpc/boot/ps3-head.S

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,6 @@ __system_reset_overlay:
5757
bctr
5858

5959
1:
60-
/* Save the value at addr zero for a null pointer write check later. */
61-
62-
li r4, 0
63-
lwz r3, 0(r4)
64-
6560
/* Primary delays then goes to _zimage_start in wrapper. */
6661

6762
or 31, 31, 31 /* db16cyc */

arch/powerpc/boot/ps3.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,13 +119,12 @@ void ps3_copy_vectors(void)
119119
flush_cache((void *)0x100, 512);
120120
}
121121

122-
void platform_init(unsigned long null_check)
122+
void platform_init(void)
123123
{
124124
const u32 heapsize = 0x1000000 - (u32)_end; /* 16MiB */
125125
void *chosen;
126126
unsigned long ft_addr;
127127
u64 rm_size;
128-
unsigned long val;
129128

130129
console_ops.write = ps3_console_write;
131130
platform_ops.exit = ps3_exit;
@@ -153,11 +152,6 @@ void platform_init(unsigned long null_check)
153152

154153
printf(" flat tree at 0x%lx\n\r", ft_addr);
155154

156-
val = *(unsigned long *)0;
157-
158-
if (val != null_check)
159-
printf("null check failed: %lx != %lx\n\r", val, null_check);
160-
161155
((kernel_entry_t)0)(ft_addr, 0, NULL);
162156

163157
ps3_exit();

0 commit comments

Comments
 (0)