summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkash Patel <c_akashp@qca.qualcomm.com>2014-01-24 12:18:44 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-28 00:00:37 -0800
commit00e580ea4fceec28f8a0096ea09ef1c3bcb821fe (patch)
tree4304ad611ac2d22f613eb0b6375cf7e42b4e2f9d
parent1b2966b5c8ddca0e362e8068e8c0fa89cfaeec5e (diff)
cld: pktlog: Fix static source analysis errors
Fix static source analysis errors in packet log module Change-Id: I85d2dfa2fe14143b9aa524e49b6c567e815a5281 CRs-Fixed: 605460
-rw-r--r--CORE/UTILS/PKTLOG/linux_ac.c57
-rw-r--r--CORE/UTILS/PKTLOG/pktlog_ac.c45
-rw-r--r--CORE/UTILS/PKTLOG/pktlog_internal.c5
3 files changed, 86 insertions, 21 deletions
diff --git a/CORE/UTILS/PKTLOG/linux_ac.c b/CORE/UTILS/PKTLOG/linux_ac.c
index 7bd746d4f2f4..dc5927616125 100644
--- a/CORE/UTILS/PKTLOG/linux_ac.c
+++ b/CORE/UTILS/PKTLOG/linux_ac.c
@@ -105,7 +105,7 @@ void ol_pl_set_name(ol_softc_handle scn, net_device_handle dev)
void pktlog_disable_adapter_logging(struct ol_softc *scn)
{
struct ol_pktlog_dev_t *pl_dev = get_pl_handle(scn);
- pl_dev->pl_info->log_state = 0;
+ if (pl_dev) pl_dev->pl_info->log_state = 0;
}
int pktlog_alloc_buf(struct ol_softc *scn)
@@ -204,7 +204,21 @@ ATH_SYSCTL_DECL(ath_sysctl_pktlog_enable, ctl, write, filp, buffer, lenp,
struct ol_pktlog_dev_t *pl_dev;
scn = (ol_ath_generic_softc_handle) ctl->extra1;
+
+ if (!scn) {
+ printk("%s: Invalid scn context\n", __func__);
+ ASSERT(0);
+ return -EINVAL;
+ }
+
pl_dev = get_pl_handle((struct ol_softc *)scn);
+
+ if (!pl_dev) {
+ printk("%s: Invalid pktlog context\n", __func__);
+ ASSERT(0);
+ return -ENODEV;
+ }
+
ctl->data = &enable;
ctl->maxlen = sizeof(enable);
@@ -212,7 +226,7 @@ ATH_SYSCTL_DECL(ath_sysctl_pktlog_enable, ctl, write, filp, buffer, lenp,
ret = ATH_SYSCTL_PROC_DOINTVEC(ctl, write, filp, buffer,
lenp, ppos);
if (ret == 0)
- return pl_dev->pl_funcs->pktlog_enable(
+ ret = pl_dev->pl_funcs->pktlog_enable(
(struct ol_softc *)scn,
enable);
else
@@ -225,6 +239,10 @@ ATH_SYSCTL_DECL(ath_sysctl_pktlog_enable, ctl, write, filp, buffer, lenp,
printk(PKTLOG_TAG "%s:proc_dointvec failed\n",
__func__);
}
+
+ ctl->data = NULL;
+ ctl->maxlen = 0;
+
return ret;
}
@@ -243,7 +261,21 @@ ATH_SYSCTL_DECL(ath_sysctl_pktlog_size, ctl, write, filp, buffer, lenp,
struct ol_pktlog_dev_t *pl_dev;
scn = (ol_ath_generic_softc_handle) ctl->extra1;
+
+ if (!scn) {
+ printk("%s: Invalid scn context\n", __func__);
+ ASSERT(0);
+ return -EINVAL;
+ }
+
pl_dev = get_pl_handle((struct ol_softc *)scn);
+
+ if (!pl_dev) {
+ printk("%s: Invalid pktlog handle\n", __func__);
+ ASSERT(0);
+ return -ENODEV;
+ }
+
ctl->data = &size;
ctl->maxlen = sizeof(size);
@@ -251,7 +283,7 @@ ATH_SYSCTL_DECL(ath_sysctl_pktlog_size, ctl, write, filp, buffer, lenp,
ret = ATH_SYSCTL_PROC_DOINTVEC(ctl, write, filp, buffer,
lenp, ppos);
if (ret == 0)
- return pl_dev->pl_funcs->pktlog_setsize(
+ ret = pl_dev->pl_funcs->pktlog_setsize(
(struct ol_softc *)scn,
size);
} else {
@@ -259,6 +291,10 @@ ATH_SYSCTL_DECL(ath_sysctl_pktlog_size, ctl, write, filp, buffer, lenp,
ret = ATH_SYSCTL_PROC_DOINTVEC(ctl, write, filp, buffer,
lenp, ppos);
}
+
+ ctl->data = NULL;
+ ctl->maxlen = 0;
+
return ret;
}
@@ -474,6 +510,12 @@ static void pktlog_sysctl_unregister(struct ol_pktlog_dev_t *pl_dev)
{
struct ath_pktlog_info_lnx *pl_info_lnx;
+ if (!pl_dev) {
+ printk("%s: Invalid pktlog context\n", __func__);
+ ASSERT(0);
+ return;
+ }
+
pl_info_lnx = (pl_dev) ? PL_INFO_LNX(pl_dev->pl_info) :
PL_INFO_LNX(g_pktlog_info);
@@ -487,8 +529,15 @@ static void pktlog_detach(struct ol_softc *scn)
{
struct ol_pktlog_dev_t *pl_dev = (struct ol_pktlog_dev_t *)
get_pl_handle(scn);
- struct ath_pktlog_info *pl_info = pl_dev->pl_info;
+ struct ath_pktlog_info *pl_info;
+
+ if (!pl_dev) {
+ printk("%s: Invalid pktlog context\n", __func__);
+ ASSERT(0);
+ return;
+ }
+ pl_info = pl_dev->pl_info;
remove_proc_entry(WLANDEV_BASENAME, g_pktlog_pde);
pktlog_sysctl_unregister(pl_dev);
pktlog_cleanup(pl_info);
diff --git a/CORE/UTILS/PKTLOG/pktlog_ac.c b/CORE/UTILS/PKTLOG/pktlog_ac.c
index b4c43714ccfb..fd11a1044c68 100644
--- a/CORE/UTILS/PKTLOG/pktlog_ac.c
+++ b/CORE/UTILS/PKTLOG/pktlog_ac.c
@@ -46,8 +46,6 @@
#include "vos_api.h"
#include "wlan_qct_wda.h"
-static int g_pktlog_mode = PKTLOG_MODE_SYSTEM;
-
void pktlog_init(struct ol_softc *scn);
int pktlog_enable(struct ol_softc *scn, int32_t log_state);
int pktlog_setsize(struct ol_softc *scn, int32_t log_state);
@@ -327,34 +325,49 @@ pktlog_init(struct ol_softc *scn)
int
pktlog_enable(struct ol_softc *scn, int32_t log_state)
{
- struct ol_pktlog_dev_t *pl_dev = scn->pdev_txrx_handle->pl_dev;
- struct ath_pktlog_info *pl_info = pl_dev->pl_info;
- struct ol_txrx_pdev_t *txrx_pdev = scn->pdev_txrx_handle;
+ struct ol_pktlog_dev_t *pl_dev;
+ struct ath_pktlog_info *pl_info;
+ struct ol_txrx_pdev_t *txrx_pdev;
int error;
+ if (!scn) {
+ printk("%s: Invalid scn context\n", __func__);
+ ASSERT(0);
+ return -1;
+ }
+
+ txrx_pdev = scn->pdev_txrx_handle;
+ if (!txrx_pdev) {
+ printk("%s: Invalid txrx_pdev context\n", __func__);
+ ASSERT(0);
+ return -1;
+ }
+
+ pl_dev = scn->pdev_txrx_handle->pl_dev;
+ if (!pl_dev) {
+ printk("%s: Invalid pktlog context\n", __func__);
+ ASSERT(0);
+ return -1;
+ }
+
+ pl_info = pl_dev->pl_info;
pl_dev->sc_osdev = scn->sc_osdev;
if (!pl_info)
return 0;
if (log_state != 0 && !pl_dev->tgt_pktlog_enabled) {
- if (!scn) {
- if (g_pktlog_mode == PKTLOG_MODE_ADAPTER) {
- pktlog_disable_adapter_logging(scn);
- g_pktlog_mode = PKTLOG_MODE_SYSTEM;
- }
- } else {
- if (g_pktlog_mode == PKTLOG_MODE_SYSTEM)
- g_pktlog_mode = PKTLOG_MODE_ADAPTER;
- }
-
if (pl_info->buf == NULL) {
error = pktlog_alloc_buf(scn);
if (error != 0)
return error;
- ASSERT(pl_info->buf);
+ if (!pl_info->buf) {
+ printk("%s: pktlog buf alloc failed\n", __func__);
+ ASSERT(0);
+ return -1;
+ }
pl_info->buf->bufhdr.version = CUR_PKTLOG_VER;
pl_info->buf->bufhdr.magic_num = PKTLOG_MAGIC_NUM;
diff --git a/CORE/UTILS/PKTLOG/pktlog_internal.c b/CORE/UTILS/PKTLOG/pktlog_internal.c
index 0aeae952d700..e43f30f880cb 100644
--- a/CORE/UTILS/PKTLOG/pktlog_internal.c
+++ b/CORE/UTILS/PKTLOG/pktlog_internal.c
@@ -71,10 +71,11 @@ pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg)
printk("Invalid parg in %s\n", __func__);
return;
}
+
pl_info = plarg->pl_info;
- log_buf = pl_info->buf;
log_type = plarg->log_type;
log_size = plarg->log_size;
+ log_buf = pl_info->buf;
flags = plarg->flags;
if (!log_buf) {
@@ -329,6 +330,8 @@ process_tx_info(struct ol_txrx_pdev_t *txrx_pdev,
adf_nbuf_t netbuf;
u_int32_t len;
+ adf_os_mem_set(&pl_msdu_info, 0, sizeof(pl_msdu_info));
+
pl_msdu_info.num_msdu = *msdu_id_info;
pl_msdu_info.priv_size = sizeof(uint32_t) *
pl_msdu_info.num_msdu +