Package: broadcom-sta-dkms
Version: 6.30.223.248-3
Severity: serious
Tags: upstream patch
Justification: fails to build from source

Dear Maintainer,

Kernel function cfg80211_inform_bss() parameter changed since version 3.17,
so broadcam-sta-dkms failed to compile.


-- System Information:
Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'unstable'), (500, 'testing'), 
(1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.18.0-trunk-amd64 (SMP w/4 CPU cores)
Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages broadcom-sta-dkms depends on:
ii  dkms  2.2.0.3-2

Versions of packages broadcom-sta-dkms recommends:
ii  wireless-tools  30~pre9-8

broadcom-sta-dkms suggests no packages.

-- no debconf information
--- src/wl/sys/wl_cfg80211_hybrid.c.orig	2015-01-17 01:00:36.404277763 +0800
+++ src/wl/sys/wl_cfg80211_hybrid.c	2015-01-17 01:04:16.448287711 +0800
@@ -1939,6 +1939,9 @@
 	struct beacon_proberesp *beacon_proberesp;
 	struct cfg80211_bss *cbss = NULL;
 	s32 mgmt_type;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	enum cfg80211_bss_frame_type bss_frame_type = CFG80211_BSS_FTYPE_UNKNOWN;
+#endif
 	u32 signal;
 	u32 freq;
 	s32 err = 0;
@@ -1961,6 +1964,9 @@
 	notif_bss_info->rssi = bi->RSSI;
 	memcpy(mgmt->bssid, &bi->BSSID, ETHER_ADDR_LEN);
 	mgmt_type = wl->active_scan ?	IEEE80211_STYPE_PROBE_RESP : IEEE80211_STYPE_BEACON;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	bss_frame_type = wl->active_scan ? CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON;
+#endif
 	if (!memcmp(bi->SSID, sr->ssid.SSID, bi->SSID_len)) {
 		mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | mgmt_type);
 	}
@@ -2010,9 +2016,15 @@
 
 	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, 17, 0)
+	cbss = cfg80211_inform_bss(wiphy, channel, bss_frame_type, (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, (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;
--- src/wl/sys/wl_cfg80211_hybrid.c.orig	2015-01-17 01:00:36.404277763 +0800
+++ src/wl/sys/wl_cfg80211_hybrid.c	2015-01-17 01:04:16.448287711 +0800
@@ -1939,6 +1939,9 @@
 	struct beacon_proberesp *beacon_proberesp;
 	struct cfg80211_bss *cbss = NULL;
 	s32 mgmt_type;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	enum cfg80211_bss_frame_type bss_frame_type = CFG80211_BSS_FTYPE_UNKNOWN;
+#endif
 	u32 signal;
 	u32 freq;
 	s32 err = 0;
@@ -1961,6 +1964,9 @@
 	notif_bss_info->rssi = bi->RSSI;
 	memcpy(mgmt->bssid, &bi->BSSID, ETHER_ADDR_LEN);
 	mgmt_type = wl->active_scan ?	IEEE80211_STYPE_PROBE_RESP : IEEE80211_STYPE_BEACON;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	bss_frame_type = wl->active_scan ? CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON;
+#endif
 	if (!memcmp(bi->SSID, sr->ssid.SSID, bi->SSID_len)) {
 		mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | mgmt_type);
 	}
@@ -2010,9 +2016,15 @@
 
 	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, 17, 0)
+	cbss = cfg80211_inform_bss(wiphy, channel, bss_frame_type, (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, (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;
--- src/wl/sys/wl_cfg80211_hybrid.c.orig	2015-01-17 01:00:36.404277763 +0800
+++ src/wl/sys/wl_cfg80211_hybrid.c	2015-01-17 01:04:16.448287711 +0800
@@ -1939,6 +1939,9 @@
 	struct beacon_proberesp *beacon_proberesp;
 	struct cfg80211_bss *cbss = NULL;
 	s32 mgmt_type;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	enum cfg80211_bss_frame_type bss_frame_type = CFG80211_BSS_FTYPE_UNKNOWN;
+#endif
 	u32 signal;
 	u32 freq;
 	s32 err = 0;
@@ -1961,6 +1964,9 @@
 	notif_bss_info->rssi = bi->RSSI;
 	memcpy(mgmt->bssid, &bi->BSSID, ETHER_ADDR_LEN);
 	mgmt_type = wl->active_scan ?	IEEE80211_STYPE_PROBE_RESP : IEEE80211_STYPE_BEACON;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	bss_frame_type = wl->active_scan ? CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON;
+#endif
 	if (!memcmp(bi->SSID, sr->ssid.SSID, bi->SSID_len)) {
 		mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | mgmt_type);
 	}
@@ -2010,9 +2016,15 @@
 
 	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, 17, 0)
+	cbss = cfg80211_inform_bss(wiphy, channel, bss_frame_type, (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, (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;
--- src/wl/sys/wl_cfg80211_hybrid.c.orig	2015-01-17 01:00:36.404277763 +0800
+++ src/wl/sys/wl_cfg80211_hybrid.c	2015-01-17 01:04:16.448287711 +0800
@@ -1939,6 +1939,9 @@
 	struct beacon_proberesp *beacon_proberesp;
 	struct cfg80211_bss *cbss = NULL;
 	s32 mgmt_type;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	enum cfg80211_bss_frame_type bss_frame_type = CFG80211_BSS_FTYPE_UNKNOWN;
+#endif
 	u32 signal;
 	u32 freq;
 	s32 err = 0;
@@ -1961,6 +1964,9 @@
 	notif_bss_info->rssi = bi->RSSI;
 	memcpy(mgmt->bssid, &bi->BSSID, ETHER_ADDR_LEN);
 	mgmt_type = wl->active_scan ?	IEEE80211_STYPE_PROBE_RESP : IEEE80211_STYPE_BEACON;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
+	bss_frame_type = wl->active_scan ? CFG80211_BSS_FTYPE_PRESP : CFG80211_BSS_FTYPE_BEACON;
+#endif
 	if (!memcmp(bi->SSID, sr->ssid.SSID, bi->SSID_len)) {
 		mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | mgmt_type);
 	}
@@ -2010,9 +2016,15 @@
 
 	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, 17, 0)
+	cbss = cfg80211_inform_bss(wiphy, channel, bss_frame_type, (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, (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;

Reply via email to