X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=arch%2Fs390%2Fkernel%2Fearly.c;h=1b3af7dab8161bf08ec6fd3d5110170b2c89f914;hb=5f3b28781cbc030351e2fa0712602afbea592aae;hp=e6289ee74ecd400bcfaf606d8f9585191225462f;hpb=4c75f7416f51b0c6855952467a5db04f9c598f09;p=linux-2.6 diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c index e6289ee74e..540a67f979 100644 --- a/arch/s390/kernel/early.c +++ b/arch/s390/kernel/early.c @@ -21,6 +21,7 @@ #include #include #include +#include "entry.h" /* * Create a Kernel NSS if the SAVESYS= parameter is defined @@ -88,13 +89,17 @@ static noinline __init void create_kernel_nss(void) __cpcmd(defsys_cmd, NULL, 0, &response); - if (response != 0) + if (response != 0) { + kernel_nss_name[0] = '\0'; return; + } __cpcmd(savesys_cmd, NULL, 0, &response); - if (response != strlen(savesys_cmd)) + if (response != strlen(savesys_cmd)) { + kernel_nss_name[0] = '\0'; return; + } ipl_flags = IPL_NSS_VALID; } @@ -200,11 +205,13 @@ static noinline __init void find_memory_chunks(unsigned long memsize) cc = __tprot(addr); while (cc == old_cc) { addr += CHUNK_INCR; - cc = __tprot(addr); + if (memsize && addr >= memsize) + break; #ifndef CONFIG_64BIT if (addr == ADDR2G) break; #endif + cc = __tprot(addr); } if (old_addr != addr && @@ -274,7 +281,7 @@ void __init startup_init(void) create_kernel_nss(); sort_main_extable(); setup_lowcore_early(); - sclp_readinfo_early(); + sclp_read_info_early(); sclp_facilities_detect(); memsize = sclp_memory_detect(); #ifndef CONFIG_64BIT