forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/arch/arm/plat-orion/mpp.c
....@@ -28,10 +28,15 @@
2828 unsigned int mpp_max, void __iomem *dev_bus)
2929 {
3030 unsigned int mpp_nr_regs = (1 + mpp_max/8);
31
- u32 mpp_ctrl[mpp_nr_regs];
31
+ u32 mpp_ctrl[8];
3232 int i;
3333
3434 printk(KERN_DEBUG "initial MPP regs:");
35
+ if (mpp_nr_regs > ARRAY_SIZE(mpp_ctrl)) {
36
+ printk(KERN_ERR "orion_mpp_conf: invalid mpp_max\n");
37
+ return;
38
+ }
39
+
3540 for (i = 0; i < mpp_nr_regs; i++) {
3641 mpp_ctrl[i] = readl(mpp_ctrl_addr(i, dev_bus));
3742 printk(" %08x", mpp_ctrl[i]);