Package: broadcom-sta / 6.30.223.271-29

Metadata

Package Version Patches format
broadcom-sta 6.30.223.271-29 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
01 shipped module.patch | (download)

amd64/Makefile | 22 20 + 2 - 0 !
1 file changed, 20 insertions(+), 2 deletions(-)

 select wlc_hybrid.o based on the target kernel architecture

02 Parse KERNELRELEASE into VERSION PATCHLEVEL and SUBLEV.patch | (download)

amd64/Makefile | 4 4 + 0 - 0 !
i386/Makefile | 4 4 + 0 - 0 !
2 files changed, 8 insertions(+)

 parse kernelrelease into version, patchlevel, and sublevel

This fixes build error message:
====
/bin/sh: 1: [: Illegal number:
/bin/sh: 1: [: Illegal number:
Wireless Extension is the only possible API for this kernel version
Using Wireless Extension API
====

Closes: #886512

03 rename to wlan0.patch | (download)

README.txt | 8 4 + 4 - 0 !
amd64/src/wl/sys/wl_linux.c | 2 1 + 1 - 0 !
2 files changed, 5 insertions(+), 5 deletions(-)

 rename-to-wlan0

04 user_ioctl.patch | (download)

amd64/src/wl/sys/wl_linux.c | 6 1 + 5 - 0 !
1 file changed, 1 insertion(+), 5 deletions(-)

 allow normal users to send ioctl requests

05 remove time and date macros.patch | (download)

amd64/src/wl/sys/wl_linux.c | 5 2 + 3 - 0 !
1 file changed, 2 insertions(+), 3 deletions(-)

 remove __time__ and __date__ macros from code

06 broadcom sta 6.30.223.248 linux 3.18 null pointer crash.patch | (download)

amd64/src/wl/sys/wl_linux.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash

07 rdtscl.patch | (download)

amd64/src/shared/linux_osl.c | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 rdtscl

08 linux47.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 29 17 + 12 - 0 !
1 file changed, 17 insertions(+), 12 deletions(-)

 linux47

09 linux48.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 25 23 + 2 - 0 !
1 file changed, 23 insertions(+), 2 deletions(-)

 linux48

10 fix kernel warnings.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 87 60 + 27 - 0 !
1 file changed, 60 insertions(+), 27 deletions(-)

 fix-kernel-warnings

11 linux411.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 3 3 + 0 - 0 !
amd64/src/wl/sys/wl_linux.c | 2 2 + 0 - 0 !
2 files changed, 5 insertions(+)

 compile fix with kernel 4.11

12 linux412.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 29 25 + 4 - 0 !
1 file changed, 25 insertions(+), 4 deletions(-)

 linux412

13 linux414.patch | (download)

amd64/src/shared/linux_osl.c | 12 11 + 1 - 0 !
i386/src/shared/linux_osl.c | 4 4 + 0 - 0 !
2 files changed, 15 insertions(+), 1 deletion(-)

 linux414

14 linux415.patch | (download)

amd64/src/wl/sys/wl_linux.c | 28 24 + 4 - 0 !
1 file changed, 24 insertions(+), 4 deletions(-)

 linux415

15 linux51.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 4 4 + 0 - 0 !
i386/src/wl/sys/wl_cfg80211_hybrid.c | 4 4 + 0 - 0 !
2 files changed, 8 insertions(+)

 add linux 5.1+ compat fix for deprecated get_ds call

16 linux56.patch | (download)

amd64/src/shared/linux_osl.c | 6 5 + 1 - 0 !
amd64/src/wl/sys/wl_linux.c | 21 20 + 1 - 0 !
i386/src/shared/linux_osl.c | 6 5 + 1 - 0 !
i386/src/wl/sys/wl_linux.c | 21 20 + 1 - 0 !
4 files changed, 50 insertions(+), 4 deletions(-)

 [patch] add fixes for 5.6 kernel

17 Get rid of get_fs set_fs calls.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 29 2 + 27 - 0 !
amd64/src/wl/sys/wl_iw.c | 25 2 + 23 - 0 !
amd64/src/wl/sys/wl_linux.c | 40 35 + 5 - 0 !
amd64/src/wl/sys/wl_linux.h | 2 2 + 0 - 0 !
amd64/src/wl/sys/wlc_pub.h | 1 1 + 0 - 0 !
5 files changed, 42 insertions(+), 55 deletions(-)

 get rid of get_fs/set_fs calls in broadcom wl driver.

18 wl Make sure power_mgmt settings are honored.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 wl: make sure power_mgmt settings are honored

The driver does *not* respect calls to set_power_mgmt() to turn power
saving off, it sets "PM_OFF" when it is asked to turn off PM by
userspace. However, it seems that unidentified circumstances will turn
PM to PM_FAST automatically again and again, disregarding user input.

This patch uses PM_FORCE_OFF instead of PM_OFF which seems to reliably
keep PM off, no matter the circumstances.

19 wl Fix get set values for tx_power.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 26 13 + 13 - 0 !
amd64/src/wl/sys/wl_linux.c | 4 4 + 0 - 0 !
2 files changed, 17 insertions(+), 13 deletions(-)

 wl: fix get/set values for tx_power

The wl driver seems to be using an internal "qdbm" unit for the
"qtxpower" registry, where hardware power is read, and naively using
that value around the get/set cfg80211 functions.

This 'qdBm' unit is simply (dBm * 4) and defaults to "23 *4" in
`wl_linux.c`. This equivalency is confirmed in the brcmfmac kernel
driver, which seems to be a cleaned up version of this one.

This commit fixes getting and setting the txpower using regular
utilities like `iwconfig` or `iw`.

20 wl Fix mac address setting.patch | (download)

amd64/src/wl/sys/wl_linux.c | 10 6 + 4 - 0 !
1 file changed, 6 insertions(+), 4 deletions(-)

 wl: fix mac address setting

The function was returning BCM_UNSUPPORTED (-23) when the device did not
allow for mac address changes. This however corresponds to "too many
files open" so userspace was getting conflicting info on what was
happening. Example:

  $ ip link set wlp3s0 address  3c:15:c2:cf:29:dd
  RTNETLINK answers: Too many open files in system

Now the function properly returns -EADDRNOTAVAIL instead.

This fixes the popular error where NetworkManager is unable to connect
to wifi networks when wifi.scan-rand-mac-addr=yes (the default) or other
mac-addr options are in use (see the work around supplied by
wpasupplicant in /usr/lib/NetworkManager/conf.d/no-mac-addr-change.conf)

Also, the function was incorrectly changing the `net_device->dev_addr`
even when the hardware had not been able to change it.

21 wl Fix misleading indentation.patch | (download)

amd64/src/wl/sys/wl_linux.c | 20 11 + 9 - 0 !
1 file changed, 11 insertions(+), 9 deletions(-)

 wl: fix misleading indentation
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

Mixed spaces and tabs caused a misleading indentation warning.
Tidy up to suppress the warning:

src/wl/sys/wl_linux.c:788:2: warning: this if clause does not guard... [-Wmisleading-indentation]
  788 |  if ((val & 0x0000ff00) != 0)
      |  ^~
src/wl/sys/wl_linux.c:790:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the if
  790 |   bar1_size = pci_resource_len(pdev, 2);
      |   ^~~~~~~~~

22 wl Fix fall through warnings.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 wl: fix fall through warnings
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

Add a gcc special comment to solve a -Wimplicit-fallthrough warning:

src/wl/sys/wl_cfg80211_hybrid.h:52:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
   52 |  if (wl_dbg_level & WL_DBG_DBG) {   \
      |     ^
src/wl/sys/wl_cfg80211_hybrid.c:817:3: note: in expansion of macro WL_DBG
  817 |   WL_DBG(("network eap\n"));
      |   ^~~~~~
src/wl/sys/wl_cfg80211_hybrid.c:820:2: note: here
  820 |  default:
      |  ^~~~~~~

23 wl Avoid disconnecting invalid interface.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 7 4 + 3 - 0 !
1 file changed, 4 insertions(+), 3 deletions(-)

 wl: avoid disconnecting invalid interface

Mimic brcmfmac driver and don't try to call WLC_DISASSOC on an invalid
interface.

24 wl Use the right enums for cfg80211_get_bss.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 8 7 + 1 - 0 !
1 file changed, 7 insertions(+), 1 deletion(-)

 wl: use the right enums for cfg80211_get_bss


25 linux518.patch | (download)

amd64/src/shared/linux_osl.c | 21 21 + 0 - 0 !
1 file changed, 21 insertions(+)

 linux518


26 linux600.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 [patch] cfg80211_roam_info compat for mlo apis in linux >= 6.0

The 'bssid' struct field is now under 'links.bssid'.

See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=efbabc11650040c64884ff3019b88c7bcc0ceb1d

Original patch by Joan Bruguera:
https://gist.github.com/joanbm/207210d74637870c01ef5a3c262a597d

27 wl Update for linux 5.17 deprecations.patch | (download)

amd64/src/wl/sys/wl_linux.c | 20 20 + 0 - 0 !
1 file changed, 20 insertions(+)

 wl: update for linux-5.17+ deprecations

Update for various deprecated APIs.

Original SVN information:
    6.30.223.271-29: add patch for linux 5.17
    git-svn-id: file:///srv/repos/svn-community/svn@1171161 9fca08f4-af9d-4005-b8df-a31f2cc04f65
    heftig committed on 23 Mar

Co-Authored-By: Diego Escalante Urrelo <diegoe@gnome.org>
Based-on: https://raw.githubusercontent.com/archlinux/svntogit-community/master/broadcom-wl-dkms/trunk/012-linux517.patch

28 linux601.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 46 40 + 6 - 0 !
1 file changed, 40 insertions(+), 6 deletions(-)

 linux601

See: https://gitlab.archlinux.org/archlinux/packaging/packages/broadcom-wl-dkms/-/commit/1d6c1d51b78711bf383a14146fdfb4b3d08939e7.patch

29 fix version parsing.patch | (download)

amd64/Makefile | 12 7 + 5 - 0 !
1 file changed, 7 insertions(+), 5 deletions(-)

 fix detection of linuxver_wext_only

Bug-Debian: https://bugs.debian.org/1057447

- fix version parsing if there are only two numeric components (e.g. 6.7-rc1)
- set SUBLEVEL to 0 if missing
- fix version comparison logic
- -a and -o don't have well defined precedence

30 6.12 unaligned header location.patch | (download)

amd64/src/wl/sys/wl_linux.c | 4 4 + 0 - 0 !
i386/src/wl/sys/wl_linux.c | 5 5 + 0 - 0 !
2 files changed, 9 insertions(+)

 .12-unaligned-header-location


31 build Provide local lib80211.h header.patch | (download)

amd64/src/include/lib80211.h | 122 122 + 0 - 0 !
amd64/src/include/linuxver.h | 5 5 + 0 - 0 !
2 files changed, 127 insertions(+)

 build: provide local lib80211.h header

The `lib80211.h` header was moved into `libipw` in 6.13. This means
it's no longer available in standard kernel-headers.

Luckily it's a small file and the driver only uses a struct that has not
changed in ages.

This copies `lib80211.h` from the rename/remove commit below.

See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=02f220b5267042d0de649614eec84ded8aeecb4f

32 Prepare for 6.14.0 rc6.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 8 6 + 2 - 0 !
1 file changed, 6 insertions(+), 2 deletions(-)

 prepare for 6.14.0-rc6


33 wl Add explanation for IBT warnings in newer kernels.patch | (download)

amd64/src/wl/sys/wl_linux.c | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 wl: add explanation for ibt warnings in newer kernels

Because of the binary blob the driver will trigger the kernel's
"Unpatched return thunk in use" warning. We can not fix without
recompiling the blob.

Considering that this driver handles wifi cards that are mostly
attached/locked to pre-2020 CPUs, this patch adds a non-critical warning
message explaining the scary kernel traces and suggesting `ibt=off`.

Based on Andreas Beckmann <anbe@debian.org> patch and suggestion.

See: https://salsa.debian.org/nvidia-team/nvidia-graphics-drivers/-/blob/470/debian/module/debian/patches/0033-refuse-to-load-legacy-module-if-IBT-is-enabled.patch?ref_type=heads
See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084853#10
Fixes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084853

34 wl Remove redefinition warning for isprint.patch | (download)

amd64/src/wl/sys/wl_iw.h | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 wl: remove redefinition warning for isprint

This seems unused anywhere in the source, or blob.

35 wl Use kernel keyword for fallthrough.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 wl: use kernel keyword for fallthrough

The comment convention leads to false positives with the macro expansion.

36 wl Add missing braces as recommended by gcc.patch | (download)

amd64/src/wl/sys/wl_linux.c | 9 6 + 3 - 0 !
1 file changed, 6 insertions(+), 3 deletions(-)

 wl: add missing braces as recommended by gcc


37 wl Fix memcpy field spanning write warning.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 wl: fix memcpy() field-spanning write warning

Handle the following warning:
  kernel: memcpy: detected field-spanning write (size 160) of single
  field "dst" at .../src/wl/sys/wl_cfg80211_hybrid.c:3086 (size 0)

See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084853

38 build don t use deprecated EXTRA_ FLAGS.patch | (download)

amd64/Makefile | 18 9 + 9 - 0 !
i386/Makefile | 18 9 + 9 - 0 !
2 files changed, 18 insertions(+), 18 deletions(-)

 build: don't use deprecated extra_*flags

EXTRA_*FLAGS has been deprecated for a while and is then removed in
v6.15-rc1 commit e966ad0edd005 ("kbuild: remove EXTRA_*FLAGS support").

Bug-Ubuntu: https://bugs.launchpad.net/bugs/2111898
Signed-off-by: You-Sheng Yang <vicamo@gmail.com>

39 wl use timer_delete for kernel 6.15.patch | (download)

amd64/src/include/linuxver.h | 18 16 + 2 - 0 !
amd64/src/wl/sys/wl_linux.c | 2 1 + 1 - 0 !
i386/src/include/linuxver.h | 18 16 + 2 - 0 !
i386/src/wl/sys/wl_linux.c | 2 1 + 1 - 0 !
4 files changed, 34 insertions(+), 6 deletions(-)

 wl: use timer_delete for kernel >= 6.15

`del_timer{,_sync}` have been redirected to `timer_delete{,_sync}` since
v6.2-rc1 and they are now removed in v6.15-rc1 commit 8fa7292fee5c5
("treewide: Switch/rename to timer_delete[_sync]()").

Rename of del_timer_sync was backported to v6.1.83, and del_timer to
v6.1.91.

Bug-Ubuntu: https://bugs.launchpad.net/bugs/2111898
Signed-off-by: You-Sheng Yang <vicamo@gmail.com>

40 wl add MODULE_DESCRIPTION.patch | (download)

amd64/src/wl/sys/wl_linux.c | 1 1 + 0 - 0 !
i386/src/wl/sys/wl_linux.c | 1 1 + 0 - 0 !
2 files changed, 2 insertions(+)

 wl: add module_description

MODULE_DESCRIPTION is now a mandatory meta info for a module since
v6.15-rc1 commit 6c6c1fc09de35 ("modpost: require a
MODULE_DESCRIPTION()").

Bug-Ubuntu: https://bugs.launchpad.net/bugs/2111898
Signed-off-by: You-Sheng Yang <vicamo@gmail.com>

41 wl use timer_container_of for kernel 6.16.patch | (download)

amd64/src/wl/sys/wl_linux.c | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 wl: use timer_container_of for kernel >= 6.16

`from_timer` macro renamed in v6.16-rc1 commit 41cb08555c416 ("treewide,
timers: Rename from_timer() to timer_container_of()").

Bug-Ubuntu: https://bugs.launchpad.net/bugs/2114261
Signed-off-by: You-Sheng Yang <vicamo@gmail.com>

42 build dirty fix for the linking.patch | (download)

amd64/Makefile | 15 15 + 0 - 0 !
1 file changed, 15 insertions(+)

 build: dirty fix for the linking

43 wl Adapt to linux 6.17 cfg80211 changes.patch | (download)

amd64/src/wl/sys/wl_cfg80211_hybrid.c | 30 26 + 4 - 0 !
1 file changed, 26 insertions(+), 4 deletions(-)

 wl: adapt to linux-6.17 cfg80211 changes


44 wl Do not flush system wide queue.patch | (download)

amd64/src/wl/sys/wl_linux.c | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 wl: do not flush system-wide queue

New kernel warning starting in 6.17