summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorSneh Shah <snehshah@codeaurora.org>2019-04-02 14:34:33 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2019-11-05 17:05:17 -0800
commit71df524a4630e9c57c7417ab58b887c5407de4be (patch)
tree14635f4cb4700192a8d8eed3c3db2770359fc7c2 /drivers
parent567126240bfd45e2420babfb7a2b23f615d74793 (diff)
downloaddata-kernel-71df524a4630e9c57c7417ab58b887c5407de4be.tar.gz
data-kernel : EMAC: Fixing KW errors
- Checking for null pointer dereference Change-Id: I163fa32cedbad9f9a6ab19e8371b2a043d7a8884 Signed-off-by: sneh shah <snehshah@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/emac-dwc-eqos/DWC_ETH_QOS_desc.c4
-rw-r--r--drivers/emac-dwc-eqos/DWC_ETH_QOS_poll_support.c5
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/emac-dwc-eqos/DWC_ETH_QOS_desc.c b/drivers/emac-dwc-eqos/DWC_ETH_QOS_desc.c
index ac56b19..ab9b06f 100644
--- a/drivers/emac-dwc-eqos/DWC_ETH_QOS_desc.c
+++ b/drivers/emac-dwc-eqos/DWC_ETH_QOS_desc.c
@@ -1440,7 +1440,7 @@ static int DWC_ETH_QOS_map_page_buffs(struct DWC_ETH_QOS_prv_data *pdata,
DBGPR("-->DWC_ETH_QOS_map_page_buffs\n");
if (size > DWC_ETH_QOS_MAX_DATA_PER_TX_BUF) {
- if (!prev_buffer->dma2) {
+ if (prev_buffer && !prev_buffer->dma2) {
DBGPR("prev_buffer->dma2 is empty\n");
/* fill the first buffer pointer in pre_buffer->dma2 */
prev_buffer->dma2 =
@@ -1505,7 +1505,7 @@ static int DWC_ETH_QOS_map_page_buffs(struct DWC_ETH_QOS_prv_data *pdata,
buffer->buf2_mapped_as_page = Y_TRUE;
}
} else {
- if (!prev_buffer->dma2) {
+ if (prev_buffer && !prev_buffer->dma2) {
DBGPR("prev_buffer->dma2 is empty\n");
/* fill the first buffer pointer in pre_buffer->dma2 */
prev_buffer->dma2 = dma_map_page(GET_MEM_PDEV_DEV,
diff --git a/drivers/emac-dwc-eqos/DWC_ETH_QOS_poll_support.c b/drivers/emac-dwc-eqos/DWC_ETH_QOS_poll_support.c
index 5962c15..1e2c998 100644
--- a/drivers/emac-dwc-eqos/DWC_ETH_QOS_poll_support.c
+++ b/drivers/emac-dwc-eqos/DWC_ETH_QOS_poll_support.c
@@ -36,7 +36,7 @@ static ssize_t pps_fops_read(struct file *filp, char __user *buf,
unsigned int len = 0, buf_len = 5000;
char* temp_buf;
- ssize_t ret_cnt;
+ ssize_t ret_cnt = 0;
struct pps_info *info;
info = filp->private_data;
@@ -54,7 +54,8 @@ static ssize_t pps_fops_read(struct file *filp, char __user *buf,
ret_cnt = simple_read_from_buffer(buf, count, f_pos, temp_buf, len);
kfree(temp_buf);
- EMACERR("poll pps2intr info=%d sent by kernel\n", gDWC_ETH_QOS_prv_data->avb_class_a_intr_cnt);
+ if (gDWC_ETH_QOS_prv_data)
+ EMACERR("poll pps2intr info=%d sent by kernel\n", gDWC_ETH_QOS_prv_data->avb_class_a_intr_cnt);
} else if (info->channel_no == AVB_CLASS_B_CHANNEL_NUM ) {
temp_buf = kzalloc(buf_len, GFP_KERNEL);
if (!temp_buf)