diff options
author | Matt Turner <mattst88@gentoo.org> | 2015-01-27 19:40:52 +0000 |
---|---|---|
committer | Matt Turner <mattst88@gentoo.org> | 2015-01-27 19:40:52 +0000 |
commit | aa78b41a1114e188d2fea5963c4d7fe9300716e3 (patch) | |
tree | 593613da5637b5896eeed4bcbe39e004815e8e2e /net-wireless | |
parent | Update HOMEPAGE, bug 537928. (diff) | |
download | historical-aa78b41a1114e188d2fea5963c4d7fe9300716e3.tar.gz historical-aa78b41a1114e188d2fea5963c4d7fe9300716e3.tar.bz2 historical-aa78b41a1114e188d2fea5963c4d7fe9300716e3.zip |
Take over maintainership and add patches for Linux 3.18, bug 523326.
Package-Manager: portage-2.2.15/cvs/Linux x86_64
Manifest-Sign-Key: 0x974CA72A
Diffstat (limited to 'net-wireless')
6 files changed, 467 insertions, 19 deletions
diff --git a/net-wireless/broadcom-sta/ChangeLog b/net-wireless/broadcom-sta/ChangeLog index a4c3c19cfe1a..328e8ce76341 100644 --- a/net-wireless/broadcom-sta/ChangeLog +++ b/net-wireless/broadcom-sta/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for net-wireless/broadcom-sta -# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.63 2014/12/15 06:25:39 dlan Exp $ +# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/ChangeLog,v 1.64 2015/01/27 19:40:43 mattst88 Exp $ + +*broadcom-sta-6.30.223.248-r3 (27 Jan 2015) + + 27 Jan 2015; Matt Turner <mattst88@gentoo.org> + +broadcom-sta-6.30.223.248-r3.ebuild, + +files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch, + +files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch, metadata.xml: + Take over maintainership and add patches for Linux 3.18, bug 523326. *broadcom-sta-6.30.223.248-r2 (15 Dec 2014) diff --git a/net-wireless/broadcom-sta/Manifest b/net-wireless/broadcom-sta/Manifest index c9d102c30fe3..2702d4c876a3 100644 --- a/net-wireless/broadcom-sta/Manifest +++ b/net-wireless/broadcom-sta/Manifest @@ -20,6 +20,8 @@ AUX broadcom-sta-6.30.223.141-linux-recent.patch 3215 SHA256 a57e409b3ef9d7b3d63 AUX broadcom-sta-6.30.223.141-makefile.patch 497 SHA256 3f1332be115991f21b03cf50de0af212faa8083017bf8ba724f110c602005060 SHA512 f403669dede71f3c9f2886bfa535518a9e89a4398d1da7789ff955f15c493dd5ede1f304b0980c300c580ac1ae2464a4e395fb40b72dffa98a5a015c3e7d74c5 WHIRLPOOL 9bad191388f78608d1cc7f13488dcf9dbcfe626a6522af3bf477aa46a2e7736921d48ab78750fa2e3b3aff10cd353a12a7a331b159988d263e5fd3fdb4b2a77f AUX broadcom-sta-6.30.223.248-linux-3.17.patch 955 SHA256 1edab90c3e4653e106461302248c38b69e6a5540bc9dd73c6954e2ee5e2a1cc7 SHA512 7cf1bf61cc2dd8c7432d2bfcf551897da19d3667b24d75823d4f2792712ba6e6bd91ee21501fc2c0aa77361187eb69bfcc2e7723e6abc09441316a61b0a860ef WHIRLPOOL a930610bb1b889fd479dc35a1c516acfed36005b0c7540cb393f8b72406077c700c8bca01c857e6b98e2b199a37800c2e4f492652107adb12e907a6504ebdea3 AUX broadcom-sta-6.30.223.248-linux-3.18.patch 1167 SHA256 f9ba1c302fcb2b918ca0386917cbab9f3f8fe80c854fbe378edd4acad46d7b74 SHA512 5dc446d5c89e22283f85fe4fd1443aa926916304dcb87eb2127d3092b77c3d0f502bb0d70c3d23c185ee7680338b9586bdd5f02ce34bc5655a12de87dacfb7e4 WHIRLPOOL 81b9165cb226a26214dd33d81e447db074406fc17645f803b45fe08171a99789c4f0d294366c93e659720edcc3307bb5260a395d4624682412a8499c8c45950a +AUX broadcom-sta-6.30.223.248-r3-Wno-date-time.patch 380 SHA256 b07ce80f2e079cce08c8ec006dda091f6f73f158c8a62df5bac2fbabb6989849 SHA512 f1f96ac2b51be18bfdc4c3d627801cb14d024def92416434c3c0a9adb986e846f9ceb6087b5ab343d78ed87a3dda277818cb060534b44be62bf8f123bc6594fd WHIRLPOOL e88dd2f0f08be2d0e61009f387c34bf9e1ba8d9a26817aa8697c4a2f89b4cbe8411d6960917953d2549c37590cbc5ceafda45780bece818854420bbc4984d11f +AUX broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch 10808 SHA256 aa01ee80cd9e7a212500a5f970064132f7df1a7db43269db0306019d4d7be6ca SHA512 e3401a2785cf0ebcaaf0c0f33bab4209ced45f8970dffeed5f5dfa3e19106b02e7d02317a2214042236fe72192b50418386204a486da46e43f604136c20257f2 WHIRLPOOL f1d8ca7e5cb8f5bf557ade96661ba9a2de6000da78737be52f358f14419daec2f43e3de7e9f0d95bd3a67b27fb0d29aaa080edffaa377d419ad4c0f3646686e0 AUX broadcom-sta-6.30.223.30-linux-3.10.0.patch 2916 SHA256 ae3006413c98516ca70c2e15610b4cd0a892bcd0813d019bc87816060415bdf8 SHA512 a57a75a83b0e8cbb1bcb0ecc99830a3e01d24ed89a55e44aeb8d8e5c45d958518374c42c2377be0964258232cdd9bb91516b4c9741bdf633870798ee52ca550d WHIRLPOOL dc34ad9a01823b620e38298841c6a85adfb24dc06adee1dd77419dd216509c58eba07d40a74c301806727b6f5ebd224effe6e463f22a727f5c61eb99268499ab AUX broadcom-sta-6.30.223.30-linux-3.9.0.patch 397 SHA256 d000f4d30a816368ad040f2271e019c8116c687d65999267b91d91eb73c63016 SHA512 600ea6d99096c4eba38ff29bdcff0c334bb4d6c6c98613a824d8fffc878992db9219d131e3bf1fe5c93f272df850f13b1d14b41a3402083733d337a882f01834 WHIRLPOOL 41d7b189840a7b68d5132388b8909438933d31803dd5bfa0abd61057636dd037c58865df4140ba76a73f32089f221ea5f6f5f3ba60f6047145551511892edb60 AUX broadcom-sta-6.30.223.30-makefile.patch 497 SHA256 3f1332be115991f21b03cf50de0af212faa8083017bf8ba724f110c602005060 SHA512 f403669dede71f3c9f2886bfa535518a9e89a4398d1da7789ff955f15c493dd5ede1f304b0980c300c580ac1ae2464a4e395fb40b72dffa98a5a015c3e7d74c5 WHIRLPOOL 9bad191388f78608d1cc7f13488dcf9dbcfe626a6522af3bf477aa46a2e7736921d48ab78750fa2e3b3aff10cd353a12a7a331b159988d263e5fd3fdb4b2a77f @@ -35,23 +37,24 @@ EBUILD broadcom-sta-6.30.223.141-r2.ebuild 2599 SHA256 37a8a947496997bc14368c220 EBUILD broadcom-sta-6.30.223.141.ebuild 2723 SHA256 7db93e60885da6d38fe0252e2d5fa90f392130ffb3c9d403341a3dd5d1daba43 SHA512 8df8c3194986bc2c3dc85f14b6d5532004cfc3f57b2ec70c20a4d6a99fddccd4a46b86e766a3f957b7fd3ef0db246d9742ecb3e7c69748e11b05e7f01f2dd331 WHIRLPOOL 3c9761753496fef23f81d2a73113faa2620d828e66c7d6e7b35096c61c5e6de310afcaca0747ce9da77dda98fb0a084a9e178e878515f6c36cfa983575710649 EBUILD broadcom-sta-6.30.223.248-r1.ebuild 2865 SHA256 37ccc43cb1db2629305396d651b3a1ef6cb69dc70fe71c5509b10ac92e4171c4 SHA512 04ceda8f10b56a840930d722c7b75ba6a60ba753b4e4f8d59f8aeb44b4f2fdf439f4c014cb1d38223a58eb5cb286a06ff2d5dca4c9709b94929761984d416de4 WHIRLPOOL 9266b35a8cfab8f1c05e7e3aed95e139869f826e699865171ab408b00b2326d2fe4e536bc3b706acc29a87764b74e8954a97a8d691dfefb709ed578b63445d82 EBUILD broadcom-sta-6.30.223.248-r2.ebuild 2973 SHA256 e39bde563942bae4024c5fcce12738177c9388c0428da16fc5ef5281f70f1fa1 SHA512 1249555d7b900062bedc8df333cec68c2f193d6e719693a918535211765b1f3e7a6a895461cdec3a6b5e133c2305b7907c0f2a17cf116b10337207e76c5464a6 WHIRLPOOL b82405a802679c5d6c68d7b2afb8616a79724e8f734867b879ef0bf064b60bc1dee595eab5c0d0376744ee9591824675cda6586fc6191771e4537d744cbb2ece +EBUILD broadcom-sta-6.30.223.248-r3.ebuild 2937 SHA256 6015631a023065df3b879eb6bec2eb29f6995ab07de4bc35a1a52d99fa74a179 SHA512 aeb0a2bae9bf248e0eeaf6baf8affede5e919f97acd802922bc8b9307f943234a76b31713b588022adfd44de15ab02c3f728f6f1b3a2f98575c2854e4f09bd5a WHIRLPOOL 7cd37d507e0f35155786c0dbc9a6b5fc8662b2568e1ed19aedf5ac74da2f952a4eed255e061921c314d4df30b7e224d6891296bf22b2e675853e13c0244aae20 EBUILD broadcom-sta-6.30.223.30-r2.ebuild 3186 SHA256 b65c754b6a6fd30f31dbdaeb522abcee215b74135e91c8f1fd4d92d5b017ec1f SHA512 da2582731c379c54a2ddb95bf232c6c8ba5e5c4a374d7e46c87afe31e0748e9de61841c7db1a9c8fdad5b208225b73f979c795e62d1c7a8ecb03a13bf4ab0c0a WHIRLPOOL c29ba37df7f69c078f99313bd6b1c287f0ac45282b400d09e4aec3cc6cb0f263cab67e9400c1cf69d6a808e4a5e82806e38c106296533655a11d4827ae674ca4 -MISC ChangeLog 15364 SHA256 fd101338d7fc912f0357c40518a8328bd4ccb326a27a20d6ec775463951c954a SHA512 4e6ba1fa8a0fadce16bbb060e187135bbbf41754bd2dba3caf3976b98c906b8252ba47b204419743b2816ac3d211d89ff152de1e9374386879a7dc3b7e1276d3 WHIRLPOOL e1200a3996995c147946973e041a419e624d3434c248f31c9d56b9dad068709193d2df7a813c279fc390a02197af7c3877bfaad6f5db9495aa1ed32fa534db37 -MISC metadata.xml 231 SHA256 1be6a1cf2be181172bfc3474a5815af1d8bca1e0c3b549be12b2cc6acaa7a665 SHA512 6ce376c5f35f2025d1b06b9ed0394f15011918553f5c4d46257998db2bfda39ec837d84527fdd9315c43c3dc16d2c5b9f78fdf27da4e024965a84441ab24fedc WHIRLPOOL 932d4cbd0f64b2cf8b2932576069e47149ae20a54024bb9ebfbb9ad8026413859a8299b102927fae3b708a02a98ef3d89ca1d9c09b1c840f348c85d782cd9b6b +MISC ChangeLog 15708 SHA256 21969844e4af27ee885d9b422c1180a5827d722d101d544192a56b884f44f3d6 SHA512 474af61310ef7b6fba051aac416c90c8de60b4d7fa224b030703bf490a546fe051d22ea6f65e67bfc6e3151f7d99c503f0453661f71575ccaa0cd55b12095feb WHIRLPOOL 4385d0e059d2b2e83bc0a584f32174a9135d95600dd68ebb004d51b84f72e0eb4dad30afbfd1cd044a6b3b2b6281acb3ec97fd92e7f23ee88f0875e0d661913b +MISC metadata.xml 229 SHA256 3ee13378cfc2919aa10572b97fd78fe5fd5761f35bc4eb6bc741b278c966e8c9 SHA512 193d10f9b7c1df175a14bde5312978279760049f506c64020aa7119d1c43f7c1d8f258c9c766ea869c808ac23a8c5b097b36541c30ca5e33b1fb75efda03a586 WHIRLPOOL d2880b5ed417bb012994838ecb63ecd2e44f6e50ab51428165e68057635addd5fa03c6552fef5fc1bc623084cca7219492d11d4d926a5deb2c62c770aace9da9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iQIcBAEBCAAGBQJUjn7wAAoJEJIMDbyqvv1V5YkQAK5PRji7yxDM5EkmxXzApukV -w00/VpXgy3E3y1FG1T+Qq+sJKzmm9eOiivBjrJiwuJUjMECO/9HGHCnQBybOo2GM -+Pz93Y26OyL0HvTX6M2w6gdQmaMX6gyD0oCeJBW8wD88ngwMK0U54x0TmN7FQJCs -Q8JDAx1h/o29G4x+I5FO5hZLm3t1mjbLszOUlUp+TQ5HageTjb9H0K4zYRfPtpSi -jX8GVqr2CozVX8qBu69u6ec9l+EYxuJLRNjGlz/n2rPSTw/y5Fbp8SKXYtSd++VI -sbVcZ4lZV4+yBUnHvzc3VUJ61rXQFGIX06ViY2M06r/0rXVBhHefsP6x1zOc5LmB -XsfTWR5bGvDssWewBoHsiOqs+owXIk82uucyW75ntnQBS7VvxcMI9spcjwZ8yNII -dRrWaXoCRN1tdFp57GusyzG1NAt4PJgBpT0N/Dr7VpKbVm//Sg5UGt8DkRZ2UI+c -FQXx4UTOdrf8CBraITsqqE0+AUSup9PnwRroOqoOf13jGsGxGZMncQuuhRUAKL5H -RwQm8zRC9lrBUu81g7G5RswIU6HL1Hf2nExkhTlrI+QMdJWl3FZt6jPaYRIYcA3B -/oL7IoLW4nnqNUFWMUF3ISMfIeWNYatBW95KgkoqMmOPk4fl++sPpZ5fTjM9JwfP -BEZRXmsxM2PrNyUlZdu5 -=dGrD +iQIcBAEBCAAGBQJUx+ojAAoJEA/daC2XTKcqJUkP/3caaWcTgOGZb/qIzVTVvwmb +xjMpbyfis2vD+1wM5vEZZnmfUbLjeluq2DHtnzwxL0bnecqnIGIzfIxrUF7nzYWg +/O8y9YROAouPhPytdsmBVzWGfOZPXgWX2fX5EgQr4RlcdIEGGt7PZbIOIuNwZqjl +iTX30ttZT1LYv42QvfX+lURZFw9L4JaxTNH58PmSOqTMnE4oEN15hNS8zXn+2pPR +E9TSP59iO0X2Kse+s/rVh4xZiOWQPMmR5WSXsoj2/gyUciaUt9g4bKfP3H7fU9Lc +8v7Ld5HL+EYlardjOveL8I35wgLbbGR0fkwmSbPwnEcD6IXKhgEA8gAM5Y/d1k5B +UXKT/U811SVHlo+3RBo+6K8Sh8jc54lYGbz8B419pxOERLkPfr30SPsXY4SZpR18 +PDkN1WgBrNfvxWwiYvU5tOED+COHj4NvR36u7mYdzeN7rP7BV618CmMZO6zTw7FY +rD5H+HbLzNJSIkQbooreyZQvnuQEPh9Xcp30sCDJmz7tlFLDc98bRc9dxDFyYyo/ +Ce3ed4f075Gcrl5/HJofZs1bTQj/+8nPtiYDE3wlhHGg1OT6dx9u/0wdofrsns7u +Bui5Uu+JYJM04GJoGx23Nr0wZSU62xsNNGuS28crT+BbbVBxjwkk0CHYivPesW4f +8rk7HU0G6IJ4rBN/93Qp +=UdWO -----END PGP SIGNATURE----- diff --git a/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild new file mode 100644 index 000000000000..30e35d5defc8 --- /dev/null +++ b/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-wireless/broadcom-sta/broadcom-sta-6.30.223.248-r3.ebuild,v 1.1 2015/01/27 19:40:43 mattst88 Exp $ + +EAPI=5 +inherit eutils linux-info linux-mod + +DESCRIPTION="Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver" +HOMEPAGE="http://www.broadcom.com/support/802.11/linux_sta.php" +SRC_BASE="http://www.broadcom.com/docs/linux_sta/hybrid-v35" +SRC_URI="x86? ( ${SRC_BASE}-nodebug-pcoem-${PV//\./_}.tar.gz ) + amd64? ( ${SRC_BASE}_64-nodebug-pcoem-${PV//\./_}.tar.gz ) + http://www.broadcom.com/docs/linux_sta/README_${PV}.txt -> README-${P}.txt" + +LICENSE="Broadcom" +KEYWORDS="-* ~amd64 ~x86" + +RESTRICT="mirror" + +DEPEND="virtual/linux-sources" +RDEPEND="" + +S="${WORKDIR}" + +MODULE_NAMES="wl(net/wireless)" +MODULESD_WL_ALIASES=("wlan0 wl") + +pkg_setup() { + # bug #300570 + # NOTE<lxnay>: module builds correctly anyway with b43 and SSB enabled + # make checks non-fatal. The correct fix is blackisting ssb and, perhaps + # b43 via udev rules. Moreover, previous fix broke binpkgs support. + CONFIG_CHECK="~!B43 ~!BCMA ~!SSB" + CONFIG_CHECK2="LIB80211 ~!MAC80211 ~LIB80211_CRYPT_TKIP" + ERROR_B43="B43: If you insist on building this, you must blacklist it!" + ERROR_BCMA="BCMA: If you insist on building this, you must blacklist it!" + ERROR_SSB="SSB: If you insist on building this, you must blacklist it!" + ERROR_LIB80211="LIB80211: Please enable it. If you can't find it: enabling the driver for \"Intel PRO/Wireless 2100\" or \"Intel PRO/Wireless 2200BG\" (IPW2100 or IPW2200) should suffice." + ERROR_MAC80211="MAC80211: If you insist on building this, you must blacklist it!" + ERROR_PREEMPT_RCU="PREEMPT_RCU: Please do not set the Preemption Model to \"Preemptible Kernel\"; choose something else." + ERROR_LIB80211_CRYPT_TKIP="LIB80211_CRYPT_TKIP: You will need this for WPA." + if kernel_is ge 3 8 8; then + CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211 ~!PREEMPT_RCU ~!PREEMPT" + elif kernel_is ge 2 6 32; then + CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} CFG80211" + elif kernel_is ge 2 6 31; then + CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT ~!MAC80211" + elif kernel_is ge 2 6 29; then + CONFIG_CHECK="${CONFIG_CHECK} ${CONFIG_CHECK2} WIRELESS_EXT COMPAT_NET_DEV_OPS" + else + CONFIG_CHECK="${CONFIG_CHECK} IEEE80211 IEEE80211_CRYPT_TKIP" + fi + + linux-mod_pkg_setup + + BUILD_PARAMS="-C ${KV_DIR} M=${S}" + BUILD_TARGETS="wl.ko" +} + +src_prepare() { + epatch \ + "${FILESDIR}/${PN}-6.30.223.141-license.patch" \ + "${FILESDIR}/${PN}-6.30.223.141-makefile.patch" \ + "${FILESDIR}/${PN}-6.30.223.141-eth-to-wlan.patch" \ + "${FILESDIR}/${PN}-6.30.223.141-gcc.patch" \ + "${FILESDIR}/${PN}-6.30.223.248-r3-Wno-date-time.patch" \ + "${FILESDIR}/${PN}-6.30.223.248-r3-linux-3.15-3.18.patch" + + epatch_user +} + +src_install() { + linux-mod_src_install + + dodoc "${DISTDIR}/README-${P}.txt" +} diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch new file mode 100644 index 000000000000..f93e3f1d3a3f --- /dev/null +++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-Wno-date-time.patch @@ -0,0 +1,11 @@ +--- a/Makefile 2014-06-26 10:42:08.000000000 +0000 ++++ b/Makefile 2014-07-17 22:44:01.662297228 +0000 +@@ -126,6 +126,8 @@ + EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include + #EXTRA_CFLAGS += -DBCMDBG_ASSERT -DBCMDBG_ERR + ++EXTRA_CFLAGS += -Wno-date-time ++ + EXTRA_LDFLAGS := $(src)/lib/wlc_hybrid.o_shipped + + KBASE ?= /lib/modules/`uname -r` diff --git a/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch new file mode 100644 index 000000000000..7fe63199a0cb --- /dev/null +++ b/net-wireless/broadcom-sta/files/broadcom-sta-6.30.223.248-r3-linux-3.15-3.18.patch @@ -0,0 +1,350 @@ +--- a/src/wl/sys/wl_cfg80211_hybrid.c 2014-06-26 12:42:08.000000000 +0200 ++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2015-01-22 01:43:25.378920452 +0100 +@@ -63,8 +63,13 @@ + 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 @@ + 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 @@ + 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; +@@ -2010,9 +2021,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, 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; +@@ -2071,7 +2088,26 @@ + wl_get_assoc_ies(wl); + memcpy(&wl->bssid, &e->addr, ETHER_ADDR_LEN); + wl_update_bss_info(wl); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 15, 0) ++ { ++ struct wl_bss_info *bi; ++ u16 bss_info_channel; ++ struct ieee80211_channel *channel; ++ u32 freq; ++ ++ bi = (struct wl_bss_info *)(wl->extra_buf + 4); ++ bss_info_channel = bi->ctl_ch ? bi->ctl_ch : CHSPEC_CHANNEL(bi->chanspec); ++ ++ freq = ieee80211_channel_to_frequency(bss_info_channel, ++ (bss_info_channel <= CH_MAX_2G_CHANNEL) ? ++ IEEE80211_BAND_2GHZ : IEEE80211_BAND_5GHZ); ++ ++ channel = ieee80211_get_channel(wl_to_wiphy(wl), freq); ++ cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, channel, GFP_KERNEL); ++ } ++#else + cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL); ++#endif + set_bit(WL_STATUS_CONNECTED, &wl->status); + wl->profile->active = true; + } +@@ -2629,7 +2665,15 @@ + + void wl_cfg80211_detach(struct net_device *ndev) + { +- struct wl_cfg80211_priv *wl = ndev_to_wl(ndev); ++ struct wl_cfg80211_priv *wl; ++ struct wireless_dev *wdev; ++ ++ wdev = ndev->ieee80211_ptr; ++ if (wdev == NULL) { ++ printk(KERN_ERR "[%s()] in ndev=%p: IEEE80211ptr=%p\n", __FUNCTION__, ndev, wdev); ++ return; ++ } ++ wl = ndev_to_wl(ndev); + + wl_deinit_cfg80211_priv(wl); + wl_free_wdev(wl); +--- a/src/wl/sys/wl_dbg.h 2014-06-26 12:42:08.000000000 +0200 ++++ b/src/wl/sys/wl_dbg.h 2015-01-22 01:43:25.379920462 +0100 +@@ -55,10 +55,12 @@ + + #define WL_NONE(args) + ++#define FORCE_TRACE_LEVEL(fmt, ...) do { printk(KERN_ERR fmt, ## __VA_ARGS__); } while (0) /* ## is GCC specific syntax to remove comma when single arg */ ++ + #ifdef BCMDBG_ERR + #define WL_ERROR(args) WL_PRINT(args) + #else +-#define WL_ERROR(args) ++#define WL_ERROR(args) FORCE_TRACE_LEVEL args + #endif + #define WL_TRACE(args) + #define WL_APSTA_UPDN(args) +--- a/src/wl/sys/wl_linux.c 2014-06-26 12:42:08.000000000 +0200 ++++ b/src/wl/sys/wl_linux.c 2015-01-22 01:44:58.580453805 +0100 +@@ -878,7 +878,7 @@ + static SIMPLE_DEV_PM_OPS(wl_pm_ops, wl_suspend, wl_resume); + #endif + +-static struct pci_driver wl_pci_driver = { ++static struct pci_driver wl_pci_driver __refdata = { + .name = "wl", + .probe = wl_pci_probe, + .remove = __devexit_p(wl_remove), +@@ -1270,6 +1270,7 @@ + MFREE(wl->osh, wlif->dev, sizeof(struct net_device)); + #else + free_netdev(wlif->dev); ++ wlif->dev = NULL; + #endif + } + +@@ -1307,7 +1308,12 @@ + dev->priv = priv_link; + #else + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)) + dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup); ++#else ++ dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_UNKNOWN, ++ ether_setup); ++#endif + if (!dev) { + WL_ERROR(("wl%d: %s: alloc_netdev failed\n", + (wl->pub)?wl->pub->unit:wlif->subunit, __FUNCTION__)); +@@ -1651,11 +1657,7 @@ + } + + WL_LOCK(wl); +- if (!capable(CAP_NET_ADMIN)) { +- bcmerror = BCME_EPERM; +- } else { +- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); +- } ++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); + WL_UNLOCK(wl); + + done1: +@@ -2157,8 +2159,8 @@ + 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); + +@@ -2455,8 +2457,10 @@ + p80211msg_t *phdr; + + len = sizeof(p80211msg_t) + oskb->len - D11_PHY_HDR_LEN; +- if ((skb = dev_alloc_skb(len)) == NULL) ++ if ((skb = dev_alloc_skb(len)) == NULL) { ++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__)); + return; ++ } + + skb_put(skb, len); + phdr = (p80211msg_t*)skb->data; +@@ -2535,8 +2539,10 @@ + rtap_len = sizeof(wl_radiotap_ht_brcm_2_t); + + len = rtap_len + (oskb->len - D11_PHY_HDR_LEN); +- if ((skb = dev_alloc_skb(len)) == NULL) ++ if ((skb = dev_alloc_skb(len)) == NULL) { ++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__)); + return; ++ } + + skb_put(skb, len); + +@@ -2664,8 +2670,10 @@ + len += amsdu_len; + } + +- if ((skb = dev_alloc_skb(len)) == NULL) ++ if ((skb = dev_alloc_skb(len)) == NULL) { ++ WL_ERROR(("in %s:%d [%s()] dev_alloc_skb() failure!", __FILE__, __LINE__, __FUNCTION__)); + return; ++ } + + skb_put(skb, len); + +@@ -2990,7 +2998,7 @@ + } + + void +-wl_set_monitor(wl_info_t *wl, int val) ++wl_set_monitor(wl_info_t *wl, int val) /* public => is called by wlc_hybrid.o_shipped */ + { + const char *devname; + wl_if_t *wlif; +@@ -3224,42 +3232,75 @@ + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) + static int + wl_proc_read(char *buffer, char **start, off_t offset, int length, int *eof, void *data) ++{ ++ wl_info_t * wl = (wl_info_t *)data; + #else + static ssize_t +-wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *data) +-#endif ++wl_proc_read(struct file *filp, char __user *buffer, size_t length, loff_t *offp) + { +- wl_info_t * wl = (wl_info_t *)data; +- int to_user; +- int len; ++ wl_info_t * wl = PDE_DATA(file_inode(filp)); ++#endif ++ int bcmerror, len; ++ int to_user = 0; ++ char tmp[8]; + + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) + if (offset > 0) { + *eof = 1; + return 0; + } ++#else ++ if (*offp > 0) { /* for example, stop: cat /proc/brcm_monitor0 */ ++ return 0; /* 0 <=> EOF */ ++ } + #endif + +- if (!length) { +- WL_ERROR(("%s: Not enough return buf space\n", __FUNCTION__)); +- return 0; +- } + WL_LOCK(wl); +- wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL); +- len = sprintf(buffer, "%d\n", to_user); +- WL_UNLOCK(wl); +- return len; ++ bcmerror = wlc_ioctl(wl->wlc, WLC_GET_MONITOR, &to_user, sizeof(int), NULL); ++ WL_UNLOCK(wl); ++ ++ if (bcmerror != BCME_OK) { ++ WL_ERROR(("%s: GET_MONITOR failed with %d\n", __FUNCTION__, bcmerror)); ++ return -EIO; ++ } ++ ++ len = snprintf(tmp, ARRAY_SIZE(tmp), "%d\n", to_user); ++ tmp[ARRAY_SIZE(tmp) - 1] = '\0'; ++ if (len >= ARRAY_SIZE(tmp)) { ++ printk(KERN_ERR "%s:%d [%s()] output would be truncated (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len); ++ return -ERANGE; ++ } ++ else if (len < 0) { ++ printk(KERN_ERR "%s:%d [%s()] unable to convert value (ret=%d)!", __FILE__, __LINE__, __FUNCTION__, len); ++ return len; ++ } ++ if (length < len) { ++ printk(KERN_ERR "%s:%d [%s()] user buffer is too small (at least=%d ; user=%d)!", __FILE__, __LINE__, __FUNCTION__, len, (int)length); ++ return -EMSGSIZE; ++ } ++ if (copy_to_user(buffer, tmp, len) != 0) { ++ printk(KERN_ERR "%s:%d [%s()] unable to copy data!", __FILE__, __LINE__, __FUNCTION__); ++ return -EFAULT; ++ } ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) ++ *offp += len; ++#endif ++ ++ return len; + } + + #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) + static int + wl_proc_write(struct file *filp, const char *buff, unsigned long length, void *data) ++{ ++ wl_info_t * wl = (wl_info_t *)data; + #else + static ssize_t +-wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *data) +-#endif ++wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t *offp) + { +- wl_info_t * wl = (wl_info_t *)data; ++ wl_info_t * wl = PDE_DATA(file_inode(filp)); ++#endif + int from_user = 0; + int bcmerror; + +@@ -3270,7 +3311,11 @@ + } + if (copy_from_user(&from_user, buff, 1)) { + WL_ERROR(("%s: copy from user failed\n", __FUNCTION__)); +- return -EIO; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) ++ return -EIO; ++#else ++ return -EFAULT; ++#endif + } + + if (from_user >= 0x30) +@@ -3280,10 +3325,15 @@ + bcmerror = wlc_ioctl(wl->wlc, WLC_SET_MONITOR, &from_user, sizeof(int), NULL); + WL_UNLOCK(wl); + +- if (bcmerror < 0) { ++ if (bcmerror != BCME_OK) { + WL_ERROR(("%s: SET_MONITOR failed with %d\n", __FUNCTION__, bcmerror)); + return -EIO; + } ++ ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) && 0 /* no need to update offset because this file should only trigger action... */ ++ *offp += length; ++#endif ++ + return length; + } + +@@ -3304,8 +3354,8 @@ + if ((wl->proc_entry = create_proc_entry(tmp, 0644, NULL)) == NULL) { + WL_ERROR(("%s: create_proc_entry %s failed\n", __FUNCTION__, tmp)); + #else +- if ((wl->proc_entry = proc_create(tmp, 0644, NULL, &wl_fops)) == NULL) { +- WL_ERROR(("%s: proc_create %s failed\n", __FUNCTION__, tmp)); ++ if ((wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_fops, wl)) == NULL) { ++ WL_ERROR(("%s: proc_create_data %s failed\n", __FUNCTION__, tmp)); + #endif + ASSERT(0); + return -1; diff --git a/net-wireless/broadcom-sta/metadata.xml b/net-wireless/broadcom-sta/metadata.xml index 3a388868f7a8..4f3291ab14f7 100644 --- a/net-wireless/broadcom-sta/metadata.xml +++ b/net-wireless/broadcom-sta/metadata.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<herd>proxy-maintainers</herd> <maintainer> - <email>tomboy64@sina.cn</email> + <email>mattst88@gentoo.org</email> + <name>Matt Turner</name> </maintainer> </pkgmetadata> |