summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-01-24 19:13:08 +0000
committerRalf Baechle <ralf@linux-mips.org>2007-01-24 19:23:22 +0000
commit9cfdf6f15a2a462b6b328b4c60b252cfc04ec03e (patch)
treed457763660f3a0d54df9eb72bf2c2a2e105c26e8
parent80aac59ed5b3e5ae2132bc620ff5607929c6a304 (diff)
downloadlinux-9cfdf6f15a2a462b6b328b4c60b252cfc04ec03e.tar.gz
linux-9cfdf6f15a2a462b6b328b4c60b252cfc04ec03e.tar.bz2
linux-9cfdf6f15a2a462b6b328b4c60b252cfc04ec03e.zip
[MIPS] VPE loader: Initialize lists before they're actually being used ...
kspd which due to makefile order happens to be initialized before the vpe loader causes references to vpecontrol lists before they're actually been initialized. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/kernel/vpe.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 666bef484dcb..458fccf87c54 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -139,13 +139,16 @@ struct tc {
struct list_head list;
};
-struct vpecontrol_ {
+struct {
/* Virtual processing elements */
struct list_head vpe_list;
/* Thread contexts */
struct list_head tc_list;
-} vpecontrol;
+} vpecontrol = {
+ .vpe_list = LIST_HEAD_INIT(vpecontrol.vpe_list),
+ .tc_list = LIST_HEAD_INIT(vpecontrol.tc_list)
+};
static void release_progmem(void *ptr);
/* static __attribute_used__ void dump_vpe(struct vpe * v); */
@@ -1388,8 +1391,6 @@ static int __init vpe_module_init(void)
/* dump_mtregs(); */
- INIT_LIST_HEAD(&vpecontrol.vpe_list);
- INIT_LIST_HEAD(&vpecontrol.tc_list);
val = read_c0_mvpconf0();
for (i = 0; i < ((val & MVPCONF0_PTC) + 1); i++) {