summaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2016-09-29 09:48:09 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2016-09-29 10:32:41 +0200
commitc795794eef8737f6272b2acce9025807af52da81 (patch)
treee827cc19dc4d140021b84dae65e2ea28eb090d5d /package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch
parent71144844e109bbf0ef62984eeadabbf5702a1cee (diff)
downloadmaster-31e0f0ae-c795794eef8737f6272b2acce9025807af52da81.tar.gz
master-31e0f0ae-c795794eef8737f6272b2acce9025807af52da81.tar.bz2
master-31e0f0ae-c795794eef8737f6272b2acce9025807af52da81.zip
mac80211: use upstream patches for rtl8xxxu
Also improves rtl8188eu support. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch')
-rw-r--r--package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch b/package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch
new file mode 100644
index 0000000000..d19f48f0eb
--- /dev/null
+++ b/package/kernel/mac80211/patches/653-0003-rtl8xxxu-Fix-error-handling-if-rtl8xxxu_init_device-.patch
@@ -0,0 +1,67 @@
+From deb6176e561324884652dd6a49a862bd8b152959 Mon Sep 17 00:00:00 2001
+From: Jes Sorensen <Jes.Sorensen@redhat.com>
+Date: Fri, 19 Aug 2016 17:46:25 -0400
+Subject: [PATCH] rtl8xxxu: Fix error handling if rtl8xxxu_init_device() fails
+
+For some reason we lost the code bailing if rtl8xxxu_init_device()
+returned an error.
+
+This catches the error and also cleans up the error handling.
+
+Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
+Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
+---
+ .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
+@@ -5947,7 +5947,7 @@ static int rtl8xxxu_probe(struct usb_int
+ struct ieee80211_hw *hw;
+ struct usb_device *udev;
+ struct ieee80211_supported_band *sband;
+- int ret = 0;
++ int ret;
+ int untested = 1;
+
+ udev = usb_get_dev(interface_to_usbdev(interface));
+@@ -5995,6 +5995,7 @@ static int rtl8xxxu_probe(struct usb_int
+ hw = ieee80211_alloc_hw(sizeof(struct rtl8xxxu_priv), &rtl8xxxu_ops);
+ if (!hw) {
+ ret = -ENOMEM;
++ priv = NULL;
+ goto exit;
+ }
+
+@@ -6043,6 +6044,8 @@ static int rtl8xxxu_probe(struct usb_int
+ }
+
+ ret = rtl8xxxu_init_device(hw);
++ if (ret)
++ goto exit;
+
+ hw->wiphy->max_scan_ssids = 1;
+ hw->wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN;
+@@ -6093,9 +6096,20 @@ static int rtl8xxxu_probe(struct usb_int
+ goto exit;
+ }
+
++ return 0;
++
+ exit:
+- if (ret < 0)
+- usb_put_dev(udev);
++ usb_set_intfdata(interface, NULL);
++
++ if (priv) {
++ kfree(priv->fw_data);
++ mutex_destroy(&priv->usb_buf_mutex);
++ mutex_destroy(&priv->h2c_mutex);
++ }
++ usb_put_dev(udev);
++
++ ieee80211_free_hw(hw);
++
+ return ret;
+ }
+