On Wed, 29 Apr 2015 16:44:14 +0200 Bruno Bierbaumer <l...@bierbaumer.net> wrote:
> Hello!
> I would say it fits in here, because the problem first appears with
> Linux 3.18 and the bug is about supporting Linux 3.18+.
> Fixing a bug that we know of as we go also sounds like a good idea.
> Also just my opinion.

Ok, as announced, I added the missing patch. Updated diff file attached,
just uploaded to 2-day DELAYED queue.

Regards,
Eduard.
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/changelog broadcom-sta_6.30.223.248-3.2.debian/debian/changelog
--- broadcom-sta_6.30.223.248-3.debian/debian/changelog	2014-12-07 15:07:56.000000000 +0100
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/changelog	2015-05-06 21:29:54.000000000 +0200
@@ -1,3 +1,21 @@
+broadcom-sta (6.30.223.248-3.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Added broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch to
+    prevent potential problems with recent kernels (closes: #773713)
+
+ -- Eduard Bloch <bl...@debian.org>  Wed, 06 May 2015 21:22:40 +0200
+
+broadcom-sta (6.30.223.248-3.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Added Canonical patches to support Linux kernel versions up to 4.0.0
+    (closes: #773713)
+  * Set some variables right for kernel-package/module-assistant usage, 
+    to build correctly against headers without having to boot that kernel
+
+ -- Eduard Bloch <bl...@debian.org>  Wed, 29 Apr 2015 11:50:17 +0200
+
 broadcom-sta (6.30.223.248-3) unstable; urgency=medium
 
   * Synced supported chipsets list with README.txt file (Closes: #762954).
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/patches/10-0015-add-support-for-Linux-3.18.patch broadcom-sta_6.30.223.248-3.2.debian/debian/patches/10-0015-add-support-for-Linux-3.18.patch
--- broadcom-sta_6.30.223.248-3.debian/debian/patches/10-0015-add-support-for-Linux-3.18.patch	1970-01-01 01:00:00.000000000 +0100
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/patches/10-0015-add-support-for-Linux-3.18.patch	2015-04-29 11:57:53.000000000 +0200
@@ -0,0 +1,38 @@
+From 8b6f3f87c81fa35eef24831e9a93eff1e6e1444f Mon Sep 17 00:00:00 2001
+From: Alberto Milone <alberto.mil...@canonical.com>
+Date: Mon, 10 Nov 2014 09:22:09 +0100
+Subject: [PATCH 1/1] Update cfg80211_inform_bss() to use
+ CFG80211_BSS_FTYPE_UNKNOWN
+
+This is only necessary with Linux >= 3.18.
+Modified by Eduard Bloch <bl...@debian.org> to align with Debian package broadcom-sta patches.
+
+Original author: Krzysztof Kolasa
+Original Source: https://raw.githubusercontent.com/kolasa/bcmwl-6.30.223.248/master/patches/0015-CFG80211_BSS_FTYPE_UNKNOWN-linux-3.18.0.patch
+---
+ src/wl/sys/wl_cfg80211_hybrid.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index ea0726f..ee0d3a0 100644
+--- a/amd64/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/amd64/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -2010,9 +2010,15 @@ static s32 wl_inform_single_bss(struct wl_cfg80211_priv *wl, struct wl_bss_info
+ 
+ 	notify_ie = (u8 *)bi + le16_to_cpu(bi->ie_offset);
+ 	notify_ielen = le32_to_cpu(bi->ie_length);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0)
+ 	cbss = cfg80211_inform_bss(wiphy, channel, (const u8 *)(bi->BSSID.octet),
+ 		0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
+ 		(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
++#else
++	cbss = cfg80211_inform_bss(wiphy, channel, CFG80211_BSS_FTYPE_UNKNOWN, (const u8 *)(bi->BSSID.octet),
++		0, beacon_proberesp->capab_info, beacon_proberesp->beacon_int,
++		(const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
++#endif
+ 
+ 	if (unlikely(!cbss))
+ 		return -ENOMEM;
+-- 
+1.9.1
+
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/patches/11-0016-repair-make-warnings.patch broadcom-sta_6.30.223.248-3.2.debian/debian/patches/11-0016-repair-make-warnings.patch
--- broadcom-sta_6.30.223.248-3.debian/debian/patches/11-0016-repair-make-warnings.patch	1970-01-01 01:00:00.000000000 +0100
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/patches/11-0016-repair-make-warnings.patch	2015-04-29 11:58:30.000000000 +0200
@@ -0,0 +1,59 @@
+From 92fc12028553831a87cfa87ffa8d676ab0f60522 Mon Sep 17 00:00:00 2001
+From: Simon Eisenmann <si...@longsleep.org>
+Date: Sat, 14 Mar 2015 15:02:08 +0100
+Subject: [PATCH] Repair make warnings
+
+Modified by Eduard Bloch <bl...@debian.org> to align with Debian package broadcom-sta patches.
+
+Orginal author: Krzysztof Kolasa
+Source: https://raw.githubusercontent.com/kolasa/bcmwl-6.30.223.248/9fafc1faa6dc410bf8aba340a7929f404c73d30e/patches/0016-repair-make-warnings.patch
+---
+ src/wl/sys/wl_cfg80211_hybrid.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index ea0726f..b265e25 100644
+--- a/amd64/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/amd64/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -63,8 +63,13 @@ static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed);
+ static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev,
+            struct cfg80211_ibss_params *params);
+ static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
+ static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
+            struct net_device *dev, u8 *mac, struct station_info *sinfo);
++#else
++static s32 wl_cfg80211_get_station(struct wiphy *wiphy,
++           struct net_device *dev, const u8 *mac, struct station_info *sinfo);
++#endif
+ static s32 wl_cfg80211_set_power_mgmt(struct wiphy *wiphy,
+            struct net_device *dev, bool enabled, s32 timeout);
+ static int wl_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
+@@ -1387,7 +1392,7 @@ wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
+ 	key_endian_to_host(&key);
+ 
+ 	params.key_len = (u8) min_t(u8, DOT11_MAX_KEY_SIZE, key.len);
+-	memcpy(params.key, key.data, params.key_len);
++	memcpy((char *)params.key, key.data, params.key_len);
+ 
+ 	if ((err = wl_dev_ioctl(dev, WLC_GET_WSEC, &wsec, sizeof(wsec)))) {
+ 		return err;
+@@ -1421,9 +1426,15 @@ wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev,
+ 	return err;
+ }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
+ static s32
+ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
+                         u8 *mac, struct station_info *sinfo)
++#else
++static s32
++wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
++                        const u8 *mac, struct station_info *sinfo)
++#endif
+ {
+ 	struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy);
+ 	scb_val_t scb_val;
+-- 
+2.1.0
+
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/patches/12-0017-add-support-for-Linux-4.0.patch broadcom-sta_6.30.223.248-3.2.debian/debian/patches/12-0017-add-support-for-Linux-4.0.patch
--- broadcom-sta_6.30.223.248-3.debian/debian/patches/12-0017-add-support-for-Linux-4.0.patch	1970-01-01 01:00:00.000000000 +0100
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/patches/12-0017-add-support-for-Linux-4.0.patch	2015-04-29 11:59:24.000000000 +0200
@@ -0,0 +1,42 @@
+From a97b0a39f016589e38706d7d32f902847dcbbf27 Mon Sep 17 00:00:00 2001
+From: Simon Eisenmann <si...@longsleep.org>
+Date: Sat, 14 Mar 2015 15:10:48 +0100
+Subject: [PATCH] Add support for Linux 4.0
+
+Modified by Eduard Bloch <bl...@debian.org> to align with Debian package broadcom-sta patches.
+
+---
+ src/wl/sys/wl_cfg80211_hybrid.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c
+index b265e25..425c7c5 100644
+--- a/amd64/src/wl/sys/wl_cfg80211_hybrid.c
++++ b/amd64/src/wl/sys/wl_cfg80211_hybrid.c
+@@ -1452,7 +1452,11 @@ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
+ 		WL_DBG(("Could not get rate (%d)\n", err));
+ 	} else {
+ 		rate = dtoh32(rate);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ 		sinfo->filled |= STATION_INFO_TX_BITRATE;
++#else
++		sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE);
++#endif
+ 		sinfo->txrate.legacy = rate * 5;
+ 		WL_DBG(("Rate %d Mbps\n", (rate / 2)));
+ 	}
+@@ -1465,7 +1469,11 @@ wl_cfg80211_get_station(struct wiphy *wiphy, struct net_device *dev,
+ 			return err;
+ 		}
+ 		rssi = dtoh32(scb_val.val);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0)
+ 		sinfo->filled |= STATION_INFO_SIGNAL;
++#else
++		sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL);
++#endif
+ 		sinfo->signal = rssi;
+ 		WL_DBG(("RSSI %d dBm\n", rssi));
+ 	}
+-- 
+2.1.0
+
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/patches/13-broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch broadcom-sta_6.30.223.248-3.2.debian/debian/patches/13-broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch
--- broadcom-sta_6.30.223.248-3.debian/debian/patches/13-broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch	1970-01-01 01:00:00.000000000 +0100
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/patches/13-broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch	2015-05-06 21:28:57.000000000 +0200
@@ -0,0 +1,19 @@
+From: Hugo Osvaldo Barrera <h...@barrera.io>
+
+Downloaded from https://gist.github.com/hobarrera/ac0e6225210ac5bb13f6#file-broadcom-sta-6-30-223-248-linux-3-18-null-pointer-crash-patch
+
+--
+Index: broadcom-sta-6.30.223.248/amd64/src/wl/sys/wl_linux.c
+===================================================================
+--- broadcom-sta-6.30.223.248.orig/amd64/src/wl/sys/wl_linux.c
++++ broadcom-sta-6.30.223.248/amd64/src/wl/sys/wl_linux.c
+@@ -2159,8 +2159,8 @@ wl_start(struct sk_buff *skb, struct net
+ 	wlif = WL_DEV_IF(dev);
+ 	wl = WL_INFO(dev);
+ 
++	skb->prev = NULL;
+ 	if (WL_ALL_PASSIVE_ENAB(wl) || (WL_RTR() && WL_CONFIG_SMP())) {
+-		skb->prev = NULL;
+ 
+ 		TXQ_LOCK(wl);
+ 
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/patches/series broadcom-sta_6.30.223.248-3.2.debian/debian/patches/series
--- broadcom-sta_6.30.223.248-3.debian/debian/patches/series	2014-12-07 14:18:59.000000000 +0100
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/patches/series	2015-05-06 21:25:29.000000000 +0200
@@ -8,3 +8,7 @@
 07-fix_procfs_handling.patch
 08-enable_error_traces.patch
 09-fix_system_hang_when_deleting_monitor.patch
+10-0015-add-support-for-Linux-3.18.patch
+11-0016-repair-make-warnings.patch
+12-0017-add-support-for-Linux-4.0.patch
+13-broadcom-sta-6.30.223.248-linux-3.18-null-pointer-crash.patch
diff -Nurd broadcom-sta_6.30.223.248-3.debian/debian/rules.modules broadcom-sta_6.30.223.248-3.2.debian/debian/rules.modules
--- broadcom-sta_6.30.223.248-3.debian/debian/rules.modules	2014-10-20 17:50:25.000000000 +0200
+++ broadcom-sta_6.30.223.248-3.2.debian/debian/rules.modules	2015-04-29 12:11:01.000000000 +0200
@@ -8,7 +8,7 @@
 
 kdist_clean: prep-deb-files
 	dh_clean
-	$(MAKE) clean KBUILD=$(KSRC) KVER=$(KVERS)
+	$(MAKE) clean "KBUILD_DIR=$(KSRC)" "KVER=$(KVERS)"
 
 kdist_config: prep-deb-files
 
@@ -17,7 +17,7 @@
 	dh_testroot
 	dh_prep
 	# Build and install the module
-	make -C $(KSRC) M=$(CURDIR)
+	$(MAKE) "KBUILD_DIR=$(KSRC)" "KVER=$(KVERS)"
 	install -D -m 0644 wl.ko debian/$(PACKAGE)-$(KVERS)/lib/modules/$(KVERS)/kernel/drivers/net/wireless/wl.ko
 	dh_installdocs
 	dh_installchangelogs

Reply via email to