From 41ff7a03ca43e979f0e151d7ed228161974eaa84 Mon Sep 17 00:00:00 2001 From: Salvatore Bonaccorso Date: Sun, 10 Sep 2017 11:32:19 +0200 Subject: [PATCH] Update to 4.12.12 --- debian/changelog | 42 +++++- ...tlwifi-fix-fallback-firmware-loading.patch | 90 ----------- ...ory-leak-when-firmware-request-fails.patch | 142 ------------------ debian/patches/series | 2 - 4 files changed, 41 insertions(+), 235 deletions(-) delete mode 100644 debian/patches/bugfix/all/rtlwifi-fix-fallback-firmware-loading.patch delete mode 100644 debian/patches/bugfix/all/rtlwifi-fix-memory-leak-when-firmware-request-fails.patch diff --git a/debian/changelog b/debian/changelog index 947535d10..4df3a371d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -linux (4.12.11-1) UNRELEASED; urgency=medium +linux (4.12.12-1) UNRELEASED; urgency=medium * New upstream stable update: https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.7 @@ -223,6 +223,46 @@ linux (4.12.11-1) UNRELEASED; urgency=medium - drm/nouveau/i2c/gf119-: add support for address-only transactions - epoll: fix race between ep_poll_callback(POLLFREE) and ep_free()/ep_remove() + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.12 + - usb: quirks: add delay init quirk for Corsair Strafe RGB keyboard + - USB: serial: option: add support for D-Link DWM-157 C1 + - usb: Add device quirk for Logitech HD Pro Webcam C920-C + - usb:xhci:Fix regression when ATI chipsets detected + - [armhf] USB: musb: fix external abort on suspend + - USB: core: Avoid race of async_completed() w/ usbdev_release() + - [x86] staging/rts5208: fix incorrect shift to extract upper nybble + - iio: adc: ti-ads1015: fix incorrect data rate setting update + - iio: adc: ti-ads1015: fix scale information for ADS1115 + - iio: adc: ti-ads1015: enable conversion when CONFIG_PM is not set + - iio: adc: ti-ads1015: avoid getting stale result after runtime resume + - iio: adc: ti-ads1015: don't return invalid value from buffer setup + callbacks + - iio: adc: ti-ads1015: add adequate wait time to get correct conversion + - driver core: bus: Fix a potential double free + - HID: wacom: Do not completely map WACOM_HID_WD_TOUCHRINGSTATUS usage + - [x86] intel_th: pci: Add Cannon Lake PCH-H support + - [x86] intel_th: pci: Add Cannon Lake PCH-LP support + - ath10k: fix memory leak in rx ring buffer allocation + - Input: trackpoint - assume 3 buttons when buttons detection fails + - rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter + - Bluetooth: Add support of 13d3:3494 RTL8723BE device + - iwlwifi: pci: add new PCI ID for 7265D + - dlm: avoid double-free on error path in dlm_device_{register,unregister} + - mwifiex: correct channel stat buffer overflows + - [s390x] mm: avoid empty zero pages for KVM guests to avoid postcopy + hangs + - [s390x] mm: fix BUG_ON in crst_table_upgrade + - drm/nouveau/pci/msi: disable MSI on big-endian platforms by default + - drm/nouveau: Fix error handling in nv50_disp_atomic_commit + - workqueue: Fix flag collision + - ahci: don't use MSI for devices with the silly Intel NVMe remapping + scheme + - cs5536: add support for IDE controller variant + - scsi: sg: protect against races between mmap() and SG_SET_RESERVED_SIZE + - scsi: sg: recheck MMAP_IO request length with lock held + - of/device: Prevent buffer overflow in of_device_modalias() + - rtlwifi: Fix memory leak when firmware request fails + - rtlwifi: Fix fallback firmware loading [ Ben Hutchings ] * [alpha] udeb: Add i2c-modules (fixes FTBFS) diff --git a/debian/patches/bugfix/all/rtlwifi-fix-fallback-firmware-loading.patch b/debian/patches/bugfix/all/rtlwifi-fix-fallback-firmware-loading.patch deleted file mode 100644 index cbe3d4ae7..000000000 --- a/debian/patches/bugfix/all/rtlwifi-fix-fallback-firmware-loading.patch +++ /dev/null @@ -1,90 +0,0 @@ -From: Sven Joachim -Date: Mon, 31 Jul 2017 18:10:45 +0200 -Subject: rtlwifi: Fix fallback firmware loading -Origin: https://git.kernel.org/linus/1d9b168d8ea9a0f51947d0e2f84856e77d2fe7ff -Bug-Debian: https://bugs.debian.org/869084 - -Commit f70e4df2b384 ("rtlwifi: Add code to read new versions of -firmware") added code to load an old firmware file if the new one is -not available. Unfortunately that code is never reached because -request_firmware_nowait() does not wait for the firmware to show up -and returns 0 even if the file is not there. - -Use the existing fallback mechanism introduced by commit 62009b7f1279 -("rtlwifi: rtl8192cu: Add new firmware") instead. - -Fixes: f70e4df2b384 ("rtlwifi: Add code to read new versions of firmware") -Cc: stable@vger.kernel.org -Signed-off-by: Sven Joachim -Signed-off-by: Kalle Valo ---- - drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 17 +++++------------ - drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c | 17 +++++------------ - 2 files changed, 10 insertions(+), 24 deletions(-) - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c -@@ -187,18 +187,10 @@ int rtl8723be_init_sw_vars(struct ieee80 - rtlpriv->io.dev, GFP_KERNEL, hw, - rtl_fw_cb); - if (err) { -- /* Failed to get firmware. Check if old version available */ -- fw_name = "rtlwifi/rtl8723befw.bin"; -- pr_info("Using firmware %s\n", fw_name); -- err = request_firmware_nowait(THIS_MODULE, 1, fw_name, -- rtlpriv->io.dev, GFP_KERNEL, hw, -- rtl_fw_cb); -- if (err) { -- pr_err("Failed to request firmware!\n"); -- vfree(rtlpriv->rtlhal.pfirmware); -- rtlpriv->rtlhal.pfirmware = NULL; -- return 1; -- } -+ pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; -+ return 1; - } - return 0; - } -@@ -289,6 +281,7 @@ static const struct rtl_hal_cfg rtl8723b - .bar_id = 2, - .write_readback = true, - .name = "rtl8723be_pci", -+ .alt_fw_name = "rtlwifi/rtl8723befw.bin", - .ops = &rtl8723be_hal_ops, - .mod_params = &rtl8723be_mod_params, - .maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL, ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c -@@ -216,18 +216,10 @@ int rtl8821ae_init_sw_vars(struct ieee80 - rtlpriv->io.dev, GFP_KERNEL, hw, - rtl_fw_cb); - if (err) { -- /* Failed to get firmware. Check if old version available */ -- fw_name = "rtlwifi/rtl8821aefw.bin"; -- pr_info("Using firmware %s\n", fw_name); -- err = request_firmware_nowait(THIS_MODULE, 1, fw_name, -- rtlpriv->io.dev, GFP_KERNEL, hw, -- rtl_fw_cb); -- if (err) { -- pr_err("Failed to request normal firmware!\n"); -- vfree(rtlpriv->rtlhal.wowlan_firmware); -- vfree(rtlpriv->rtlhal.pfirmware); -- return 1; -- } -+ pr_err("Failed to request normal firmware!\n"); -+ vfree(rtlpriv->rtlhal.wowlan_firmware); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ return 1; - } - /*load wowlan firmware*/ - pr_info("Using firmware %s\n", wowlan_fw_name); -@@ -331,6 +323,7 @@ static const struct rtl_hal_cfg rtl8821a - .bar_id = 2, - .write_readback = true, - .name = "rtl8821ae_pci", -+ .alt_fw_name = "rtlwifi/rtl8821aefw.bin", - .ops = &rtl8821ae_hal_ops, - .mod_params = &rtl8821ae_mod_params, - .maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL, diff --git a/debian/patches/bugfix/all/rtlwifi-fix-memory-leak-when-firmware-request-fails.patch b/debian/patches/bugfix/all/rtlwifi-fix-memory-leak-when-firmware-request-fails.patch deleted file mode 100644 index 54c9a6ba4..000000000 --- a/debian/patches/bugfix/all/rtlwifi-fix-memory-leak-when-firmware-request-fails.patch +++ /dev/null @@ -1,142 +0,0 @@ -From: Souptick Joarder -Date: Wed, 5 Jul 2017 19:55:06 +0530 -Subject: rtlwifi: Fix memory leak when firmware request fails -Origin: https://git.kernel.org/linus/f2764f61fa10593204b0c5e4e9a68dba02112e50 -Bug-Debian: https://bugs.debian.org/869084 - -This patch will fix memory leak when firmware request fails - -Signed-off-by: Souptick Joarder -Acked-by: Larry Finger -Signed-off-by: Kalle Valo ---- - drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c | 4 ++++ - drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 2 ++ - drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c | 6 ++++++ - 9 files changed, 24 insertions(+) - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c -@@ -175,6 +175,8 @@ int rtl88e_init_sw_vars(struct ieee80211 - rtl_fw_cb); - if (err) { - pr_info("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c -@@ -176,6 +176,8 @@ int rtl92c_init_sw_vars(struct ieee80211 - rtl_fw_cb); - if (err) { - pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c -@@ -85,6 +85,10 @@ static int rtl92cu_init_sw_vars(struct i - err = request_firmware_nowait(THIS_MODULE, 1, - fw_name, rtlpriv->io.dev, - GFP_KERNEL, hw, rtl_fw_cb); -+ if (err) { -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; -+ } - return err; - } - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c -@@ -183,6 +183,8 @@ static int rtl92d_init_sw_vars(struct ie - rtl_fw_cb); - if (err) { - pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c -@@ -177,6 +177,8 @@ int rtl92ee_init_sw_vars(struct ieee8021 - rtl_fw_cb); - if (err) { - pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c -@@ -215,6 +215,8 @@ static int rtl92s_init_sw_vars(struct ie - rtl92se_fw_cb); - if (err) { - pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c -@@ -184,6 +184,8 @@ int rtl8723e_init_sw_vars(struct ieee802 - rtl_fw_cb); - if (err) { - pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - return 0; ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c -@@ -195,6 +195,8 @@ int rtl8723be_init_sw_vars(struct ieee80 - rtl_fw_cb); - if (err) { - pr_err("Failed to request firmware!\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - } ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c -@@ -196,6 +196,8 @@ int rtl8821ae_init_sw_vars(struct ieee80 - rtlpriv->rtlhal.wowlan_firmware = vzalloc(0x8000); - if (!rtlpriv->rtlhal.wowlan_firmware) { - pr_err("Can't alloc buffer for wowlan fw.\n"); -+ vfree(rtlpriv->rtlhal.pfirmware); -+ rtlpriv->rtlhal.pfirmware = NULL; - return 1; - } - -@@ -222,6 +224,8 @@ int rtl8821ae_init_sw_vars(struct ieee80 - rtl_fw_cb); - if (err) { - pr_err("Failed to request normal firmware!\n"); -+ vfree(rtlpriv->rtlhal.wowlan_firmware); -+ vfree(rtlpriv->rtlhal.pfirmware); - return 1; - } - } -@@ -233,6 +237,8 @@ int rtl8821ae_init_sw_vars(struct ieee80 - rtl_wowlan_fw_cb); - if (err) { - pr_err("Failed to request wowlan firmware!\n"); -+ vfree(rtlpriv->rtlhal.wowlan_firmware); -+ vfree(rtlpriv->rtlhal.pfirmware); - return 1; - } - return 0; diff --git a/debian/patches/series b/debian/patches/series index 2adbf115f..36d09d31a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -82,8 +82,6 @@ bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch bugfix/all/kbuild-do-not-use-hyphen-in-exported-variable-name.patch bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch -bugfix/all/rtlwifi-fix-memory-leak-when-firmware-request-fails.patch -bugfix/all/rtlwifi-fix-fallback-firmware-loading.patch bugfix/all/bfq-re-enable-auto-loading-when-built-as-a-module.patch bugfix/all/mtd-nandsim-remove-debugfs-entries-in-error-path.patch