From: Greg Kroah-Hartman Date: Mon, 29 Jul 2024 11:03:45 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v6.1.103~75 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=668ae338c3ff9a9a5aa22e780c37c5633c150776;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: leds-ss4200-convert-pcibios_-return-codes-to-errnos.patch wifi-mwifiex-fix-interface-type-change.patch --- diff --git a/queue-4.19/leds-ss4200-convert-pcibios_-return-codes-to-errnos.patch b/queue-4.19/leds-ss4200-convert-pcibios_-return-codes-to-errnos.patch new file mode 100644 index 00000000000..5ea2ceb9795 --- /dev/null +++ b/queue-4.19/leds-ss4200-convert-pcibios_-return-codes-to-errnos.patch @@ -0,0 +1,55 @@ +From ce068e83976140badb19c7f1307926b4b562fac4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= +Date: Mon, 27 May 2024 16:27:00 +0300 +Subject: leds: ss4200: Convert PCIBIOS_* return codes to errnos +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Ilpo Järvinen + +commit ce068e83976140badb19c7f1307926b4b562fac4 upstream. + +ich7_lpc_probe() uses pci_read_config_dword() that returns PCIBIOS_* +codes. The error handling code assumes incorrectly it's a normal errno +and checks for < 0. The return code is returned from the probe function +as is but probe functions should return normal errnos. + +Remove < 0 from the check and convert PCIBIOS_* returns code using +pcibios_err_to_errno() into normal errno before returning it. + +Fixes: a328e95b82c1 ("leds: LED driver for Intel NAS SS4200 series (v5)") +Cc: +Signed-off-by: Ilpo Järvinen +Link: https://lore.kernel.org/r/20240527132700.14260-1-ilpo.jarvinen@linux.intel.com +Signed-off-by: Lee Jones +Signed-off-by: Greg Kroah-Hartman +--- + drivers/leds/leds-ss4200.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/drivers/leds/leds-ss4200.c ++++ b/drivers/leds/leds-ss4200.c +@@ -368,8 +368,10 @@ static int ich7_lpc_probe(struct pci_dev + + nas_gpio_pci_dev = dev; + status = pci_read_config_dword(dev, PMBASE, &g_pm_io_base); +- if (status) ++ if (status) { ++ status = pcibios_err_to_errno(status); + goto out; ++ } + g_pm_io_base &= 0x00000ff80; + + status = pci_read_config_dword(dev, GPIO_CTRL, &gc); +@@ -381,8 +383,9 @@ static int ich7_lpc_probe(struct pci_dev + } + + status = pci_read_config_dword(dev, GPIO_BASE, &nas_gpio_io_base); +- if (0 > status) { ++ if (status) { + dev_info(&dev->dev, "Unable to read GPIOBASE.\n"); ++ status = pcibios_err_to_errno(status); + goto out; + } + dev_dbg(&dev->dev, ": GPIOBASE = 0x%08x\n", nas_gpio_io_base); diff --git a/queue-4.19/series b/queue-4.19/series index 8de79130e2a..4ec9fcd8ea5 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -71,3 +71,5 @@ drm-gma500-fix-null-pointer-dereference-in-psb_intel_lvds_get_modes.patch m68k-amiga-turn-off-warp1260-interrupts-during-boot.patch ext4-check-dot-and-dotdot-of-dx_root-before-making-dir-indexed.patch ext4-make-sure-the-first-directory-block-is-not-a-hole.patch +wifi-mwifiex-fix-interface-type-change.patch +leds-ss4200-convert-pcibios_-return-codes-to-errnos.patch diff --git a/queue-4.19/wifi-mwifiex-fix-interface-type-change.patch b/queue-4.19/wifi-mwifiex-fix-interface-type-change.patch new file mode 100644 index 00000000000..9206d273ccf --- /dev/null +++ b/queue-4.19/wifi-mwifiex-fix-interface-type-change.patch @@ -0,0 +1,40 @@ +From a17b9f590f6ec2b9f1b12b1db3bf1d181de6b272 Mon Sep 17 00:00:00 2001 +From: Rafael Beims +Date: Fri, 10 May 2024 13:04:58 +0200 +Subject: wifi: mwifiex: Fix interface type change + +From: Rafael Beims + +commit a17b9f590f6ec2b9f1b12b1db3bf1d181de6b272 upstream. + +When changing the interface type we also need to update the bss_num, the +driver private data is searched based on a unique (bss_type, bss_num) +tuple, therefore every time bss_type changes, bss_num must also change. + +This fixes for example an issue in which, after the mode changed, a +wireless scan on the changed interface would not finish, leading to +repeated -EBUSY messages to userspace when other scan requests were +sent. + +Fixes: c606008b7062 ("mwifiex: Properly initialize private structure on interface type changes") +Cc: stable@vger.kernel.org +Signed-off-by: Rafael Beims +Signed-off-by: Francesco Dolcini +Signed-off-by: Kalle Valo +Link: https://msgid.link/20240510110458.15475-1-francesco@dolcini.it +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/marvell/mwifiex/cfg80211.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c ++++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c +@@ -934,6 +934,8 @@ mwifiex_init_new_priv_params(struct mwif + return -EOPNOTSUPP; + } + ++ priv->bss_num = mwifiex_get_unused_bss_num(adapter, priv->bss_type); ++ + spin_lock_irqsave(&adapter->main_proc_lock, flags); + adapter->main_locked = false; + spin_unlock_irqrestore(&adapter->main_proc_lock, flags);