Blackfin arch: add BUG_ON() checks to make sure we dont overflow the cplb tables
authorMike Frysinger <vapier.adi@gmail.com>
Tue, 18 Nov 2008 09:48:21 +0000 (17:48 +0800)
committerBryan Wu <cooloney@kernel.org>
Tue, 18 Nov 2008 09:48:21 +0000 (17:48 +0800)
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
arch/blackfin/kernel/cplb-nompu/cplbinit.c

index afef5c740aa4c0ea2a3b54c9a0f92c330de62b96..e14c37e98ed5190ed3172f1203bf68a891a06da4 100644 (file)
@@ -420,8 +420,17 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
                }
        }
 
-       /* close tables */
+       /* make sure we locked the kernel start */
+       BUG_ON(cplb.init_i.pos < 2 + cplb_data[ZERO_P].valid);
+       BUG_ON(cplb.init_d.pos < 1 + cplb_data[ZERO_P].valid + cplb_data[L1D_MEM].valid);
+
+       /* make sure we didnt overflow the table */
+       BUG_ON(cplb.init_i.size <= cplb.init_i.pos);
+       BUG_ON(cplb.init_d.size <= cplb.init_d.pos);
+       BUG_ON(cplb.switch_i.size <= cplb.switch_i.pos);
+       BUG_ON(cplb.switch_d.size <= cplb.switch_d.pos);
 
+       /* close tables */
        close_cplbtab(&cplb.init_i);
        close_cplbtab(&cplb.init_d);