diff --git a/src/hsl/dess/dess_igmp.c b/src/hsl/dess/dess_igmp.c
index 8554d31..5ca8a6f 100755
--- a/src/hsl/dess/dess_igmp.c
+++ b/src/hsl/dess/dess_igmp.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 @@
                              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);
 
@@ -101,7 +101,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);
 
@@ -169,7 +169,7 @@
 _dess_igmp_mld_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);
 
@@ -211,7 +211,7 @@
 _dess_igmp_mld_rp_get(a_uint32_t dev_id, fal_pbmp_t * pts)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -253,7 +253,7 @@
 _dess_igmp_mld_entry_creat_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);
 
@@ -303,7 +303,7 @@
 _dess_igmp_mld_entry_static_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);
 
@@ -353,7 +353,7 @@
 _dess_igmp_mld_entry_leaky_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);
 
@@ -403,7 +403,7 @@
 _dess_igmp_mld_entry_v3_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);
 
@@ -428,7 +428,7 @@
                                a_uint32_t queue)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -461,7 +461,7 @@
                                a_uint32_t * queue)
 {
     sw_error_t rv;
-    a_uint32_t entry, data;
+    a_uint32_t entry = 0, data;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -490,7 +490,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);
 
@@ -532,7 +532,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);
 
diff --git a/src/hsl/dess/dess_interface_ctrl.c b/src/hsl/dess/dess_interface_ctrl.c
index baa322d..d9aac95 100755
--- a/src/hsl/dess/dess_interface_ctrl.c
+++ b/src/hsl/dess/dess_interface_ctrl.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,8 +35,8 @@
 static sw_error_t
 _dess_port_3az_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
-    sw_error_t rv;
-    a_uint32_t reg, field, offset, device_id, rev_id, reverse = 0;
+    sw_error_t rv = SW_OK;
+    a_uint32_t reg = 0, field, offset, device_id, rev_id, reverse = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, MASK_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -106,8 +106,8 @@
 static sw_error_t
 _dess_port_3az_status_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
-    sw_error_t rv;
-    a_uint32_t reg, field, offset, device_id, rev_id, reverse = 0;
+    sw_error_t rv = SW_OK;
+    a_uint32_t reg = 0, field, offset, device_id, rev_id, reverse = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, MASK_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -171,7 +171,7 @@
 _dess_interface_mac_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_config_t * config)
 {
 	sw_error_t rv = SW_OK;
-	a_uint32_t reg, field;
+	a_uint32_t reg = 0, field;
 
 	HSL_DEV_ID_CHECK(dev_id);
 
@@ -211,7 +211,7 @@
 _dess_interface_mac_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_config_t * config)
 {
 	sw_error_t rv = SW_OK;
-	a_uint32_t reg, field;
+	a_uint32_t reg = 0, field;
 
 	HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/dess/dess_leaky.c b/src/hsl/dess/dess_leaky.c
index 10e8d4c..6aef5d5 100755
--- a/src/hsl/dess/dess_leaky.c
+++ b/src/hsl/dess/dess_leaky.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.
@@ -55,7 +55,7 @@
 _dess_uc_leaky_mode_get(a_uint32_t dev_id,
                         fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -107,7 +107,7 @@
 _dess_mc_leaky_mode_get(a_uint32_t dev_id,
                         fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -164,7 +164,7 @@
 _dess_port_arp_leaky_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);
@@ -226,7 +226,7 @@
 _dess_port_uc_leaky_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);
@@ -288,7 +288,7 @@
 _dess_port_mc_leaky_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_led.c b/src/hsl/dess/dess_led.c
index 08f218f..6f2b2ac 100755
--- a/src/hsl/dess/dess_led.c
+++ b/src/hsl/dess/dess_led.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.
@@ -30,7 +30,7 @@
 _dess_led_ctrl_pattern_set(a_uint32_t dev_id, led_pattern_group_t group,
                            led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, mode;
+    a_uint32_t data = 0, reg = 0, mode;
     a_uint32_t addr;
     sw_error_t rv;
 
@@ -208,7 +208,7 @@
 _dess_led_ctrl_pattern_get(a_uint32_t dev_id, led_pattern_group_t group,
                            led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, tmp;
+    a_uint32_t data = 0, reg = 0, tmp;
     a_uint32_t addr;
     sw_error_t rv;
 
diff --git a/src/hsl/dess/dess_mib.c b/src/hsl/dess/dess_mib.c
index fb3412e..4cc6ed7 100755
--- a/src/hsl/dess/dess_mib.c
+++ b/src/hsl/dess/dess_mib.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.
@@ -76,7 +76,7 @@
 _dess_get_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -315,7 +315,7 @@
 _dess_get_rx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -443,7 +443,7 @@
 _dess_get_tx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -597,7 +597,7 @@
 _dess_mib_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);
 
@@ -649,7 +649,7 @@
 _dess_mib_cpukeep_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_port_ctrl.c b/src/hsl/dess/dess_port_ctrl.c
index 12ac9d8..6f35ccd 100755
--- a/src/hsl/dess/dess_port_ctrl.c
+++ b/src/hsl/dess/dess_port_ctrl.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.
@@ -478,7 +478,7 @@
 			 a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t val, force, reg, tmp;
+  a_uint32_t val, force, reg = 0, tmp;
 
   if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -526,7 +526,7 @@
 			 a_uint8_t on, a_uint8_t off)
 {
 	sw_error_t rv;
-	a_uint32_t reg;
+	a_uint32_t reg = 0;
 
 	reg = (on << 16) | off;
 	HSL_REG_ENTRY_SET (rv, dev_id, PORT_FLOC_CTRL_THRESH, port_id,
@@ -539,7 +539,7 @@
 			 a_bool_t * enable)
 {
   sw_error_t rv;
-  a_uint32_t rx, reg;
+  a_uint32_t rx, reg = 0;
 
   if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -569,7 +569,7 @@
 				   a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t reg, tmp;
+  a_uint32_t reg = 0, tmp;
 
   if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -777,7 +777,7 @@
 			   fal_port_header_mode_t mode)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -847,7 +847,7 @@
 			   fal_port_header_mode_t mode)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -883,7 +883,7 @@
 			   fal_port_header_mode_t * mode)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -915,7 +915,7 @@
 static sw_error_t
 _dess_header_type_set (a_uint32_t dev_id, a_bool_t enable, a_uint32_t type)
 {
-  a_uint32_t reg;
+  a_uint32_t reg = 0;
   sw_error_t rv;
 
   HSL_DEV_ID_CHECK (dev_id);
@@ -952,7 +952,7 @@
 _dess_header_type_get (a_uint32_t dev_id, a_bool_t * enable,
 		       a_uint32_t * type)
 {
-  a_uint32_t data, reg;
+  a_uint32_t data, reg = 0;
   sw_error_t rv;
 
   HSL_DEV_ID_CHECK (dev_id);
@@ -982,7 +982,7 @@
 			     a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t reg, force, val, tmp;
+  a_uint32_t reg, force, val = 0, tmp;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1040,7 +1040,7 @@
 			     a_bool_t * enable)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1070,7 +1070,7 @@
 			     a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t reg, force, val, tmp;
+  a_uint32_t reg = 0, force, val = 0, tmp = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1128,7 +1128,7 @@
 			     a_bool_t * enable)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1158,7 +1158,7 @@
 			    a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t val, reg, force, tmp;
+  a_uint32_t val = 0, reg = 0, force, tmp;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1246,7 +1246,7 @@
 			    a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t val, reg, force, tmp;
+  a_uint32_t val = 0, reg, force, tmp;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1334,7 +1334,7 @@
 			  a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t val, tmp;
+  a_uint32_t val = 0, tmp = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1370,7 +1370,7 @@
 			  a_bool_t * enable)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1400,7 +1400,7 @@
 			       a_bool_t enable)
 {
   sw_error_t rv;
-  a_uint32_t reg, tmp;
+  a_uint32_t reg = 0, tmp = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1446,7 +1446,7 @@
 			       a_bool_t * enable)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1562,7 +1562,7 @@
 			     a_bool_t enable)
 {
   sw_error_t rv = SW_OK;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1594,7 +1594,7 @@
 			     a_bool_t * enable)
 {
   sw_error_t rv;
-  a_uint32_t val;
+  a_uint32_t val = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
@@ -1625,7 +1625,7 @@
 				a_uint32_t queue_id, a_bool_t enable)
 {
   sw_error_t rv = SW_OK;
-  a_uint32_t val, offset = 0, field = 0;
+  a_uint32_t val = 0, offset = 0, field = 0;
 
   HSL_DEV_ID_CHECK (dev_id);
 
diff --git a/src/hsl/dess/dess_psgmii.c b/src/hsl/dess/dess_psgmii.c
index f5c3b60..aab36d2 100755
--- a/src/hsl/dess/dess_psgmii.c
+++ b/src/hsl/dess/dess_psgmii.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 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.
@@ -77,7 +77,7 @@
                    a_uint32_t bit_offset, a_uint32_t field_len,
                    const a_uint8_t value[], a_uint32_t value_len)
 {
-    a_uint32_t reg_val;
+    a_uint32_t reg_val = 0;
     a_uint32_t field_val = *((a_uint32_t *) value);
 
     if ((bit_offset >= 32 || (field_len > 32)) || (field_len == 0))
@@ -113,7 +113,7 @@
 dess_psgmii_set_lpi(a_uint32_t dev_id, a_uint32_t phy_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     if (phy_id == 0)
     {
@@ -165,7 +165,7 @@
 dess_psgmii_get_lpi(a_uint32_t dev_id, a_uint32_t phy_id, a_bool_t *enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     if (phy_id == 0)
     {
@@ -203,7 +203,7 @@
 								psgmii_interface_mac_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_MODE_CONTROL,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -311,7 +311,7 @@
 dess_psgmii_autoneg_done(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_1 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -335,7 +335,7 @@
 dess_psgmii_reset(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -360,7 +360,7 @@
 dess_psgmii_poweroff(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -385,7 +385,7 @@
 dess_psgmii_poweron(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -412,7 +412,7 @@
 dess_psgmii_get_link_status(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_5 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -436,7 +436,7 @@
                        a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -464,7 +464,7 @@
                        a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -500,7 +500,7 @@
 dess_psgmii_restart_autoneg(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -525,7 +525,7 @@
 dess_psgmii_enable_autoneg(a_uint32_t dev_id, a_uint32_t phy_id)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -552,7 +552,7 @@
                  fal_port_speed_t * speed)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -610,7 +610,7 @@
                  fal_port_speed_t speed)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_4 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -654,7 +654,7 @@
                   fal_port_duplex_t * duplex)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_5 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
@@ -684,7 +684,7 @@
                   fal_port_duplex_t duplex)
 {
     sw_error_t rv;
-    a_uint32_t data;
+    a_uint32_t data = 0;
 
     rv = dess_psgmii_reg_get(dev_id, PSGMIIPHY_CHANNEL_0_INPUT_OUTPUT_5 + phy_id * 0x18,
 						(a_uint8_t *) (&data), sizeof (a_uint32_t));
diff --git a/src/hsl/dess/dess_rate.c b/src/hsl/dess/dess_rate.c
index 588cab2..44cd36a 100755
--- a/src/hsl/dess/dess_rate.c
+++ b/src/hsl/dess/dess_rate.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.
@@ -408,7 +408,7 @@
                             fal_port_policer_t * policer)
 {
     sw_error_t rv;
-    a_uint32_t unit, ts, cir, eir, cbs, ebs, data[3];
+    a_uint32_t unit, ts, cir, eir, cbs, ebs, data[3] = {0};
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -587,7 +587,7 @@
                            a_bool_t * enable, fal_egress_shaper_t * shaper)
 {
     sw_error_t rv;
-    a_uint32_t data, cir, eir, cbs = 0, ebs = 0;
+    a_uint32_t data = 0, cir = 0, eir = 0, cbs = 0, ebs = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -868,7 +868,7 @@
                             fal_egress_shaper_t * shaper)
 {
     sw_error_t rv;
-    a_uint32_t data, cir, eir, cbs = 0, ebs = 0;
+    a_uint32_t data = 0, cir = 0, eir = 0, cbs = 0, ebs = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1180,7 +1180,7 @@
                            fal_acl_policer_t * policer)
 {
     sw_error_t rv;
-    a_uint32_t unit, ts, cir, eir, cbs, ebs, addr, data[2];
+    a_uint32_t unit, ts, cir, eir, cbs, ebs, addr, data[2] = {0};
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1318,7 +1318,7 @@
 _dess_rate_port_gol_flow_en_set(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t  enable)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -1357,7 +1357,7 @@
 _dess_rate_port_gol_flow_en_get(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t*  enable)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/isis/isis_igmp.c b/src/hsl/isis/isis_igmp.c
index 4c3cce2..300dd04 100755
--- a/src/hsl/isis/isis_igmp.c
+++ b/src/hsl/isis/isis_igmp.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.
@@ -44,7 +44,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);
 
@@ -98,7 +98,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);
 
@@ -166,7 +166,7 @@
 _isis_igmp_mld_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);
 
@@ -208,7 +208,7 @@
 _isis_igmp_mld_rp_get(a_uint32_t dev_id, fal_pbmp_t * pts)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -250,7 +250,7 @@
 _isis_igmp_mld_entry_creat_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);
 
@@ -300,7 +300,7 @@
 _isis_igmp_mld_entry_static_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);
 
@@ -350,7 +350,7 @@
 _isis_igmp_mld_entry_leaky_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);
 
@@ -400,7 +400,7 @@
 _isis_igmp_mld_entry_v3_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);
 
@@ -425,7 +425,7 @@
                                a_uint32_t queue)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -458,7 +458,7 @@
                                a_uint32_t * queue)
 {
     sw_error_t rv;
-    a_uint32_t entry, data;
+    a_uint32_t entry = 0, data;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -487,7 +487,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);
 
@@ -529,7 +529,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);
 
diff --git a/src/hsl/isis/isis_interface_ctrl.c b/src/hsl/isis/isis_interface_ctrl.c
index 1cee7a2..4118c72 100755
--- a/src/hsl/isis/isis_interface_ctrl.c
+++ b/src/hsl/isis/isis_interface_ctrl.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.
@@ -95,7 +95,7 @@
 _isis_port_3az_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field, offset, device_id, rev_id, reverse = 0;
+    a_uint32_t reg = 0, field, offset, device_id, rev_id, reverse = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, MASK_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -157,7 +157,7 @@
 _isis_port_3az_status_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field, offset, device_id, rev_id, reverse = 0;
+    a_uint32_t reg = 0, field, offset, device_id, rev_id, reverse = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, MASK_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -212,7 +212,7 @@
 _isis_port_rgmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_rgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -313,7 +313,7 @@
 _isis_port_rgmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_rgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -369,7 +369,7 @@
 _isis_port_gmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_gmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -461,7 +461,7 @@
 _isis_port_gmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_gmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -505,7 +505,7 @@
 _isis_port_mii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_mii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -605,7 +605,7 @@
 _isis_port_mii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_mii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -653,7 +653,7 @@
 _isis_port_sgmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_sgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -782,7 +782,7 @@
 _isis_port_sgmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_sgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -831,7 +831,7 @@
 _isis_port_fiber_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_fiber_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -970,7 +970,7 @@
 _isis_port_fiber_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_fiber_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -1006,7 +1006,7 @@
 _isis_port_default_mode_set(a_uint32_t dev_id, fal_port_t port_id)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISIS_MAC_0 == port_id)
     {
@@ -1112,7 +1112,7 @@
 _isis_interface_mac_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field, field2;
+    a_uint32_t reg = 0, field, field2;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1337,7 +1337,7 @@
 {
     sw_error_t rv;
     a_uint16_t data;
-    a_uint32_t reg, rgmii, gmii, mii;
+    a_uint32_t reg = 0, rgmii, gmii, mii;
     hsl_phy_ops_t *phy_drv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -1421,7 +1421,7 @@
 _isis_interface_mac_sgmii_get(a_uint32_t dev_id, a_uint32_t *value)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, SGMII_CTRL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -1466,7 +1466,7 @@
 _isis_interface_mac_pad_get(a_uint32_t dev_id,a_uint32_t port_num, a_uint32_t *value)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     switch (port_num)
     {
diff --git a/src/hsl/isis/isis_leaky.c b/src/hsl/isis/isis_leaky.c
index 021577b..0d720be 100755
--- a/src/hsl/isis/isis_leaky.c
+++ b/src/hsl/isis/isis_leaky.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 @@
 _isis_uc_leaky_mode_get(a_uint32_t dev_id,
                         fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -107,7 +107,7 @@
 _isis_mc_leaky_mode_get(a_uint32_t dev_id,
                         fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -164,7 +164,7 @@
 _isis_port_arp_leaky_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);
@@ -226,7 +226,7 @@
 _isis_port_uc_leaky_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);
@@ -288,7 +288,7 @@
 _isis_port_mc_leaky_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_led.c b/src/hsl/isis/isis_led.c
index fadccca..1f52c67 100755
--- a/src/hsl/isis/isis_led.c
+++ b/src/hsl/isis/isis_led.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 @@
 _isis_led_ctrl_pattern_set(a_uint32_t dev_id, led_pattern_group_t group,
                            led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, mode;
+    a_uint32_t data = 0, reg = 0, mode;
     a_uint32_t addr;
     sw_error_t rv;
 
@@ -208,7 +208,7 @@
 _isis_led_ctrl_pattern_get(a_uint32_t dev_id, led_pattern_group_t group,
                            led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, tmp;
+    a_uint32_t data = 0, reg = 0, tmp;
     a_uint32_t addr;
     sw_error_t rv;
 
diff --git a/src/hsl/isis/isis_mib.c b/src/hsl/isis/isis_mib.c
index d5abb0b..d2f9d3c 100755
--- a/src/hsl/isis/isis_mib.c
+++ b/src/hsl/isis/isis_mib.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.
@@ -28,7 +28,7 @@
 _isis_get_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -255,7 +255,7 @@
 _isis_get_rx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -377,7 +377,7 @@
 _isis_get_tx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -525,7 +525,7 @@
 _isis_mib_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);
 
diff --git a/src/hsl/isis/isis_port_ctrl.c b/src/hsl/isis/isis_port_ctrl.c
index 1823818..aa3b30c 100755
--- a/src/hsl/isis/isis_port_ctrl.c
+++ b/src/hsl/isis/isis_port_ctrl.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.
@@ -43,7 +43,7 @@
                       fal_port_duplex_t duplex)
 {
     sw_error_t rv;
-    a_uint32_t phy_id, reg_save, reg_val, force, tmp;
+    a_uint32_t phy_id, reg_save, reg_val = 0, force, tmp;
     hsl_phy_ops_t *phy_drv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -131,7 +131,7 @@
                       fal_port_duplex_t * pduplex)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
     HSL_DEV_ID_CHECK(dev_id);
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
@@ -158,7 +158,7 @@
                      fal_port_speed_t speed)
 {
     sw_error_t rv;
-    a_uint32_t phy_id, reg_save, reg_val, force, tmp;
+    a_uint32_t phy_id, reg_save, reg_val = 0, force, tmp;
     hsl_phy_ops_t *phy_drv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -256,7 +256,7 @@
                      fal_port_speed_t * pspeed)
 {
     sw_error_t rv = SW_OK;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -429,7 +429,7 @@
 _isis_port_flowctrl_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, force, reg, tmp;
+    a_uint32_t val, force, reg = 0, tmp;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -477,7 +477,7 @@
                         a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t rx, reg;
+    a_uint32_t rx, reg = 0;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -507,7 +507,7 @@
                                   a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -551,7 +551,7 @@
                                   a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t force, reg;
+    a_uint32_t force, reg = 0;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -749,7 +749,7 @@
                           fal_port_header_mode_t * mode)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -819,7 +819,7 @@
                           fal_port_header_mode_t * mode)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -851,7 +851,7 @@
 static sw_error_t
 _isis_header_type_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t type)
 {
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -887,7 +887,7 @@
 static sw_error_t
 _isis_header_type_get(a_uint32_t dev_id, a_bool_t * enable, a_uint32_t * type)
 {
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -916,7 +916,7 @@
 _isis_port_txmac_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, force, val, tmp;
+    a_uint32_t reg = 0, force, val, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -973,7 +973,7 @@
 _isis_port_txmac_status_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);
 
@@ -1002,7 +1002,7 @@
 _isis_port_rxmac_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, force, val, tmp;
+    a_uint32_t reg = 0, force, val, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1059,7 +1059,7 @@
 _isis_port_rxmac_status_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);
 
@@ -1088,7 +1088,7 @@
 _isis_port_txfc_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, reg, force, tmp;
+    a_uint32_t val, reg = 0, force, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1145,7 +1145,7 @@
 _isis_port_txfc_status_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);
 
@@ -1174,7 +1174,7 @@
 _isis_port_rxfc_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, reg, force, tmp;
+    a_uint32_t val, reg = 0, force, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1231,7 +1231,7 @@
 _isis_port_rxfc_status_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);
 
@@ -1260,7 +1260,7 @@
 _isis_port_bp_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, tmp;
+    a_uint32_t val, tmp = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1294,7 +1294,7 @@
 _isis_port_bp_status_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);
 
@@ -1323,7 +1323,7 @@
 _isis_port_link_forcemode_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1368,7 +1368,7 @@
 _isis_port_link_forcemode_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);
 
@@ -1469,7 +1469,7 @@
 _isis_port_mac_loopback_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_rate.c b/src/hsl/isis/isis_rate.c
index 1fd4c25..8e516ed 100755
--- a/src/hsl/isis/isis_rate.c
+++ b/src/hsl/isis/isis_rate.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.
@@ -408,7 +408,7 @@
                             fal_port_policer_t * policer)
 {
     sw_error_t rv;
-    a_uint32_t unit, ts, cir, eir, cbs, ebs, data[3];
+    a_uint32_t unit, ts, cir, eir, cbs, ebs, data[3] = {0};
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -582,7 +582,7 @@
                            a_bool_t * enable, fal_egress_shaper_t * shaper)
 {
     sw_error_t rv;
-    a_uint32_t data, cir, eir, cbs = 0, ebs = 0;
+    a_uint32_t data = 0, cir = 0, eir = 0, cbs = 0, ebs = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -858,7 +858,7 @@
                             fal_egress_shaper_t * shaper)
 {
     sw_error_t rv;
-    a_uint32_t data, cir, eir, cbs = 0, ebs = 0;
+    a_uint32_t data = 0, cir = 0, eir = 0, cbs = 0, ebs = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1170,7 +1170,7 @@
                            fal_acl_policer_t * policer)
 {
     sw_error_t rv;
-    a_uint32_t unit, ts, cir, eir, cbs, ebs, addr, data[2];
+    a_uint32_t unit, ts, cir, eir, cbs, ebs, addr, data[2] = {0};
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isisc/isisc_igmp.c b/src/hsl/isisc/isisc_igmp.c
index d1fbe21..83a3df4 100755
--- a/src/hsl/isisc/isisc_igmp.c
+++ b/src/hsl/isisc/isisc_igmp.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.
@@ -47,7 +47,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);
 
@@ -101,7 +101,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);
 
@@ -169,7 +169,7 @@
 _isisc_igmp_mld_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);
 
@@ -211,7 +211,7 @@
 _isisc_igmp_mld_rp_get(a_uint32_t dev_id, fal_pbmp_t * pts)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -253,7 +253,7 @@
 _isisc_igmp_mld_entry_creat_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);
 
@@ -303,7 +303,7 @@
 _isisc_igmp_mld_entry_static_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);
 
@@ -353,7 +353,7 @@
 _isisc_igmp_mld_entry_leaky_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);
 
@@ -403,7 +403,7 @@
 _isisc_igmp_mld_entry_v3_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);
 
@@ -428,7 +428,7 @@
                                a_uint32_t queue)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -461,7 +461,7 @@
                                a_uint32_t * queue)
 {
     sw_error_t rv;
-    a_uint32_t entry, data;
+    a_uint32_t entry = 0, data;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -490,7 +490,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);
 
@@ -532,7 +532,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);
 
diff --git a/src/hsl/isisc/isisc_interface_ctrl.c b/src/hsl/isisc/isisc_interface_ctrl.c
index 55d44d8..bd8da9a 100755
--- a/src/hsl/isisc/isisc_interface_ctrl.c
+++ b/src/hsl/isisc/isisc_interface_ctrl.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.
@@ -95,7 +95,7 @@
 _isisc_port_3az_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field, offset, device_id, rev_id, reverse = 0;
+    a_uint32_t reg = 0, field, offset, device_id, rev_id, reverse = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, MASK_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -166,7 +166,7 @@
 _isisc_port_3az_status_get(a_uint32_t dev_id, fal_port_t port_id, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, field, offset, device_id, rev_id, reverse = 0;
+    a_uint32_t reg = 0, field, offset, device_id, rev_id, reverse = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, MASK_CTL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -230,7 +230,7 @@
 _isisc_port_rgmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_rgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -333,7 +333,7 @@
 _isisc_port_rgmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_rgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -389,7 +389,7 @@
 _isisc_interface_mac06_exch_set(a_uint32_t dev_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
 
     HSL_REG_ENTRY_GET(rv, dev_id, PORT0_PAD_CTRL, 0,
@@ -416,7 +416,7 @@
 _isisc_interface_mac06_exch_get(a_uint32_t dev_id, a_bool_t* enable)
 {
     sw_error_t rv;
-    a_uint32_t reg,field;
+    a_uint32_t reg = 0,field;
 
 
     HSL_REG_ENTRY_GET(rv, dev_id, PORT0_PAD_CTRL, 0,
@@ -455,7 +455,7 @@
 _isisc_interface_mac_sgmii_get(a_uint32_t dev_id, a_uint32_t *value)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_REG_ENTRY_GET(rv, dev_id, SGMII_CTRL, 0,
                       (a_uint8_t *) (&reg), sizeof (a_uint32_t));
@@ -500,7 +500,7 @@
 _isisc_interface_mac_pad_get(a_uint32_t dev_id,a_uint32_t port_num, a_uint32_t *value)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     switch (port_num)
     {
@@ -532,7 +532,7 @@
 _isisc_port_rmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_rmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -626,7 +626,7 @@
 _isisc_port_rmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_rmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -687,7 +687,7 @@
 _isisc_port_gmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_gmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -776,7 +776,7 @@
 _isisc_port_gmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_gmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -820,7 +820,7 @@
 _isisc_port_mii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_mii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -922,7 +922,7 @@
 _isisc_port_mii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_mii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -970,7 +970,7 @@
 _isisc_port_sgmii_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_sgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -1129,7 +1129,7 @@
 _isisc_port_sgmii_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_sgmii_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -1200,7 +1200,7 @@
 _isisc_port_fiber_mode_set(a_uint32_t dev_id, fal_port_t port_id, fal_mac_fiber_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -1350,7 +1350,7 @@
 _isisc_port_fiber_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_fiber_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -1400,7 +1400,7 @@
 _isisc_port_default_mode_set(a_uint32_t dev_id, fal_port_t port_id)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     if (ISISC_MAC_0 == port_id)
     {
@@ -1512,7 +1512,7 @@
 _isisc_interface_mac_mode_get(a_uint32_t dev_id, fal_port_t port_id, fal_mac_config_t * config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field, field2;
+    a_uint32_t reg = 0, field, field2;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1729,7 +1729,7 @@
 {
     sw_error_t rv;
     a_uint16_t data;
-    a_uint32_t reg, rgmii;
+    a_uint32_t reg = 0, rgmii;
     hsl_phy_ops_t *phy_drv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -1789,7 +1789,7 @@
 _isisc_interface_fx100_ctrl_set(a_uint32_t dev_id, fal_fx100_ctrl_config_t* config)
 {
     sw_error_t rv;
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1900,7 +1900,7 @@
 _isisc_interface_fx100_ctrl_get(a_uint32_t dev_id, fal_fx100_ctrl_config_t* config)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -2001,7 +2001,7 @@
 _isisc_interface_fx100_status_get(a_uint32_t dev_id, a_uint32_t* status)
 {
     sw_error_t rv;
-    a_uint32_t reg, field;
+    a_uint32_t reg = 0, field;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/isisc/isisc_leaky.c b/src/hsl/isisc/isisc_leaky.c
index be99878..14a3dda 100755
--- a/src/hsl/isisc/isisc_leaky.c
+++ b/src/hsl/isisc/isisc_leaky.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 @@
 _isisc_uc_leaky_mode_get(a_uint32_t dev_id,
                         fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -107,7 +107,7 @@
 _isisc_mc_leaky_mode_get(a_uint32_t dev_id,
                         fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -164,7 +164,7 @@
 _isisc_port_arp_leaky_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);
@@ -226,7 +226,7 @@
 _isisc_port_uc_leaky_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);
@@ -288,7 +288,7 @@
 _isisc_port_mc_leaky_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_led.c b/src/hsl/isisc/isisc_led.c
index 5468dfc..fd3aebc 100755
--- a/src/hsl/isisc/isisc_led.c
+++ b/src/hsl/isisc/isisc_led.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.
@@ -208,7 +208,7 @@
 _isisc_led_ctrl_pattern_get(a_uint32_t dev_id, led_pattern_group_t group,
                            led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, tmp;
+    a_uint32_t data = 0, reg = 0, tmp;
     a_uint32_t addr;
     sw_error_t rv;
 
diff --git a/src/hsl/isisc/isisc_mib.c b/src/hsl/isisc/isisc_mib.c
index 5a640ce..5ca5def 100755
--- a/src/hsl/isisc/isisc_mib.c
+++ b/src/hsl/isisc/isisc_mib.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.
@@ -76,7 +76,7 @@
 _isisc_get_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -315,7 +315,7 @@
 _isisc_get_rx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -443,7 +443,7 @@
 _isisc_get_tx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                    fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -597,7 +597,7 @@
 _isisc_mib_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);
 
@@ -649,7 +649,7 @@
 _isisc_mib_cpukeep_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/isisc/isisc_port_ctrl.c b/src/hsl/isisc/isisc_port_ctrl.c
index d252d67..bc61810 100755
--- a/src/hsl/isisc/isisc_port_ctrl.c
+++ b/src/hsl/isisc/isisc_port_ctrl.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.
@@ -43,7 +43,7 @@
                       fal_port_duplex_t duplex)
 {
     sw_error_t rv;
-    a_uint32_t phy_id, reg_save, reg_val, force, tmp;
+    a_uint32_t phy_id, reg_save, reg_val = 0, force, tmp;
     hsl_phy_ops_t *phy_drv;
     a_bool_t status;
 
@@ -132,7 +132,7 @@
                      fal_port_speed_t speed)
 {
     sw_error_t rv;
-    a_uint32_t phy_id, reg_save, reg_val, force, tmp;
+    a_uint32_t phy_id, reg_save, reg_val = 0, force, tmp;
     hsl_phy_ops_t *phy_drv;
     a_bool_t status;
 
@@ -232,7 +232,7 @@
 _isisc_port_flowctrl_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, force, reg, tmp;
+    a_uint32_t val, force, reg = 0, tmp;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -280,7 +280,7 @@
                                   a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -566,7 +566,7 @@
                         a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t rx, reg;
+    a_uint32_t rx, reg = 0;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -759,7 +759,7 @@
                           fal_port_header_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -829,7 +829,7 @@
                           fal_port_header_mode_t mode)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -897,7 +897,7 @@
 static sw_error_t
 _isisc_header_type_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t type)
 {
-    a_uint32_t reg;
+    a_uint32_t reg = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -933,7 +933,7 @@
 static sw_error_t
 _isisc_header_type_get(a_uint32_t dev_id, a_bool_t * enable, a_uint32_t * type)
 {
-    a_uint32_t data, reg;
+    a_uint32_t data, reg = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -962,7 +962,7 @@
 _isisc_port_txmac_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, force, val, tmp;
+    a_uint32_t reg, force, val = 0, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1019,7 +1019,7 @@
 _isisc_port_txmac_status_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);
 
@@ -1048,7 +1048,7 @@
 _isisc_port_rxmac_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, force, val, tmp;
+    a_uint32_t reg = 0, force, val = 0, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1134,7 +1134,7 @@
 _isisc_port_txfc_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, reg, force, tmp;
+    a_uint32_t val, reg = 0, force, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1220,7 +1220,7 @@
 _isisc_port_rxfc_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, reg, force, tmp;
+    a_uint32_t val = 0, reg, force, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1398,7 +1398,7 @@
 _isisc_port_link_forcemode_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t reg, tmp;
+    a_uint32_t reg = 0, tmp = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1446,7 +1446,7 @@
 _isisc_port_link_forcemode_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);
 
@@ -1476,7 +1476,7 @@
 _isisc_port_bp_status_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, tmp;
+    a_uint32_t val = 0, tmp;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1585,7 +1585,7 @@
 _isisc_port_mac_loopback_set(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_rate.c b/src/hsl/isisc/isisc_rate.c
index a724d7e..0cbe6b0 100755
--- a/src/hsl/isisc/isisc_rate.c
+++ b/src/hsl/isisc/isisc_rate.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.
@@ -408,7 +408,7 @@
                             fal_port_policer_t * policer)
 {
     sw_error_t rv;
-    a_uint32_t unit, ts, cir, eir, cbs, ebs, data[3];
+    a_uint32_t unit, ts, cir, eir, cbs, ebs, data[3] = {0};
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -582,7 +582,7 @@
                            a_bool_t * enable, fal_egress_shaper_t * shaper)
 {
     sw_error_t rv;
-    a_uint32_t data, cir, eir, cbs = 0, ebs = 0;
+    a_uint32_t data = 0, cir = 0, eir = 0, cbs = 0, ebs = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -858,7 +858,7 @@
                             fal_egress_shaper_t * shaper)
 {
     sw_error_t rv;
-    a_uint32_t data, cir, eir, cbs = 0, ebs = 0;
+    a_uint32_t data = 0, cir = 0, eir = 0, cbs = 0, ebs = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1170,7 +1170,7 @@
                            fal_acl_policer_t * policer)
 {
     sw_error_t rv;
-    a_uint32_t unit, ts, cir, eir, cbs, ebs, addr, data[2];
+    a_uint32_t unit, ts, cir, eir, cbs, ebs, addr, data[2] = {0};
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -1308,7 +1308,7 @@
 _isisc_rate_port_gol_flow_en_set(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t  enable)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -1347,7 +1347,7 @@
 _isisc_rate_port_gol_flow_en_get(a_uint32_t dev_id, fal_port_t port_id,
                                 a_bool_t*  enable)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/hsl/phy/f1_phy.c b/src/hsl/phy/f1_phy.c
index 29968cd..5e22d9d 100755
--- a/src/hsl/phy/f1_phy.c
+++ b/src/hsl/phy/f1_phy.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.
@@ -30,7 +30,7 @@
 _phy_reg_read(a_uint32_t dev_id, a_uint32_t phy_addr, a_uint32_t reg)
 {
     sw_error_t rv;
-    a_uint16_t val;
+    a_uint16_t val = 0;
 
     HSL_PHY_GET(rv, dev_id, phy_addr, reg, &val);
     if (SW_OK != rv)
@@ -1073,7 +1073,7 @@
     a_uint16_t phy_data = 0;
     a_uint16_t phy_status = 0;
 
-    fal_port_speed_t old_speed;
+    fal_port_speed_t old_speed = FAL_SPEED_10;
     a_uint32_t oldneg, autoneg;
 
     if (A_TRUE == f1_phy_autoneg_status(dev_id, phy_id))
diff --git a/src/hsl/phy/f2_phy.c b/src/hsl/phy/f2_phy.c
index a18b90f..36070f8 100755
--- a/src/hsl/phy/f2_phy.c
+++ b/src/hsl/phy/f2_phy.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.
@@ -31,7 +31,7 @@
 _phy_reg_read(a_uint32_t dev_id, a_uint32_t phy_addr, a_uint8_t reg)
 {
     sw_error_t rv;
-    a_uint16_t val;
+    a_uint16_t val = 0;
 
     HSL_PHY_GET(rv, dev_id, phy_addr, reg, &val);
     if (SW_OK != rv)
@@ -790,7 +790,7 @@
     a_uint16_t phy_data = 0;
     a_uint16_t phy_status = 0;
 
-    fal_port_speed_t old_speed;
+    fal_port_speed_t old_speed = FAL_SPEED_10;
     a_uint32_t autoneg, oldneg;
 
     if (f2_phy_autoneg_status(dev_id, phy_id))
diff --git a/src/hsl/phy/malibu_phy.c b/src/hsl/phy/malibu_phy.c
index 0ce2316..9861c9c 100755
--- a/src/hsl/phy/malibu_phy.c
+++ b/src/hsl/phy/malibu_phy.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, The Linux Foundation. All rights reserved.
+ * Copyright (c) 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.
@@ -28,7 +28,7 @@
 _phy_reg_read(a_uint32_t dev_id, a_uint32_t phy_addr, a_uint32_t reg)
 {
 	sw_error_t rv;
-	a_uint16_t phy_data;
+	a_uint16_t phy_data = 0;
 
 	HSL_PHY_GET(rv, dev_id, phy_addr, reg, &phy_data);
 	if (SW_OK != rv)
diff --git a/src/hsl/shiva/shiva_igmp.c b/src/hsl/shiva/shiva_igmp.c
index 8ce7fa9..2427d78 100755
--- a/src/hsl/shiva/shiva_igmp.c
+++ b/src/hsl/shiva/shiva_igmp.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.
@@ -59,7 +59,7 @@
 _shiva_port_igmps_status_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);
 
@@ -114,7 +114,7 @@
 _shiva_igmp_mld_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);
 
@@ -169,7 +169,7 @@
 _shiva_port_igmp_mld_join_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);
 
@@ -229,7 +229,7 @@
 _shiva_port_igmp_mld_leave_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);
 
@@ -276,7 +276,7 @@
 _shiva_igmp_mld_rp_get(a_uint32_t dev_id, fal_pbmp_t * pts)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -318,7 +318,7 @@
 _shiva_igmp_mld_entry_creat_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);
 
@@ -368,7 +368,7 @@
 _shiva_igmp_mld_entry_static_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);
 
@@ -418,7 +418,7 @@
 _shiva_igmp_mld_entry_leaky_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);
 
@@ -468,7 +468,7 @@
 _shiva_igmp_mld_entry_v3_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);
 
@@ -492,7 +492,7 @@
 _shiva_igmp_mld_entry_queue_set(a_uint32_t dev_id, a_bool_t enable, a_uint32_t queue)
 {
     sw_error_t rv;
-    a_uint32_t entry;
+    a_uint32_t entry = 0;
     hsl_dev_t *p_dev;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -530,7 +530,7 @@
 _shiva_igmp_mld_entry_queue_get(a_uint32_t dev_id, a_bool_t * enable, a_uint32_t * queue)
 {
     sw_error_t rv;
-    a_uint32_t entry, data;
+    a_uint32_t entry = 0, data;
 
     HSL_DEV_ID_CHECK(dev_id);
 
diff --git a/src/hsl/shiva/shiva_leaky.c b/src/hsl/shiva/shiva_leaky.c
index da4afc3..c68e66f 100755
--- a/src/hsl/shiva/shiva_leaky.c
+++ b/src/hsl/shiva/shiva_leaky.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 @@
 _shiva_uc_leaky_mode_get(a_uint32_t dev_id,
                          fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -107,7 +107,7 @@
 _shiva_mc_leaky_mode_get(a_uint32_t dev_id,
                          fal_leaky_ctrl_mode_t *ctrl_mode)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -164,7 +164,7 @@
 _shiva_port_arp_leaky_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);
@@ -226,7 +226,7 @@
 _shiva_port_uc_leaky_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);
@@ -288,7 +288,7 @@
 _shiva_port_mc_leaky_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/shiva/shiva_led.c b/src/hsl/shiva/shiva_led.c
index 2918bf3..06bcd31 100755
--- a/src/hsl/shiva/shiva_led.c
+++ b/src/hsl/shiva/shiva_led.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 @@
 _shiva_led_ctrl_pattern_set(a_uint32_t dev_id, led_pattern_group_t group,
                             led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, mode;
+    a_uint32_t data = 0, reg = 0, mode;
     a_uint32_t addr;
     sw_error_t rv;
 
@@ -219,7 +219,7 @@
 _shiva_led_ctrl_pattern_get(a_uint32_t dev_id, led_pattern_group_t group,
                             led_pattern_id_t id, led_ctrl_pattern_t * pattern)
 {
-    a_uint32_t data = 0, reg, tmp;
+    a_uint32_t data = 0, reg = 0, tmp;
     a_uint32_t addr;
     sw_error_t rv;
 
diff --git a/src/hsl/shiva/shiva_mib.c b/src/hsl/shiva/shiva_mib.c
index 82cda69..0122e56 100755
--- a/src/hsl/shiva/shiva_mib.c
+++ b/src/hsl/shiva/shiva_mib.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.
@@ -28,7 +28,7 @@
 _shiva_get_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                     fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -255,7 +255,7 @@
 _shiva_get_rx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                     fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -377,7 +377,7 @@
 _shiva_get_tx_mib_info(a_uint32_t dev_id, fal_port_t port_id,
                     fal_mib_info_t * mib_info)
 {
-    a_uint32_t val;
+    a_uint32_t val = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -525,7 +525,7 @@
 _shiva_mib_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);
 
diff --git a/src/hsl/shiva/shiva_port_ctrl.c b/src/hsl/shiva/shiva_port_ctrl.c
index 3d06111..c0551ae 100755
--- a/src/hsl/shiva/shiva_port_ctrl.c
+++ b/src/hsl/shiva/shiva_port_ctrl.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.
@@ -338,7 +338,7 @@
                            a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -367,7 +367,7 @@
 _shiva_port_flowctrl_set(a_uint32_t dev_id, fal_port_t port_id, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val, force, reg, tmp;
+    a_uint32_t val, force, reg = 0, tmp;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -415,7 +415,7 @@
                          a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t rx, reg;
+    a_uint32_t rx, reg = 0;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
diff --git a/src/hsl/shiva/shiva_rate.c b/src/hsl/shiva/shiva_rate.c
index e02ea9f..e6c64c0 100755
--- a/src/hsl/shiva/shiva_rate.c
+++ b/src/hsl/shiva/shiva_rate.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.
@@ -78,7 +78,7 @@
 {
     sw_error_t rv;
     a_uint32_t val;
-    a_uint32_t portrl;
+    a_uint32_t portrl = 0;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -154,7 +154,7 @@
                            a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     if (A_TRUE != hsl_port_prop_check(dev_id, port_id, HSL_PP_INCL_CPU))
     {
@@ -219,8 +219,8 @@
                           a_uint32_t * speed, a_bool_t enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
-    a_uint32_t portrl;
+    a_uint32_t val = 0;
+    a_uint32_t portrl = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -327,7 +327,7 @@
                           a_uint32_t * speed, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -399,7 +399,7 @@
                           a_uint32_t * speed, a_bool_t * enable)
 {
     sw_error_t rv;
-    a_uint32_t val;
+    a_uint32_t val = 0;
 
     HSL_DEV_ID_CHECK(dev_id);
 
@@ -498,7 +498,7 @@
 _shiva_storm_ctrl_frame_get(a_uint32_t dev_id, fal_port_t port_id,
                             fal_storm_type_t storm_type, a_bool_t * enable)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
@@ -574,7 +574,7 @@
 _shiva_storm_ctrl_rate_get(a_uint32_t dev_id, fal_port_t port_id,
                            a_uint32_t * rate_in_pps)
 {
-    a_uint32_t data;
+    a_uint32_t data = 0;
     sw_error_t rv;
 
     HSL_DEV_ID_CHECK(dev_id);
diff --git a/src/ref/ref_port_ctrl.c b/src/ref/ref_port_ctrl.c
index 1019901..56525aa 100755
--- a/src/ref/ref_port_ctrl.c
+++ b/src/ref/ref_port_ctrl.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.
@@ -61,11 +61,11 @@
 {
 	struct qca_phy_priv *priv = qca_phy_priv_get(dev);
 
-	fal_port_speed_t speed;
-	fal_port_duplex_t duplex;
-	a_bool_t status;
-	a_bool_t tx_fc;
-	a_bool_t rx_fc;
+	fal_port_speed_t speed = FAL_SPEED_10;
+	fal_port_duplex_t duplex = FAL_FULL_DUPLEX;
+	a_bool_t status = 0;
+	a_bool_t tx_fc = 0;
+	a_bool_t rx_fc = 0;
 	a_uint32_t ret;
 
 	mutex_lock(&priv->reg_mutex);
@@ -195,7 +195,7 @@
 
 static int qca_switch_force_mac_status(struct switch_dev *dev, a_uint32_t port_id,a_uint32_t speed,a_uint32_t duplex)
 {
-	a_uint32_t reg, value;
+	a_uint32_t reg, value = 0;
 	struct qca_phy_priv *priv = qca_phy_priv_get(dev);
 
 	if (port_id < 1 || port_id > 5)
