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;