From: Mike Frysinger Date: Tue, 18 Nov 2008 09:48:21 +0000 (+0800) Subject: Blackfin arch: add BUG_ON() checks to make sure we dont overflow the cplb tables X-Git-Tag: v2.6.29-rc1~189^2~97 X-Git-Url: http://pilppa.org/gitweb/?a=commitdiff_plain;h=dce783c5e400d6a470c86ccb5a7fdeabf27afbf4;p=linux-2.6-omap-h63xx.git Blackfin arch: add BUG_ON() checks to make sure we dont overflow the cplb tables Signed-off-by: Mike Frysinger Signed-off-by: Bryan Wu --- diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c index afef5c740aa..e14c37e98ed 100644 --- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c +++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c @@ -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);