From df1d0cddf720ebc6a79c24f8536bd89a01afa0f9 Mon Sep 17 00:00:00 2001 From: Jiamin Ma Date: Thu, 29 Mar 2018 18:56:01 +0800 Subject: [PATCH] defect: driver defect cleanup PD#163273: driver defect cleanup 435 477 478 479 480 482 485 486 487 488 555 573 594 617 648 650 678 855 Change-Id: Ifb2d89576e4cbb77449732d79f688c970bb0dca1 Signed-off-by: Jiamin Ma --- drivers/amlogic/efuse/efuse64.c | 6 ++++-- drivers/amlogic/mailbox/meson_mhu.c | 2 -- drivers/amlogic/unifykey/storagekey.c | 4 ++-- drivers/amlogic/unifykey/unifykey.c | 11 ++++++----- include/linux/memory_hotplug.h | 2 ++ include/linux/vmstat.h | 2 ++ 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/drivers/amlogic/efuse/efuse64.c b/drivers/amlogic/efuse/efuse64.c index 71c6bbe..701f36f 100644 --- a/drivers/amlogic/efuse/efuse64.c +++ b/drivers/amlogic/efuse/efuse64.c @@ -318,7 +318,7 @@ ssize_t efuse_user_attr_store(char *name, const char *buf, size_t count) local_buf = kzalloc(sizeof(char)*(count), GFP_KERNEL); - memcpy(local_buf, buf, strlen(buf)); + memcpy(local_buf, buf, count); c = ":"; s = local_buf; @@ -569,7 +569,9 @@ int get_efusekey_info(struct device_node *np) pr_err("please config keyname item\n"); goto err; } - strcpy(efusekey_infos[index].keyname, uname); + strncpy(efusekey_infos[index].keyname, uname, + strlen(uname) > sizeof(efusekey_infos[index].keyname) ? + sizeof(efusekey_infos[index].keyname):strlen(uname)); ret = of_property_read_u32(np_key, "offset", &(efusekey_infos[index].offset)); if (ret) { diff --git a/drivers/amlogic/mailbox/meson_mhu.c b/drivers/amlogic/mailbox/meson_mhu.c index 8a7f72c..45f48e7 100644 --- a/drivers/amlogic/mailbox/meson_mhu.c +++ b/drivers/amlogic/mailbox/meson_mhu.c @@ -109,12 +109,10 @@ static irqreturn_t mbox_handler(int irq, void *p) void __iomem *payload = ctlr->payload_base; int idx = chan->index; struct mhu_data_buf *data; - unsigned int *pp; u32 status = readl(mbox_base + RX_STATUS(idx)); if (status && irq == chan->rx_irq) { data = chan->data; - pp = (unsigned int *)data->rx_buf; if (!data) return IRQ_NONE; /* spurious */ if (data->rx_buf) diff --git a/drivers/amlogic/unifykey/storagekey.c b/drivers/amlogic/unifykey/storagekey.c index 2c5a13f..831485f 100644 --- a/drivers/amlogic/unifykey/storagekey.c +++ b/drivers/amlogic/unifykey/storagekey.c @@ -115,7 +115,7 @@ EXPORT_SYMBOL(storage_ops_write); int32_t amlkey_init_gen(uint8_t *seed, uint32_t len, int encrypt_type) { int32_t ret = 0; - uint32_t actual_size; + uint32_t actual_size = 0; #ifndef OTHER_METHOD_CALL ret = store_operation_init(); @@ -180,7 +180,7 @@ _out: int32_t amlkey_init_m8b(uint8_t *seed, uint32_t len, int encrypt_type) { int32_t ret = 0; - uint32_t actual_size; + uint32_t actual_size = 0; #ifndef OTHER_METHOD_CALL ret = store_operation_init(); diff --git a/drivers/amlogic/unifykey/unifykey.c b/drivers/amlogic/unifykey/unifykey.c index 1c89086..0d0bd83 100644 --- a/drivers/amlogic/unifykey/unifykey.c +++ b/drivers/amlogic/unifykey/unifykey.c @@ -1023,9 +1023,10 @@ static ssize_t list_show(struct class *cla, /* show all the keys*/ for (index = 0; index < key_cnt; index++) { unifykey = unifykey_find_item_by_id(&(ukdev->uk_header), index); - n += sprintf(&buf[n], "%02d: %s, %s, %x\n", - index, unifykey->name, - keydev[unifykey->dev], unifykey->permit); + if (unifykey != NULL) + n += sprintf(&buf[n], "%02d: %s, %s, %x\n", + index, unifykey->name, + keydev[unifykey->dev], unifykey->permit); } buf[n] = 0; return n; @@ -1339,8 +1340,8 @@ static ssize_t write_store(struct class *cla, } _out: - if (!IS_ERR_OR_NULL(keydata)) - kfree(keydata); + kfree(keydata); + keydata = NULL; return count; } diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index 134a2f6..7714144 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h @@ -1,7 +1,9 @@ #ifndef __LINUX_MEMORY_HOTPLUG_H #define __LINUX_MEMORY_HOTPLUG_H +#ifndef CONFIG_AMLOGIC_MODIFY #include +#endif #include #include #include diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index dde2183..c9a3343 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -3,7 +3,9 @@ #include #include +#ifndef CONFIG_AMLOGIC_MODIFY #include +#endif #include #include #include -- 2.7.4