diff --git a/src/fal/fal_vlan.c b/src/fal/fal_vlan.c
index 6ff2184..e745fd6 100755
--- a/src/fal/fal_vlan.c
+++ b/src/fal/fal_vlan.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -334,7 +334,7 @@
                         fal_pbmp_t member, fal_pbmp_t u_member)
 {
     sw_error_t rv;
-    fal_vlan_t vlan_entry;
+    fal_vlan_t vlan_entry = {0};
     hsl_api_t *p_api;
     hsl_dev_t *p_dev = NULL;
 
diff --git a/src/hsl/dess/dess_fdb.c b/src/hsl/dess/dess_fdb.c
index 5316904..d88e3e0 100755
--- a/src/hsl/dess/dess_fdb.c
+++ b/src/hsl/dess/dess_fdb.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -29,7 +29,7 @@
 _dess_wl_feature_check(a_uint32_t dev_id)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
 
     HSL_REG_FIELD_GET(rv, dev_id, MASK_CTL, 0, DEVICE_ID,
                       (a_uint8_t *) (&entry), sizeof (a_uint32_t));
@@ -367,7 +367,7 @@
     a_uint32_t busy = 1;
     a_uint32_t full_vio;
     a_uint32_t i = 2000;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
     a_uint32_t hwop = op;
 
     while (busy && --i)
@@ -784,7 +784,7 @@
 _dess_fdb_port_learn_get(a_uint32_t dev_id, fal_port_t port_id,
                          a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -854,7 +854,7 @@
 static sw_error_t
 _dess_fdb_vlan_ivl_svl_get(a_uint32_t dev_id, fal_fdb_smode* smode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -872,7 +872,7 @@
 static sw_error_t
 _dess_fdb_age_ctrl_get(a_uint32_t dev_id, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -915,7 +915,7 @@
 static sw_error_t
 _dess_fdb_age_time_get(a_uint32_t dev_id, a_uint32_t * time)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -933,7 +933,7 @@
                                a_bool_t enable, a_uint32_t cnt)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -975,7 +975,7 @@
                                a_bool_t * enable, a_uint32_t * cnt)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1072,7 +1072,7 @@
 _dess_fdb_learn_limit_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t cnt)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GLOBAL_LEARN_LIMIT_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1109,7 +1109,7 @@
                           a_uint32_t * cnt)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GLOBAL_LEARN_LIMIT_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1556,7 +1556,7 @@
 _dess_fdb_port_learn_static_get(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/dess/dess_mirror.c b/src/hsl/dess/dess_mirror.c
index ef5a1ed..9edb85f 100755
--- a/src/hsl/dess/dess_mirror.c
+++ b/src/hsl/dess/dess_mirror.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -47,7 +47,7 @@
 _dess_mirr_analysis_port_get(a_uint32_t dev_id, fal_port_t * port_id)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -94,7 +94,7 @@
 _dess_mirr_port_in_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -154,7 +154,7 @@
 _dess_mirr_port_eg_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/dess/dess_misc.c b/src/hsl/dess/dess_misc.c
index 76b2916..614a8cd 100755
--- a/src/hsl/dess/dess_misc.c
+++ b/src/hsl/dess/dess_misc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -40,7 +40,7 @@
                              a_bool_t enable, a_uint32_t item)
 {
     sw_error_t rv;
-    a_uint32_t reg, val;
+    a_uint32_t reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -94,7 +94,7 @@
                              a_bool_t * enable, a_uint32_t item)
 {
     sw_error_t rv;
-    a_uint32_t reg, val;
+    a_uint32_t reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -154,7 +154,7 @@
 static sw_error_t
 _dess_frame_max_size_get(a_uint32_t dev_id, a_uint32_t * size)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -172,7 +172,7 @@
                              a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -208,7 +208,7 @@
                              a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -239,7 +239,7 @@
                              a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -275,7 +275,7 @@
                              a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -305,7 +305,7 @@
 _dess_port_bc_filter_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -341,7 +341,7 @@
                          a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -397,7 +397,7 @@
 _dess_cpu_port_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -447,7 +447,7 @@
 _dess_cpu_vid_en_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -497,7 +497,7 @@
 _dess_rtd_pppoe_en_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -548,7 +548,7 @@
 _dess_pppoe_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -598,7 +598,7 @@
 _dess_pppoe_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -652,7 +652,7 @@
 _dess_arp_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -706,7 +706,7 @@
 _dess_eapol_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -733,7 +733,7 @@
 _dess_pppoe_session_add(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id, entry_idx = DESS_MAX_PPPOE_SESSION;
+    a_uint32_t reg = 0, i, valid, id, entry_idx = DESS_MAX_PPPOE_SESSION;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -809,7 +809,7 @@
 _dess_pppoe_session_del(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id;
+    a_uint32_t reg = 0, i, valid, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -845,7 +845,7 @@
 _dess_pppoe_session_get(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id, vrf_id;
+    a_uint32_t reg = 0, i, valid, id, vrf_id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -916,7 +916,7 @@
                            a_uint32_t * id)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp;
 
     if (DESS_MAX_PPPOE_SESSION <= index)
     {
@@ -967,7 +967,7 @@
 static sw_error_t
 _dess_ripv1_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -997,7 +997,7 @@
 _dess_intr_mask_set(a_uint32_t dev_id, a_uint32_t intr_mask)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_MASK1, 0, (a_uint8_t *) (&reg),
                       sizeof (a_uint32_t));
@@ -1021,7 +1021,7 @@
 _dess_intr_mask_get(a_uint32_t dev_id, a_uint32_t * intr_mask)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     *intr_mask = 0;
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_MASK1, 0, (a_uint8_t *) (&reg),
@@ -1040,7 +1040,7 @@
 _dess_intr_status_get(a_uint32_t dev_id, a_uint32_t * intr_status)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     *intr_status = 0;
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_STATUS1, 0, (a_uint8_t *) (&reg),
@@ -1155,7 +1155,7 @@
 _dess_intr_mask_mac_linkchg_set(a_uint32_t dev_id, a_uint32_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1192,7 +1192,7 @@
 _dess_intr_mask_mac_linkchg_get(a_uint32_t dev_id, a_uint32_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1223,7 +1223,7 @@
 _dess_intr_status_mac_linkchg_get(a_uint32_t dev_id, fal_pbmp_t* port_bitmap)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1320,7 +1320,7 @@
 _dess_lldp_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1370,7 +1370,7 @@
 _dess_frame_crc_reserve_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/dess/dess_portvlan.c b/src/hsl/dess/dess_portvlan.c
old mode 100644
new mode 100755
index 06a4a06..bc27a38
--- a/src/hsl/dess/dess_portvlan.c
+++ b/src/hsl/dess/dess_portvlan.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -33,7 +33,7 @@
 _dess_port_route_defv_set(a_uint32_t dev_id, fal_port_t port_id)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data = 0, reg = 0;
 
     HSL_REG_FIELD_GET(rv, dev_id, PORT_VLAN1, port_id,
                       COREP_EN, (a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -143,7 +143,7 @@
                           fal_pt_1q_egmode_t port_egvlanmode)
 {
     sw_error_t rv;
-    a_uint32_t data, regval[FAL_EG_MODE_BUTT] = { 0, 1, 2, 3, 3 };
+    a_uint32_t data = 0, regval[FAL_EG_MODE_BUTT] = { 0, 1, 2, 3, 3 };
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -358,7 +358,7 @@
                                  a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -420,7 +420,7 @@
                               a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -463,7 +463,7 @@
 _dess_nestvlan_tpid_get(a_uint32_t dev_id, a_uint32_t * tpid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -567,7 +567,7 @@
 _dess_port_tls_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -630,7 +630,7 @@
                                a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -690,7 +690,7 @@
                             a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -740,7 +740,7 @@
                             a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -761,7 +761,7 @@
                                 fal_vlan_propagation_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -807,7 +807,7 @@
                                 fal_vlan_propagation_mode_t * mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -847,7 +847,7 @@
                       fal_pbmp_t * pbmp, fal_vlan_trans_entry_t * entry)
 {
     sw_error_t rv;
-    a_uint32_t i, addr, dir, table[2];
+    a_uint32_t i, addr, dir, table[2] = {0};
 
     *pbmp = 0;
     aos_mem_zero(entry, sizeof (fal_vlan_trans_entry_t));
@@ -1347,7 +1347,7 @@
                             a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1390,7 +1390,7 @@
 _dess_netisolate_get(a_uint32_t dev_id, a_uint32_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1420,7 +1420,7 @@
 _dess_eg_trans_filter_bypass_en_get(a_uint32_t dev_id, a_uint32_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/dess/dess_sec.c b/src/hsl/dess/dess_sec.c
index 5c532ba..61c7588 100755
--- a/src/hsl/dess/dess_sec.c
+++ b/src/hsl/dess/dess_sec.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -35,7 +35,7 @@
     sw_error_t rv;
     fal_fwd_cmd_t cmd;
     a_bool_t enable;
-    a_uint32_t addr, offset, len, reg, val;
+    a_uint32_t addr, offset, len, reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -383,7 +383,7 @@
 _dess_sec_norm_item_get(a_uint32_t dev_id, fal_norm_item_t item, void *value)
 {
     sw_error_t rv;
-    a_uint32_t addr, offset, len, reg, val;
+    a_uint32_t addr, offset, len, reg = 0, val;
     a_uint32_t status_chk = 0, val_chk = 0, scmd_chk = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/dess/dess_stp.c b/src/hsl/dess/dess_stp.c
index ac52c06..6537241 100755
--- a/src/hsl/dess/dess_stp.c
+++ b/src/hsl/dess/dess_stp.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -80,7 +80,7 @@
                          fal_port_t port_id, fal_stp_state_t * state)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/dess/dess_trunk.c b/src/hsl/dess/dess_trunk.c
index b2b480e..e57eb0d 100755
--- a/src/hsl/dess/dess_trunk.c
+++ b/src/hsl/dess/dess_trunk.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -46,7 +46,7 @@
                       a_bool_t enable, fal_pbmp_t member)
 {
     sw_error_t rv;
-    a_uint32_t i, reg, cnt = 0, data0 = 0, data1 = 0;
+    a_uint32_t i, reg = 0, cnt = 0, data0 = 0, data1 = 0;
 
     if (DESS_MAX_TRUNK_ID < trunk_id)
     {
@@ -122,7 +122,7 @@
                       a_bool_t * enable, fal_pbmp_t * member)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     if (DESS_MAX_TRUNK_ID < trunk_id)
     {
@@ -187,7 +187,7 @@
 _dess_trunk_hash_mode_get(a_uint32_t dev_id, a_uint32_t * hash_mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, data = 0;
+    a_uint32_t reg = 0, data = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, TRUNK_HASH_MODE, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
diff --git a/src/hsl/isis/isis_fdb.c b/src/hsl/isis/isis_fdb.c
index ae8dfec..da21f22 100755
--- a/src/hsl/isis/isis_fdb.c
+++ b/src/hsl/isis/isis_fdb.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -45,7 +45,7 @@
 _isis_wl_feature_check(a_uint32_t dev_id)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
 
     HSL_REG_FIELD_GET(rv, dev_id, MASK_CTL, 0, DEVICE_ID,
                       (a_uint8_t *) (&entry), sizeof (a_uint32_t));
@@ -362,7 +362,7 @@
     a_uint32_t busy = 1;
     a_uint32_t full_vio;
     a_uint32_t i = 2000;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
     a_uint32_t hwop = op;
 
     while (busy && --i)
@@ -781,7 +781,7 @@
 _isis_fdb_port_learn_get(a_uint32_t dev_id, fal_port_t port_id,
                          a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -836,7 +836,7 @@
 static sw_error_t
 _isis_fdb_age_ctrl_get(a_uint32_t dev_id, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -879,7 +879,7 @@
 static sw_error_t
 _isis_fdb_age_time_get(a_uint32_t dev_id, a_uint32_t * time)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -897,7 +897,7 @@
                                a_bool_t enable, a_uint32_t cnt)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -939,7 +939,7 @@
                                a_bool_t * enable, a_uint32_t * cnt)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1036,7 +1036,7 @@
 _isis_fdb_learn_limit_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t cnt)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GLOBAL_LEARN_LIMIT_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1073,7 +1073,7 @@
                           a_uint32_t * cnt)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GLOBAL_LEARN_LIMIT_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1520,7 +1520,7 @@
 _isis_fdb_port_learn_static_get(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/isis/isis_mirror.c b/src/hsl/isis/isis_mirror.c
index 59b218f..16a7d21 100755
--- a/src/hsl/isis/isis_mirror.c
+++ b/src/hsl/isis/isis_mirror.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -46,7 +46,7 @@
 _isis_mirr_analysis_port_get(a_uint32_t dev_id, fal_port_t * port_id)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -93,7 +93,7 @@
 _isis_mirr_port_in_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -153,7 +153,7 @@
 _isis_mirr_port_eg_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isis/isis_misc.c b/src/hsl/isis/isis_misc.c
index 5a539e9..1f19793 100755
--- a/src/hsl/isis/isis_misc.c
+++ b/src/hsl/isis/isis_misc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2015-2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -40,7 +40,7 @@
                              a_bool_t enable, a_uint32_t item)
 {
     sw_error_t rv;
-    a_uint32_t reg, val;
+    a_uint32_t reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -94,7 +94,7 @@
                              a_bool_t * enable, a_uint32_t item)
 {
     sw_error_t rv;
-    a_uint32_t reg, val;
+    a_uint32_t reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -154,7 +154,7 @@
 static sw_error_t
 _isis_frame_max_size_get(a_uint32_t dev_id, a_uint32_t * size)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -172,7 +172,7 @@
                              a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -208,7 +208,7 @@
                              a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -239,7 +239,7 @@
                              a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -275,7 +275,7 @@
                              a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -305,7 +305,7 @@
 _isis_port_bc_filter_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -341,7 +341,7 @@
                          a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -397,7 +397,7 @@
 _isis_cpu_port_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -447,7 +447,7 @@
 _isis_pppoe_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -497,7 +497,7 @@
 _isis_pppoe_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -551,7 +551,7 @@
 _isis_arp_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -605,7 +605,7 @@
 _isis_eapol_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -632,7 +632,7 @@
 _isis_pppoe_session_add(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id, entry_idx = ISIS_MAX_PPPOE_SESSION;
+    a_uint32_t reg = 0, i, valid, id, entry_idx = ISIS_MAX_PPPOE_SESSION;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -700,7 +700,7 @@
 _isis_pppoe_session_del(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id;
+    a_uint32_t reg = 0, i, valid, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -735,7 +735,7 @@
 _isis_pppoe_session_get(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id;
+    a_uint32_t reg = 0, i, valid, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -804,7 +804,7 @@
                            a_uint32_t * id)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp;
 
     if (ISIS_MAX_PPPOE_SESSION <= index)
     {
@@ -855,7 +855,7 @@
 static sw_error_t
 _isis_ripv1_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -885,7 +885,7 @@
 _isis_intr_mask_set(a_uint32_t dev_id, a_uint32_t intr_mask)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_MASK1, 0, (a_uint8_t *) (&reg),
                       sizeof (a_uint32_t));
@@ -909,7 +909,7 @@
 _isis_intr_mask_get(a_uint32_t dev_id, a_uint32_t * intr_mask)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     *intr_mask = 0;
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_MASK1, 0, (a_uint8_t *) (&reg),
@@ -928,7 +928,7 @@
 _isis_intr_status_get(a_uint32_t dev_id, a_uint32_t * intr_status)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     *intr_status = 0;
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_STATUS1, 0, (a_uint8_t *) (&reg),
diff --git a/src/hsl/isis/isis_portvlan.c b/src/hsl/isis/isis_portvlan.c
index b97323a..596bc46 100755
--- a/src/hsl/isis/isis_portvlan.c
+++ b/src/hsl/isis/isis_portvlan.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -33,7 +33,7 @@
 _isis_port_route_defv_set(a_uint32_t dev_id, fal_port_t port_id)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data = 0, reg = 0;
 
     HSL_REG_FIELD_GET(rv, dev_id, PORT_VLAN1, port_id,
                       COREP_EN, (a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -143,7 +143,7 @@
                           fal_pt_1q_egmode_t port_egvlanmode)
 {
     sw_error_t rv;
-    a_uint32_t data, regval[FAL_EG_MODE_BUTT] = { 0, 1, 2, 3, 3 };
+    a_uint32_t data = 0, regval[FAL_EG_MODE_BUTT] = { 0, 1, 2, 3, 3 };
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -358,7 +358,7 @@
                                  a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -420,7 +420,7 @@
                               a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -463,7 +463,7 @@
 _isis_nestvlan_tpid_get(a_uint32_t dev_id, a_uint32_t * tpid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -567,7 +567,7 @@
 _isis_port_tls_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -630,7 +630,7 @@
                                a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -690,7 +690,7 @@
                             a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -740,7 +740,7 @@
                             a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -761,7 +761,7 @@
                                 fal_vlan_propagation_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -807,7 +807,7 @@
                                 fal_vlan_propagation_mode_t * mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -847,7 +847,7 @@
                       fal_pbmp_t * pbmp, fal_vlan_trans_entry_t * entry)
 {
     sw_error_t rv;
-    a_uint32_t i, addr, dir, table[2];
+    a_uint32_t i, addr, dir, table[2] = {0};
 
     *pbmp = 0;
     aos_mem_zero(entry, sizeof (fal_vlan_trans_entry_t));
@@ -1347,7 +1347,7 @@
                             a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isis/isis_sec.c b/src/hsl/isis/isis_sec.c
index b6ee68e..912d09c 100755
--- a/src/hsl/isis/isis_sec.c
+++ b/src/hsl/isis/isis_sec.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -35,7 +35,7 @@
     sw_error_t rv;
     fal_fwd_cmd_t cmd;
     a_bool_t enable;
-    a_uint32_t addr, offset, len, reg, val;
+    a_uint32_t addr, offset, len, reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -383,7 +383,7 @@
 _isis_sec_norm_item_get(a_uint32_t dev_id, fal_norm_item_t item, void *value)
 {
     sw_error_t rv;
-    a_uint32_t addr, offset, len, reg, val;
+    a_uint32_t addr, offset, len, reg = 0, val;
     a_uint32_t status_chk = 0, val_chk = 0, scmd_chk = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/isis/isis_stp.c b/src/hsl/isis/isis_stp.c
index f4ab8ec..3d0581b 100755
--- a/src/hsl/isis/isis_stp.c
+++ b/src/hsl/isis/isis_stp.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -80,7 +80,7 @@
                          fal_port_t port_id, fal_stp_state_t * state)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isis/isis_trunk.c b/src/hsl/isis/isis_trunk.c
index ac0e983..d0767d2 100755
--- a/src/hsl/isis/isis_trunk.c
+++ b/src/hsl/isis/isis_trunk.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -60,7 +60,7 @@
                       a_bool_t enable, fal_pbmp_t member)
 {
     sw_error_t rv;
-    a_uint32_t i, reg, cnt = 0, data0 = 0, data1 = 0;
+    a_uint32_t i, reg = 0, cnt = 0, data0 = 0, data1 = 0;
 
     if (ISIS_MAX_TRUNK_ID < trunk_id)
     {
@@ -136,7 +136,7 @@
                       a_bool_t * enable, fal_pbmp_t * member)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     if (ISIS_MAX_TRUNK_ID < trunk_id)
     {
@@ -231,7 +231,7 @@
 _isis_trunk_hash_mode_get(a_uint32_t dev_id, a_uint32_t * hash_mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, data = 0;
+    a_uint32_t reg = 0, data = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, TRUNK_HASH_MODE, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
diff --git a/src/hsl/isisc/isisc_fdb.c b/src/hsl/isisc/isisc_fdb.c
index 82155da..6a47bee 100755
--- a/src/hsl/isisc/isisc_fdb.c
+++ b/src/hsl/isisc/isisc_fdb.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -30,7 +30,7 @@
 _isisc_wl_feature_check(a_uint32_t dev_id)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
 
     HSL_REG_FIELD_GET(rv, dev_id, MASK_CTL, 0, DEVICE_ID,
                       (a_uint8_t *) (&entry), sizeof (a_uint32_t));
@@ -350,7 +350,7 @@
     a_uint32_t busy = 1;
     a_uint32_t full_vio;
     a_uint32_t i = 2000;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
     a_uint32_t hwop = op;
 
     while (busy && --i)
@@ -769,7 +769,7 @@
 _isisc_fdb_port_learn_get(a_uint32_t dev_id, fal_port_t port_id,
                          a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -839,7 +839,7 @@
 static sw_error_t
 _isisc_fdb_vlan_ivl_svl_get(a_uint32_t dev_id, fal_fdb_smode* smode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -857,7 +857,7 @@
 static sw_error_t
 _isisc_fdb_age_ctrl_get(a_uint32_t dev_id, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -900,7 +900,7 @@
 static sw_error_t
 _isisc_fdb_age_time_get(a_uint32_t dev_id, a_uint32_t * time)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -918,7 +918,7 @@
                                a_bool_t enable, a_uint32_t cnt)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -960,7 +960,7 @@
                                a_bool_t * enable, a_uint32_t * cnt)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1057,7 +1057,7 @@
 _isisc_fdb_learn_limit_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t cnt)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GLOBAL_LEARN_LIMIT_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1094,7 +1094,7 @@
                           a_uint32_t * cnt)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GLOBAL_LEARN_LIMIT_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1541,7 +1541,7 @@
 _isisc_fdb_port_learn_static_get(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/isisc/isisc_mirror.c b/src/hsl/isisc/isisc_mirror.c
index 34dfcca..12441dc 100755
--- a/src/hsl/isisc/isisc_mirror.c
+++ b/src/hsl/isisc/isisc_mirror.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -46,7 +46,7 @@
 _isisc_mirr_analysis_port_get(a_uint32_t dev_id, fal_port_t * port_id)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -93,7 +93,7 @@
 _isisc_mirr_port_in_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -153,7 +153,7 @@
 _isisc_mirr_port_eg_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isisc/isisc_misc.c b/src/hsl/isisc/isisc_misc.c
index 7b5c0fd..a33189b 100755
--- a/src/hsl/isisc/isisc_misc.c
+++ b/src/hsl/isisc/isisc_misc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2015-2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -41,7 +41,7 @@
                              a_bool_t enable, a_uint32_t item)
 {
     sw_error_t rv;
-    a_uint32_t reg, val;
+    a_uint32_t reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -96,7 +96,7 @@
                              a_bool_t * enable, a_uint32_t item)
 {
     sw_error_t rv;
-    a_uint32_t reg, val;
+    a_uint32_t reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -157,7 +157,7 @@
 static sw_error_t
 _isisc_frame_max_size_get(a_uint32_t dev_id, a_uint32_t * size)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -175,7 +175,7 @@
                              a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -212,7 +212,7 @@
                              a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -248,7 +248,7 @@
 _isisc_port_bc_filter_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -311,7 +311,7 @@
                          a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -342,7 +342,7 @@
                              a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -373,7 +373,7 @@
                              a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -403,7 +403,7 @@
 _isisc_cpu_port_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -453,7 +453,7 @@
 _isisc_cpu_vid_en_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -503,7 +503,7 @@
 _isisc_rtd_pppoe_en_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -554,7 +554,7 @@
 _isisc_pppoe_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -604,7 +604,7 @@
 _isisc_pppoe_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -658,7 +658,7 @@
 _isisc_arp_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -714,7 +714,7 @@
 _isisc_eapol_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -741,7 +741,7 @@
 _isisc_pppoe_session_add(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id, entry_idx = ISISC_MAX_PPPOE_SESSION;
+    a_uint32_t reg = 0, i, valid, id, entry_idx = ISISC_MAX_PPPOE_SESSION;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -811,7 +811,7 @@
 _isisc_pppoe_session_del(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id;
+    a_uint32_t reg = 0, i, valid, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -846,7 +846,7 @@
 _isisc_pppoe_session_get(a_uint32_t dev_id, fal_pppoe_session_t * session_tbl)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id;
+    a_uint32_t reg = 0, i, valid, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -915,7 +915,7 @@
                            a_uint32_t * id)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp;
 
     if (ISISC_MAX_PPPOE_SESSION <= index)
     {
@@ -966,7 +966,7 @@
 static sw_error_t
 _isisc_ripv1_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -996,7 +996,7 @@
 _isisc_intr_mask_set(a_uint32_t dev_id, a_uint32_t intr_mask)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_MASK1, 0, (a_uint8_t *) (&reg),
                       sizeof (a_uint32_t));
@@ -1020,7 +1020,7 @@
 _isisc_intr_mask_get(a_uint32_t dev_id, a_uint32_t * intr_mask)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     *intr_mask = 0;
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_MASK1, 0, (a_uint8_t *) (&reg),
@@ -1039,7 +1039,7 @@
 _isisc_intr_status_get(a_uint32_t dev_id, a_uint32_t * intr_status)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     *intr_status = 0;
     HSL_REG_ENTRY_GET(rv, dev_id, GBL_INT_STATUS1, 0, (a_uint8_t *) (&reg),
@@ -1150,7 +1150,7 @@
 _isisc_intr_mask_mac_linkchg_set(a_uint32_t dev_id, a_uint32_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1187,7 +1187,7 @@
 _isisc_intr_mask_mac_linkchg_get(a_uint32_t dev_id, a_uint32_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1218,7 +1218,7 @@
 _isisc_intr_status_mac_linkchg_get(a_uint32_t dev_id, fal_pbmp_t* port_bitmap)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isisc/isisc_portvlan.c b/src/hsl/isisc/isisc_portvlan.c
index 40259db..bac24ac 100755
--- a/src/hsl/isisc/isisc_portvlan.c
+++ b/src/hsl/isisc/isisc_portvlan.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -33,7 +33,7 @@
 _isisc_port_route_defv_set(a_uint32_t dev_id, fal_port_t port_id)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data = 0, reg = 0;
 
     HSL_REG_FIELD_GET(rv, dev_id, PORT_VLAN1, port_id,
                       COREP_EN, (a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -143,7 +143,7 @@
                           fal_pt_1q_egmode_t port_egvlanmode)
 {
     sw_error_t rv;
-    a_uint32_t data, regval[FAL_EG_MODE_BUTT] = { 0, 1, 2, 3, 3 };
+    a_uint32_t data = 0, regval[FAL_EG_MODE_BUTT] = { 0, 1, 2, 3, 3 };
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -358,7 +358,7 @@
                                  a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -420,7 +420,7 @@
                               a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -463,7 +463,7 @@
 _isisc_nestvlan_tpid_get(a_uint32_t dev_id, a_uint32_t * tpid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -568,7 +568,7 @@
 _isisc_port_tls_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -631,7 +631,7 @@
                                a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -691,7 +691,7 @@
                             a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -741,7 +741,7 @@
                             a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -762,7 +762,7 @@
                                 fal_vlan_propagation_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -857,7 +857,7 @@
                                 fal_vlan_propagation_mode_t * mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -897,7 +897,7 @@
                       fal_pbmp_t * pbmp, fal_vlan_trans_entry_t * entry)
 {
     sw_error_t rv;
-    a_uint32_t i, addr, dir, table[2];
+    a_uint32_t i, addr, dir, table[2] = {0};
 
     *pbmp = 0;
     aos_mem_zero(entry, sizeof (fal_vlan_trans_entry_t));
@@ -1350,7 +1350,7 @@
                             a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1393,7 +1393,7 @@
 _isisc_netisolate_get(a_uint32_t dev_id, a_uint32_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1423,7 +1423,7 @@
 _isisc_eg_trans_filter_bypass_en_get(a_uint32_t dev_id, a_uint32_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isisc/isisc_sec.c b/src/hsl/isisc/isisc_sec.c
index 5cba438..579868f 100755
--- a/src/hsl/isisc/isisc_sec.c
+++ b/src/hsl/isisc/isisc_sec.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -35,7 +35,7 @@
     sw_error_t rv;
     fal_fwd_cmd_t cmd;
     a_bool_t enable;
-    a_uint32_t addr, offset, len, reg, val;
+    a_uint32_t addr, offset, len, reg = 0, val;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -383,7 +383,7 @@
 _isisc_sec_norm_item_get(a_uint32_t dev_id, fal_norm_item_t item, void *value)
 {
     sw_error_t rv;
-    a_uint32_t addr, offset, len, reg, val;
+    a_uint32_t addr, offset, len, reg = 0, val;
     a_uint32_t status_chk = 0, val_chk = 0, scmd_chk = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/isisc/isisc_stp.c b/src/hsl/isisc/isisc_stp.c
index 4e3f8d7..dc17162 100755
--- a/src/hsl/isisc/isisc_stp.c
+++ b/src/hsl/isisc/isisc_stp.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -80,7 +80,7 @@
                          fal_port_t port_id, fal_stp_state_t * state)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isisc/isisc_trunk.c b/src/hsl/isisc/isisc_trunk.c
index 595bbf8..2ed7936 100755
--- a/src/hsl/isisc/isisc_trunk.c
+++ b/src/hsl/isisc/isisc_trunk.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -60,7 +60,7 @@
                       a_bool_t enable, fal_pbmp_t member)
 {
     sw_error_t rv;
-    a_uint32_t i, reg, cnt = 0, data0 = 0, data1 = 0;
+    a_uint32_t i, reg = 0, cnt = 0, data0 = 0, data1 = 0;
 
     if (ISISC_MAX_TRUNK_ID < trunk_id)
     {
@@ -136,7 +136,7 @@
                       a_bool_t * enable, fal_pbmp_t * member)
 {
     sw_error_t rv;
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
 
     if (ISISC_MAX_TRUNK_ID < trunk_id)
     {
@@ -231,7 +231,7 @@
 _isisc_trunk_hash_mode_get(a_uint32_t dev_id, a_uint32_t * hash_mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, data = 0;
+    a_uint32_t reg = 0, data = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, TRUNK_HASH_MODE, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
diff --git a/src/hsl/shiva/shiva_fdb.c b/src/hsl/shiva/shiva_fdb.c
index 2e044e3..5bc43b0 100755
--- a/src/hsl/shiva/shiva_fdb.c
+++ b/src/hsl/shiva/shiva_fdb.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -592,7 +592,7 @@
 _shiva_fdb_port_learn_get(a_uint32_t dev_id, fal_port_t port_id,
                           a_bool_t *enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -647,7 +647,7 @@
 static sw_error_t
 _shiva_fdb_age_ctrl_get(a_uint32_t dev_id, a_bool_t *enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -690,7 +690,7 @@
 static sw_error_t
 _shiva_fdb_age_time_get(a_uint32_t dev_id, a_uint32_t *time)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/shiva/shiva_mirror.c b/src/hsl/shiva/shiva_mirror.c
index b5074ad..07e05ec 100755
--- a/src/hsl/shiva/shiva_mirror.c
+++ b/src/hsl/shiva/shiva_mirror.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -46,7 +46,7 @@
 _shiva_mirr_analysis_port_get(a_uint32_t dev_id, fal_port_t * port_id)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -94,7 +94,7 @@
                         a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -154,7 +154,7 @@
 _shiva_mirr_port_eg_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/shiva/shiva_misc.c b/src/hsl/shiva/shiva_misc.c
index d13e0fe..f5793a2 100755
--- a/src/hsl/shiva/shiva_misc.c
+++ b/src/hsl/shiva/shiva_misc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -55,7 +55,7 @@
 static sw_error_t
 _shiva_arp_status_get(a_uint32_t dev_id, a_bool_t *enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -98,7 +98,7 @@
 static sw_error_t
 _shiva_frame_max_size_get(a_uint32_t dev_id, a_uint32_t *size)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -116,7 +116,7 @@
                            fal_fwd_cmd_t cmd)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -158,7 +158,7 @@
                            fal_fwd_cmd_t * action)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
     a_uint32_t port_lock_en, port_drop_en;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -199,7 +199,7 @@
                               a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -235,7 +235,7 @@
                               a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -266,7 +266,7 @@
                               a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -302,7 +302,7 @@
                               a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -333,7 +333,7 @@
                           a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -369,7 +369,7 @@
                           a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -425,7 +425,7 @@
 _shiva_cpu_port_status_get(a_uint32_t dev_id, a_bool_t *enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -475,7 +475,7 @@
 _shiva_pppoe_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -525,7 +525,7 @@
 _shiva_pppoe_status_get(a_uint32_t dev_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -580,7 +580,7 @@
 _shiva_port_dhcp_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -635,7 +635,7 @@
 _shiva_arp_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -685,7 +685,7 @@
 _shiva_eapol_cmd_get(a_uint32_t dev_id, fal_fwd_cmd_t * cmd)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -712,7 +712,7 @@
 _shiva_pppoe_session_add(a_uint32_t dev_id, a_uint32_t session_id, a_bool_t strip_hdr)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, cmd, id, entry_idx = 0xffff;
+    a_uint32_t reg = 0, i, valid, cmd, id, entry_idx = 0xffff;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -770,7 +770,7 @@
 _shiva_pppoe_session_del(a_uint32_t dev_id, a_uint32_t session_id)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, id;
+    a_uint32_t reg = 0, i, valid, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -806,7 +806,7 @@
 _shiva_pppoe_session_get(a_uint32_t dev_id, a_uint32_t session_id, a_bool_t * strip_hdr)
 {
     sw_error_t rv;
-    a_uint32_t reg, i, valid, cmd, id;
+    a_uint32_t reg = 0, i, valid, cmd, id;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -876,7 +876,7 @@
 static sw_error_t
 _shiva_eapol_status_get(a_uint32_t dev_id, a_uint32_t port_id, a_bool_t *enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -936,7 +936,7 @@
 static sw_error_t
 _shiva_ripv1_status_get(a_uint32_t dev_id, a_bool_t *enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -1015,7 +1015,7 @@
 _shiva_loop_check_status_get(a_uint32_t dev_id, fal_loop_check_time_t * time, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1049,7 +1049,7 @@
 _shiva_loop_check_info_get(a_uint32_t dev_id, a_uint32_t * old_port_id, a_uint32_t * new_port_id)
 {
     sw_error_t rv;
-    a_uint32_t reg, data;
+    a_uint32_t reg = 0, data;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/shiva/shiva_portvlan.c b/src/hsl/shiva/shiva_portvlan.c
index 387461c..b9292b0 100755
--- a/src/hsl/shiva/shiva_portvlan.c
+++ b/src/hsl/shiva/shiva_portvlan.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -297,7 +297,7 @@
 _shiva_port_force_default_vid_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -359,7 +359,7 @@
 _shiva_port_force_portvlan_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -404,7 +404,7 @@
 _shiva_nestvlan_tpid_get(a_uint32_t dev_id, a_uint32_t *tpid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -515,7 +515,7 @@
                     a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -579,7 +579,7 @@
                                 a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -637,7 +637,7 @@
                              a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -686,7 +686,7 @@
                              a_uint32_t * vid)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -708,7 +708,7 @@
                                  fal_vlan_propagation_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -754,7 +754,7 @@
                                  fal_vlan_propagation_mode_t * mode)
 {
     sw_error_t rv;
-    a_uint32_t reg, p, c;
+    a_uint32_t reg = 0, p, c;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -793,7 +793,7 @@
 _shiva_vlan_trans_read(a_uint32_t dev_id, a_uint32_t entry_idx, fal_pbmp_t * pbmp, fal_vlan_trans_entry_t *entry)
 {
     sw_error_t rv;
-    a_uint32_t i, addr, table[2];
+    a_uint32_t i, addr, table[2] = {0};
 
     addr = SHIVA_VLAN_TRANS_ADDR + (entry_idx << 3);
 
@@ -999,7 +999,7 @@
     a_uint32_t index;
     sw_error_t rv;
     fal_vlan_trans_entry_t entry_t;
-    fal_pbmp_t             pbmp_t;
+    fal_pbmp_t pbmp_t = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/shiva/shiva_stp.c b/src/hsl/shiva/shiva_stp.c
index 0317e5a..62c588c 100755
--- a/src/hsl/shiva/shiva_stp.c
+++ b/src/hsl/shiva/shiva_stp.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
  * above copyright notice and this permission notice appear in all copies.
@@ -80,7 +80,7 @@
                           fal_port_t port_id, fal_stp_state_t * state)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
