diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2014-09-26 17:40:28 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-09-30 13:17:38 -0400 |
commit | ef09396ef622572c604d4977e76f6151ef68ed21 (patch) | |
tree | 3b4d123539b4446455112e4e74b21daa590db100 | |
parent | 557f933113a42a48ec617b81b5ea53fd7202b1ed (diff) |
rtlwifi: rtl8188ee: rtl8723ae: rtl8821ae: Initialize some variables
In a number of places, kmalloc or valloc were used to acquire memory.
To ensure that these locations are correctly initialized, the calls were
changed to kzalloc and vzalloc. The change fixes a problem that was causing
HT operations to be cancelled.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/rtlwifi/efuse.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 20 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8188ee/sw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8723ae/sw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8821ae/sw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/usb.c | 4 |
7 files changed, 18 insertions, 18 deletions
diff --git a/drivers/net/wireless/rtlwifi/efuse.c b/drivers/net/wireless/rtlwifi/efuse.c index 118293b631cd..0b4082c9272a 100644 --- a/drivers/net/wireless/rtlwifi/efuse.c +++ b/drivers/net/wireless/rtlwifi/efuse.c | |||
@@ -251,7 +251,7 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf) | |||
251 | } | 251 | } |
252 | 252 | ||
253 | /* allocate memory for efuse_tbl and efuse_word */ | 253 | /* allocate memory for efuse_tbl and efuse_word */ |
254 | efuse_tbl = kmalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE] * | 254 | efuse_tbl = kzalloc(rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE] * |
255 | sizeof(u8), GFP_ATOMIC); | 255 | sizeof(u8), GFP_ATOMIC); |
256 | if (!efuse_tbl) | 256 | if (!efuse_tbl) |
257 | return; | 257 | return; |
@@ -259,7 +259,7 @@ void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf) | |||
259 | if (!efuse_word) | 259 | if (!efuse_word) |
260 | goto out; | 260 | goto out; |
261 | for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) { | 261 | for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) { |
262 | efuse_word[i] = kmalloc(efuse_max_section * sizeof(u16), | 262 | efuse_word[i] = kzalloc(efuse_max_section * sizeof(u16), |
263 | GFP_ATOMIC); | 263 | GFP_ATOMIC); |
264 | if (!efuse_word[i]) | 264 | if (!efuse_word[i]) |
265 | goto done; | 265 | goto done; |
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index 1dbb22b537ef..667aba81246c 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c | |||
@@ -2243,16 +2243,6 @@ int rtl_pci_probe(struct pci_dev *pdev, | |||
2243 | /*like read eeprom and so on */ | 2243 | /*like read eeprom and so on */ |
2244 | rtlpriv->cfg->ops->read_eeprom_info(hw); | 2244 | rtlpriv->cfg->ops->read_eeprom_info(hw); |
2245 | 2245 | ||
2246 | if (rtlpriv->cfg->ops->init_sw_vars(hw)) { | ||
2247 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Can't init_sw_vars\n"); | ||
2248 | err = -ENODEV; | ||
2249 | goto fail3; | ||
2250 | } | ||
2251 | rtlpriv->cfg->ops->init_sw_leds(hw); | ||
2252 | |||
2253 | /*aspm */ | ||
2254 | rtl_pci_init_aspm(hw); | ||
2255 | |||
2256 | /* Init mac80211 sw */ | 2246 | /* Init mac80211 sw */ |
2257 | err = rtl_init_core(hw); | 2247 | err = rtl_init_core(hw); |
2258 | if (err) { | 2248 | if (err) { |
@@ -2268,6 +2258,16 @@ int rtl_pci_probe(struct pci_dev *pdev, | |||
2268 | goto fail3; | 2258 | goto fail3; |
2269 | } | 2259 | } |
2270 | 2260 | ||
2261 | if (rtlpriv->cfg->ops->init_sw_vars(hw)) { | ||
2262 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Can't init_sw_vars\n"); | ||
2263 | err = -ENODEV; | ||
2264 | goto fail3; | ||
2265 | } | ||
2266 | rtlpriv->cfg->ops->init_sw_leds(hw); | ||
2267 | |||
2268 | /*aspm */ | ||
2269 | rtl_pci_init_aspm(hw); | ||
2270 | |||
2271 | err = ieee80211_register_hw(hw); | 2271 | err = ieee80211_register_hw(hw); |
2272 | if (err) { | 2272 | if (err) { |
2273 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | 2273 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, |
diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c b/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c index ab7dbfb2623f..11344121c55e 100644 --- a/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c | |||
@@ -159,7 +159,7 @@ int rtl88e_init_sw_vars(struct ieee80211_hw *hw) | |||
159 | rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; | 159 | rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; |
160 | 160 | ||
161 | /* for firmware buf */ | 161 | /* for firmware buf */ |
162 | rtlpriv->rtlhal.pfirmware = vmalloc(0x8000); | 162 | rtlpriv->rtlhal.pfirmware = vzalloc(0x8000); |
163 | if (!rtlpriv->rtlhal.pfirmware) { | 163 | if (!rtlpriv->rtlhal.pfirmware) { |
164 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | 164 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, |
165 | "Can't alloc buffer for fw.\n"); | 165 | "Can't alloc buffer for fw.\n"); |
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c b/drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c index 747958abd256..00a0531cc5f4 100644 --- a/drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c +++ b/drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c | |||
@@ -1735,7 +1735,7 @@ void rtl_8723e_c2h_command_handle(struct ieee80211_hw *hw) | |||
1735 | rtl_write_byte(rtlpriv, 0x1AF, 0x00); | 1735 | rtl_write_byte(rtlpriv, 0x1AF, 0x00); |
1736 | return; | 1736 | return; |
1737 | } | 1737 | } |
1738 | ptmp_buf = kmalloc(c2h_event.cmd_len, GFP_KERNEL); | 1738 | ptmp_buf = kzalloc(c2h_event.cmd_len, GFP_KERNEL); |
1739 | if (ptmp_buf == NULL) { | 1739 | if (ptmp_buf == NULL) { |
1740 | RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, | 1740 | RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, |
1741 | "malloc cmd buf failed\n"); | 1741 | "malloc cmd buf failed\n"); |
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c b/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c index d8f8cc49a430..8280bab43df4 100644 --- a/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c | |||
@@ -164,7 +164,7 @@ int rtl8723e_init_sw_vars(struct ieee80211_hw *hw) | |||
164 | rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; | 164 | rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; |
165 | 165 | ||
166 | /* for firmware buf */ | 166 | /* for firmware buf */ |
167 | rtlpriv->rtlhal.pfirmware = vmalloc(0x6000); | 167 | rtlpriv->rtlhal.pfirmware = vzalloc(0x6000); |
168 | if (!rtlpriv->rtlhal.pfirmware) { | 168 | if (!rtlpriv->rtlhal.pfirmware) { |
169 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | 169 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, |
170 | "Can't alloc buffer for fw.\n"); | 170 | "Can't alloc buffer for fw.\n"); |
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c index 3cf7557b7786..fc92dd6a0d07 100644 --- a/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c | |||
@@ -95,7 +95,7 @@ static void load_wowlan_fw(struct rtl_priv *rtlpriv) | |||
95 | int err; | 95 | int err; |
96 | 96 | ||
97 | /* for wowlan firmware buf */ | 97 | /* for wowlan firmware buf */ |
98 | rtlpriv->rtlhal.wowlan_firmware = vmalloc(0x8000); | 98 | rtlpriv->rtlhal.wowlan_firmware = vzalloc(0x8000); |
99 | if (!rtlpriv->rtlhal.wowlan_firmware) { | 99 | if (!rtlpriv->rtlhal.wowlan_firmware) { |
100 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | 100 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, |
101 | "Can't alloc buffer for wowlan fw.\n"); | 101 | "Can't alloc buffer for wowlan fw.\n"); |
diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c index 0398d3ea15b0..10cf69c4bc42 100644 --- a/drivers/net/wireless/rtlwifi/usb.c +++ b/drivers/net/wireless/rtlwifi/usb.c | |||
@@ -75,11 +75,11 @@ static int _usbctrl_vendorreq_async_write(struct usb_device *udev, u8 request, | |||
75 | pipe = usb_sndctrlpipe(udev, 0); /* write_out */ | 75 | pipe = usb_sndctrlpipe(udev, 0); /* write_out */ |
76 | reqtype = REALTEK_USB_VENQT_WRITE; | 76 | reqtype = REALTEK_USB_VENQT_WRITE; |
77 | 77 | ||
78 | dr = kmalloc(sizeof(*dr), GFP_ATOMIC); | 78 | dr = kzalloc(sizeof(*dr), GFP_ATOMIC); |
79 | if (!dr) | 79 | if (!dr) |
80 | return -ENOMEM; | 80 | return -ENOMEM; |
81 | 81 | ||
82 | databuf = kmalloc(databuf_maxlen, GFP_ATOMIC); | 82 | databuf = kzalloc(databuf_maxlen, GFP_ATOMIC); |
83 | if (!databuf) { | 83 | if (!databuf) { |
84 | kfree(dr); | 84 | kfree(dr); |
85 | return -ENOMEM; | 85 | return -ENOMEM; |