fs/reiserfs/journal.c: change return type of dirty_one_transaction
[linux/fpc-iii.git] / arch / s390 / kernel / early_nobss.c
blob52a3ef959341a0be9f3f8f414ccfd6882a4eef4c
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3 * Copyright IBM Corp. 2007, 2018
4 */
6 /*
7 * Early setup functions which may not rely on an initialized bss
8 * section. The last thing that is supposed to happen here is
9 * initialization of the bss section.
12 #include <linux/processor.h>
13 #include <linux/string.h>
14 #include <asm/sections.h>
15 #include <asm/lowcore.h>
16 #include <asm/timex.h>
17 #include <asm/kasan.h>
18 #include "entry.h"
20 static void __init reset_tod_clock(void)
22 u64 time;
24 if (store_tod_clock(&time) == 0)
25 return;
26 /* TOD clock not running. Set the clock to Unix Epoch. */
27 if (set_tod_clock(TOD_UNIX_EPOCH) != 0 || store_tod_clock(&time) != 0)
28 disabled_wait();
30 memset(tod_clock_base, 0, 16);
31 *(__u64 *) &tod_clock_base[1] = TOD_UNIX_EPOCH;
32 S390_lowcore.last_update_clock = TOD_UNIX_EPOCH;
35 static void __init clear_bss_section(void)
37 memset(__bss_start, 0, __bss_stop - __bss_start);
40 void __init startup_init_nobss(void)
42 reset_tod_clock();
43 clear_bss_section();
44 kasan_early_init();