diff options
author | Sneh Shah <snehshah@codeaurora.org> | 2019-04-02 14:34:33 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-11-05 17:05:17 -0800 |
commit | 71df524a4630e9c57c7417ab58b887c5407de4be (patch) | |
tree | 14635f4cb4700192a8d8eed3c3db2770359fc7c2 /drivers | |
parent | 567126240bfd45e2420babfb7a2b23f615d74793 (diff) | |
download | data-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.c | 4 | ||||
-rw-r--r-- | drivers/emac-dwc-eqos/DWC_ETH_QOS_poll_support.c | 5 |
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) |