defendkey: change defendkey reserved memory process [1/1]
authorZhongfu Luo <zhongfu.luo@amlogic.com>
Fri, 28 Dec 2018 08:16:28 +0000 (16:16 +0800)
committerJianxin Pan <jianxin.pan@amlogic.com>
Fri, 28 Dec 2018 14:44:24 +0000 (06:44 -0800)
PD#SWPL-3706

Problem:
GXL: defenkey cause system crash

Solution:
1.change defendkey reserved memory process
2.limit reserved memory region

Verify:
GXL skt board verify pass

Change-Id: I23c6fe861803de96eccec9b643824eeae2c2e564
Signed-off-by: Zhongfu Luo <zhongfu.luo@amlogic.com>
drivers/amlogic/defendkey/defendkey.c

index 0a63c34..cb31ff9 100644 (file)
@@ -52,6 +52,7 @@ struct defendkey_mem defendkey_rmem;
 
 #define CMD_SECURE_CHECK _IO('d', 0x01)
 #define CMD_DECRYPT_DTB  _IO('d', 0x02)
+#define DEFENDKEY_LIMIT_ADDR   0x0F000000
 
 enum e_defendkey_type {
        e_upgrade_check = 0,
@@ -372,7 +373,6 @@ static struct class defendkey_class = {
 static int __init early_defendkey_para(char *buf)
 {
        int ret;
-       struct page *page = NULL;
 
        if (!buf)
                return -EINVAL;
@@ -384,9 +384,8 @@ static int __init early_defendkey_para(char *buf)
                return -EINVAL;
        }
 
-       page = pfn_to_page(defendkey_rmem.base >> PAGE_SHIFT);
-       if (PageHighMem(page)) {
-               pr_err("invalid boot args \"defendkey\"\n");
+       if (defendkey_rmem.base > DEFENDKEY_LIMIT_ADDR) {
+               pr_err("defendkey reserved memory base overflow!\n");
                return -EINVAL;
        }