sys-kernel/compat-drivers: add v3.8 with a sane set of patches

This commit is contained in:
Wuodan0 2013-02-16 02:52:36 +00:00
parent d2f9c2c6ef
commit 404dd32816
15 changed files with 700 additions and 2 deletions

View file

@ -1,14 +1,28 @@
AUX 3.8-grsec/00-read-only.patch 604 SHA256 1b4109d2cb389e622252738390bd56a665f968c428accd905e6debcdf9c4e679 SHA512 34bd0312909701251317dfbc2b2ebd080f8d5e3dff18e3e0c80a48dbd6697d2877fe7e8a0fa52151f76a97a05368ebb4091166e4432dcaa3ce63469c2b830441 WHIRLPOOL 590b93713ffc2e59ce04b1c7b3a34f502eec32b25f01c45f8adab91cc1621c701a38ed0136ac5d052fe93d9d5738c0facf969189721b332a058db118835908bf
AUX 3.8-grsec/01-read-only.patch 271 SHA256 f389b6d40b0c5512af8b3c024c69aed69830ca22d53403f19be0a8834ee4573c SHA512 9d2f878aeb6ebe8c3d74aa038e3fec14829ac709c2f65b9c7fe6482dd1c15432cf73a40638059ccee9350d6305989b60883903fcd0c7545ec38c1d22e006c9c2 WHIRLPOOL 111a64490618524af32c56c9631d0ff7f29ae4ebc692422df63cf6eaae0a42c06d4be7186c3049b3f3827de9535e8c0b14f6c5fecf9d956dc1e92236a053e545
AUX 3.8-grsec/02-read-only-ath.patch 8178 SHA256 2a779d9a72fdf6c26620733f2b7fd12e65cd50969e9689cf1cf48a26f6bbfad9 SHA512 288d359778430d9b84fb9c66afce8473142270646fea3dd53471b16b8b7a2ecf78c28d4dfdc27a914b2c7d2561cb5d2ac267e71f50ec315b2b984ad3b59dfec7 WHIRLPOOL 8e50052ad0dd875e086795fd787c1ab83c434ccb1c6bd2b0ff8eaef4392b9a26681a02a52c343a05fa655198d51d643ed4dd9cdd0f4f1415504219598d0fa95d
AUX 3.8-grsec/03-read-only-memory.patch 251 SHA256 927886f135b9e122a51d607d99837eef047b9fa50a4f2dfea9ee4ce6076192b1 SHA512 9f1efc869370655ffba01463d71c72f7a7e3b677f455fb4893f1e9898dd2896008da1f87b66d2803542a80fc073fcb3d94abcbf626bf7240d3235293b13e1c35 WHIRLPOOL e5dbf45e9552824a3ebb3bd96e55ec77d559b5eed8aba383b907902b7115031c7fcbdf57b94d920cb66230eb492d151f957c09a883c255c83139ca63438b2848
AUX 3.8-grsec/04-read-only-brcm80211.patch 337 SHA256 752991b5f486c0dea194be247e473e9d9d2626f3e392246d3d1da44d4864478f SHA512 494f37fc79dd1c11ab6c51d95a7521d8276f2c4d41dfcabb491c3a7d0b79ff9b2512feeef9d166da9e6297ebf2778a3f773cb52d72a325cf151f78b2e28cfb97 WHIRLPOOL 4f96dced0f32328769ddb74e74ffb6e003c68d8054331c635971658909009079ebb810839a857474dae3b5ce12e2c6d5641646462027dafad974791e0b9e5944
AUX 3.8-grsec/05-read-only-i915.patch 473 SHA256 bfb3cdf6d8793ce328b16f6808c062d72863ea40be9f3cd942a831548e3bdb22 SHA512 2ef16324332c257e326d48fce34a65f095236f518990b6fff0aa3022893d40668acce156085bf77b669629a40696db9098bb8504614bf60d2720bf78364f9a33 WHIRLPOOL 23d44a4f3b2b0937e5b0769354a8a01ab7f4c19b0c38f85bcd2715a9fdf10b5755a1a54dfcb048dcd0badca7c99321ce91bf9c7cf23a7e3bcba54b28ac472612
AUX 3.8-grsec/06-read-only-radeon.patch 1974 SHA256 7227c0ed3bdc8ce4c130b263a4ef3ed8b44db33a3961bb9ef9110a94dc8cf549 SHA512 c58cce6f8996ef3ac25d93c680db0f0ef3a555b9e9ad97a39d1e339135a7f449c039582d21d50fbe13cb0b9cd23c2a9fc1ff80143e4f681ebf3161377383f5dc WHIRLPOOL 9a6ab2740ca49b814c06dcd0a4533c1f33d4913470df7ac2884ed6f1a747b2c29b3899ad0b53190c832a307fea0cfb990e2068685b9205fd37a9d6ca3e4ae5a8
AUX 3.8-grsec/07-read-only-wl1251.patch 296 SHA256 7d89a83529b7ae522a06c0a38959515b6de72fcc9412d9fa83ce744d803c438b SHA512 54fe4cc8b8f5088aa0b27fd0cf38d8795507ead26e7c8ad96b54e2d2b9d65ed6c76f29ee3359f7dee50883138511c34a4c2e2f22384aadc034f7dd46061b3307 WHIRLPOOL 4d4b53e6520c34284f6794b7afecdab36b2e5d97e12a9237e83c52fb23eee1facee829ed140e8d9b13e98e201e9e8a2cf2aa32853e9728504bd16cd3a01927e7
AUX 3.8-grsec/08-read-only-ti.patch 327 SHA256 804cfe5f58fe4927933e64a45aa2c0b407675c22d8d80f75fe89904f7fa9a595 SHA512 387ffd8a7636d7055b65a3e2c2cb799bc514e270d24a44982da5c1bdae7160e96e7f829fc2de7323e2228f1cfd6e4517327d2c18b6df42f062a570aa5b5fcb21 WHIRLPOOL 546e75ed0970d82a6b343a82421c9368b1dc5410c4795f82cf3812845bd8d7c9f909b7955213144cd0727d62ea606af216c8dc552739bba818513ceded0ae339
AUX 3.8-grsec/09-read-only-nouveau.patch 1166 SHA256 683a3c3eac7f2620f11383b14de4ee5d5f06278976111099059864d8b8657ad0 SHA512 94839b1cc7bf7dfa9f1945bb21fa93524ab3c8448f41a1d767f1bc256991f4afa948f51a40bf901fe8732bff04d44161bd7468dcc4ddf7ff4974057200fa457d WHIRLPOOL 21b5179f06379116a72608036b63b7117e20d872481af5db4821bf76027f6771faa735f937bf39218332978b6e5847b6ad05c053e2a83e852e3d55836cff2c41
AUX 4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch 559 SHA256 2c9222e0c6aaafabac091766c7e0a71442f0e9521ec1c65fc7024fbca60a3354 SHA512 9bf0b852a4ffc66afc12fc60c3fc683d689a45ff5e18470db68f25f001e14fc09c813aa01fec2b4583af1c19141e748a10c7dfd6022d727cb8cf245f6c33a2ff WHIRLPOOL 2efd4c3f2d58a833be803df6034e01d3601cb1891921fe2031c50a241a3f5e8a9e8d54aa0b29566fcc6b2bac71d48e504a3f88585a1049884e0a5986724048a1
AUX 4004_zd1211rw-2.6.28.patch 1412 SHA256 6696295acb2a8d12a33208525cba9ce8bd2971c9c0adaabb31debfa9ec15c7be SHA512 2aa73fa8e87cb06220b589f528ba25fcec818a14a98a8d5f1173b12c287ee85e48981a48bbce772aa7fc24a33a833df2eb5bc7af0d569ea8c839090c481566ec WHIRLPOOL 4245c75995d7579b9fcc0aa1412b4f9bc4a3a924076aca24b466658740a99b0592c293420c39a616a6241ec4dce213496bf4317b73fd4b94ab1dcefbe5130382
AUX ath_regd_optional.patch 906 SHA256 ebf117d071363e854505c18aef8c9af2652fd4a7b9cc5efe961cf5efb410dbd7 SHA512 dddc5e428f7d2a372ac17cce913c397ac408e20eb17af55633ea8984d6e69e8f7fe134436a4176606740d64fd66579c6a30a358cac393cb22f9a09d10f66e9d3 WHIRLPOOL b46164a1444d74f22d0e4f1e02ed556b52f87d5132871698ab93abd2076656e4ecadb7dc914d571df15a9bd18169ebaef67d4539a7919f1e2ffdd3df3b60cd90
AUX compat-drivers-3.7_rc1_p6-grsec-warnings.patch 1261 SHA256 d960b976fe4e82beb2ceba3cc3eccdd064f54d9cc269f2b08d351c5a7fb528f7 SHA512 044020bacf79790f5ce10c0373f05568dfca2456f0087b3a04e5162b7602fb97371923acc6987d8732a64373ad77a4df65dae90f55e2bd7b20757f0b32d6af8c WHIRLPOOL d4b61222a97d496516575ff1bee4b9bec0d86fe9115a4ea4789b994fb1890444c568f866b4289f2ecaf9a399aec7453588aa6a842e7c48bce61320d48cd2eb86
AUX compat-drivers-3.7_rc1_p6-grsec.patch 356575 SHA256 aefac7264cd36791af4194a4c9ed5a5a90a68d51c3ef1ba1af280c263ad394e2 SHA512 6aa48f042efac4c9a94ca7592f548e6dc5b8796c56a1827239b9d2e357ba23d14373b986e4cd789aedf07ce0a02eca2bdd3304a0bef751b8914367c9dc1b7fff WHIRLPOOL 986b202f601b4efb894ed8b0ab39f099af14b61deb687f670c83c3a587947e83b1180910d79bb701a6c5c92607ab529f6be229f840844cb08efaef165a83123f
AUX compat-drivers-3.8-ath6kl.patch 1261 SHA256 d960b976fe4e82beb2ceba3cc3eccdd064f54d9cc269f2b08d351c5a7fb528f7 SHA512 044020bacf79790f5ce10c0373f05568dfca2456f0087b3a04e5162b7602fb97371923acc6987d8732a64373ad77a4df65dae90f55e2bd7b20757f0b32d6af8c WHIRLPOOL d4b61222a97d496516575ff1bee4b9bec0d86fe9115a4ea4789b994fb1890444c568f866b4289f2ecaf9a399aec7453588aa6a842e7c48bce61320d48cd2eb86
AUX compat-drivers-3.8-bt_tty.patch 1295 SHA256 e1307946a4ed6185b1850d95f3920ff747e584e6b23dad95220c8b0809fe6de1 SHA512 a4f5e68cb2e7e8972c9271d9519c688fe26cf0ba35b925ecd2270668d4ac8d22a25137596a07cc106cca53afe31e7771d77151b4e4361c22d3332ae5920062ee WHIRLPOOL ff3fe54d241411d5885e002571226247933d8e5d85e5786c2ffeb0ab6637b5c692c362beae5f85b0454ff01454f3277b11f339aeef0d9da4cb71d4356cc9101e
AUX ipw2200-inject.3.4.6.patch 4173 SHA256 0b649bd7b6d2bf22667edc96949b5ab92cc7fb5c543b4385c17c5e0f47fe4109 SHA512 ebee3efda7b94898ea18a89f57c515d5237ef3c2a1eaf0bd13949ec4663a600eadede4655178355ac3f5b8ddc2eccc2cceb88eba0281ed3f614ada186a041463 WHIRLPOOL 15d94b3176719d006363f4d42a11c505643fdead8d521ccfb149cf5eee8851488aa006d4f8c750ffb5e81b23ff03d275e5fde781505e508467ff76303e612570
AUX leds-disable-strict-3.6.6.patch 799 SHA256 e1b5947608d9c53263efd76aed404eb7e4107d81669faeb484f5d680e4cfb570 SHA512 6373efc6697b4589c15c3cd2cfd8f3faa06fe90eeeb4fa9acaf187ecc682fac394444949dd26c2dde71c0f45aedb1198374764b580b824ddc6bc1e937273b5f1 WHIRLPOOL 40bdef714aa0ff4069bb50abf434dff88610d97f570b80f36622d29a43301bf013a90e90cb7f3f8044c2bf53a09154b1033a6f53b1edf186513452fdb681d55f
AUX leds-disable-strict-3.7_rc1_p6.patch 799 SHA256 e1b5947608d9c53263efd76aed404eb7e4107d81669faeb484f5d680e4cfb570 SHA512 6373efc6697b4589c15c3cd2cfd8f3faa06fe90eeeb4fa9acaf187ecc682fac394444949dd26c2dde71c0f45aedb1198374764b580b824ddc6bc1e937273b5f1 WHIRLPOOL 40bdef714aa0ff4069bb50abf434dff88610d97f570b80f36622d29a43301bf013a90e90cb7f3f8044c2bf53a09154b1033a6f53b1edf186513452fdb681d55f
DIST compat-drivers-3.7-rc1-6.tar.gz 7877572 SHA256 688406f3d9a84246dc0d57b93b5335c9b0f276cc216e3dc7032ad6152bfff873 SHA512 1a6a747a325b19f03cfb28036232ee9186010a0cb78e753d2358d8932d81322516878df97c13e56cec6472515d30c5b99816f44c6331fc58a261cae4ab33ad43 WHIRLPOOL c33025583834726f1f2988d8eaab8c716b117d74b427b035000ae5d5b35310be486ac76fcdb0589effae6036b5a3058ae0859384e4e6c9466b659f9848036ac1
DIST compat-drivers-3.8-rc5-1-u.tar.xz 5299080 SHA256 0952e211e7352bbb4b236853c751ab4ffffebf4923517316f9579e644e0eabc8 SHA512 bc80b129d709aaf7eb76d6ec388d4b76ce60eb9a61101eae8ad6a43c09097d927651f462810735f56e53b035f3b7ce3c422a2894ca4ccca234bba9c61850877c WHIRLPOOL f31192ad24b81f55d7bcf1b03ddc70b6e9d20acd8f106ab7edcfd8a461d44270d1deb1d87451f540e050c04bef2ec20524d75777357a7ebc56ef76baa7257d21
DIST compat-drivers-3.8-rc7-1-u.tar.xz 5301132 SHA256 b53ddac5b0423d72d3945235637cbbb4559b5b527bd74d4cc9dd9e098efad4c6 SHA512 ee8f72d2acfb0aa41e90268fc68f1c42d87a7e14597f7866dd9c96a00dd8ea318b92a5b25e499d65e00b617600baa09cfc639379465e306f54f73689c3fc93c1 WHIRLPOOL 98a0b602e67f6f305f4795b8a53ad87bcabd282aa45d5e74c5c1add07084fb97fbac1d651e59e6f6a4838a4084f5d5418d59a7d49441613f91df33172b480582
EBUILD compat-drivers-3.7_rc1_p6-r1.ebuild 6976 SHA256 82a760ef9a1448e865dd2936ab3a9824da2c2f6195bce0dec091a9c569a36f18 SHA512 dc907bea77600697458d478418fc719b046ec4e3d09443891ab7235ba40e256b5ac57f7a9355ac67ab25eca4c01e4502a4cda0667a961165549cc4c6758b4249 WHIRLPOOL 7d2361bbd4f6417f934fe7763a5d33a49da18d3a17be53d85fe422c6ce0888b889a136407edae05d10e855ac61d711800bf763a7ebe15e92f2871299b1bc51ed
EBUILD compat-drivers-3.7_rc1_p6.ebuild 7446 SHA256 1b80374769f13fb010ab0d288b5b03ff8a1eb3edde602f09cb8e242debda222d SHA512 0020e15c77d0b3692d3ffb38cd4268b245acb8f9995612f978c41df30b98eecb7d2dc989b7ea82fb5f589eb9abfb7c4b694217fafdad1db818c9b6b521edd9d1 WHIRLPOOL 967238ad9352b14ae10c6c47d71e4fd6aa44a2ec205f161b9c74f8a1112306b2ecad6c0bff2b11c5eec54c526629639e64073204c742555731ab2e94eb047130
EBUILD compat-drivers-3.8_rc5.ebuild 6868 SHA256 5c9d8912bed6a553e855b305e6cc39dc15f983bade5b7763441b05999b241cfa SHA512 0c41ee5aa982194775f1a837cdb168564e9ec094676b2bbfff54465bbe3f296210f79eae2b8330d1c1fcbf7249d002d9a2b20c171e6b89f305768e8bf5dd54e5 WHIRLPOOL 2d38c9bc1491377d1f80d580292548d787c5370af29114e4845016a589649a30fdfee1d10fb7b4d2f1f3d37c7581f7a3ef4bfa51e623b7e784f33e62c41bdda2
MISC metadata.xml 3316 SHA256 4d31b4636c4f5d4e0609c4b7fdae35beb532c8ed7277ecdbbe1a3b026b5a8d55 SHA512 b6364283961c5fc7948c5cde8f2a674adef64ba49112d0b7089b89b7a57ba184daf2a3a8243df6b457f4ecbdca226c61ed1bd1a3ece2d840f0129d42aba4e074 WHIRLPOOL 5acca098ba7ecbf7b50cc846a6b5e31b5471eb84b89ad71ddc4c30e41ff82e046af0378880b8cb060aecd5fab5dad24c71a39da8e518568f8ca4495ffdab9e56
EBUILD compat-drivers-3.8_rc7.ebuild 7159 SHA256 4570a3d28d1787eb7e7ccdba41629ec311430d3c0801f53b643ba438cc19216d SHA512 919925a704f9e25ee59140c2e52b24af889ac85eae7f63b923c68faca90ecea860180e91687b26553aba8b0d5457cc7e506ddb9413fcf0841dcb7838448d53c8 WHIRLPOOL 5ca17d0e915d1c478ca9036e2d87240a43a7dbffa8e4a228305af0a6a36afbbb3b75ba4a931b2981b2035acc8467b365133e7c9c51e6a6ebeacd8f5a6484d32a
MISC metadata.xml 3542 SHA256 644b2f777a31515bdf4f60dc8a73b1b4f713b6568793095a7cded840385cb356 SHA512 8a6b6a8f13ad183d5dc17991a0b9f4919ec955b009190ef7b2cbfb0d718c4e61e99b23a782b80ee4441516b0bf4025341c578330302c1a1c5486aa4ed1c61078 WHIRLPOOL 911eb253abf84ab62d36afcec8c1c74213d8295a13b71811ae5aed06df48e7efaea4dc2252b967c62cb26e659a9f8209b4e45b41777c52097c4d34a0b1eb25ff

View file

@ -0,0 +1,184 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
# USE_EXPAND categories
CPD_USE_EXPAND="wifi ethernet various"
# These are officially supported
CPD_USE_EXPAND_wifi="ath5k ath9k ath9k_ap ath9k_htc ath6kl b43 brcmsmac brcmfmac carl9170 rt2x00 wil6210 wl1251 wl12xx zd1211rw"
# This might work (not officially supported)
CPD_USE_EXPAND_wifi+=" wl18xx"
# This might work (added by pentoo)
CPD_USE_EXPAND_wifi+=" b44"
# These are officially supported
CPD_USE_EXPAND_ethernet="alx atl1 atl1c atl1e atl2"
# This might work (not officially supported)
CPD_USE_EXPAND_ethernet+=" atlxx"
# These are officially supported
CPD_USE_EXPAND_various="i915"
# This might work (not officially supported)
CPD_USE_EXPAND_various+=" bt drm"
# This might work (added by pentoo)
CPD_USE_EXPAND_various+=" staging usbnet"
inherit linux-mod linux-info versionator eutils compat-drivers-3.8
# upstream versioning, ex.: 3.7-rc1-6
UPSTREAM_PVR="${PV//_/-}" && UPSTREAM_PVR="${UPSTREAM_PVR/-p/-}"
# ex.: 3.7-rc1
UPSTREAM_PV=${UPSTREAM_PVR%-*}
DESCRIPTION="Stable kernel pre-release wifi subsystem backport"
HOMEPAGE="http://backports.wiki.kernel.org"
SRC_URI="mirror://kernel/linux/kernel/projects/backports/stable/v${UPSTREAM_PVR}/${PN}-${UPSTREAM_PVR}-1-u.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS=""
IUSE="atheros_obey_crda debugfs debug-driver full-debug injection livecd loadmodules noleds pax_kernel"
DEPEND="!net-wireless/compat-wireless-builder
!net-wireless/compat-wireless"
RDEPEND="${DEPEND}
>=sys-kernel/linux-firmware-20110219
virtual/udev"
S="${WORKDIR}/${PN}-${UPSTREAM_PVR}-1-u"
RESTRICT="strip"
CONFIG_CHECK="!DYNAMIC_FTRACE"
pkg_setup() {
CONFIG_CHECK="~NET_SCHED"
CONFIG_CHECK="~IPW2200_PROMISCUOUS"
linux-mod_pkg_setup
kernel_is -lt 2 6 27 && die "kernel 2.6.27 or higher is required for compat drivers to be installed"
kernel_is -gt $(get_version_component_range 1) $(get_version_component_range 2) $(get_version_component_range 3) && die "The version of compat drivers you are trying to install contains older modules than your kernel. Failing before downgrading your system."
#these things are not optional
linux_chkconfig_module MAC80211 || die "CONFIG_MAC80211 must be built as a _module_ !"
linux_chkconfig_module CFG80211 || die "CONFIG_CFG80211 must be built as a _module_ !"
linux_chkconfig_module LIBIPW || ewarn "CONFIG_LIBIPW really should be set or there will be no WEXT compat"
if use compat_drivers_wifi_b43; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b43"
fi
if use compat_drivers_wifi_b44; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b44"
fi
}
src_prepare() {
# use pax_kernel && epatch "${FILESDIR}"/${PN}-3.7_rc1_p6-grsec.patch
# use pax_kernel && epatch "${FILESDIR}"/${PN}-3.8-grsec-readonly.patch
if use pax_kernel; then
for gpatch in "${FILESDIR}"/3.8-grsec/*; do
epatch "${gpatch}"
done
fi
# upstream might want to see this
use pax_kernel && epatch "${FILESDIR}"/${PN}-3.8-bt_tty.patch
# use pax_kernel && epatch "${FILESDIR}"/${PN}-3.7_rc1_p6-grsec-warnings.patch
#mcgrof said prep for inclusion in compat-wireless.git but this causes issues
#find "${S}" -name Makefile | xargs sed -i -e 's/export CONFIG_/export CONFIG_COMPAT_/' -e 's/COMPAT_COMPAT_/COMPAT_/' -e 's/CONFIG_COMPAT_CHECK/CONFIG_CHECK/'
#sed -i -e 's/export CONFIG_/export CONFIG_COMPAT_/' -e 's/COMPAT_COMPAT_/COMPAT_/' "${S}"/config.mk
# CONFIG_CFG80211_REG_DEBUG=y
sed -i '/CFG80211_REG_DEBUG/s/^# *//' "${S}"/config.mk
#this patch ignores the regulatory settings of an atheros card and uses what CRDA thinks is right
if use atheros_obey_crda; then
ewarn "You have enabled atheros_obey_crda which doesn't do what you think."
ewarn "This use flag will cause the eeprom of the card to be ignored and force"
ewarn "world roaming on the device until crda provides a valid regdomain."
ewarn "Short version, this is not a way to break the law, this will automatically"
ewarn "make your card less functional unless you set a proper regdomain with iw/crda."
epatch "${FILESDIR}"/ath_regd_optional.patch
fi
if use injection; then
epatch "${FILESDIR}"/4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch
epatch "${FILESDIR}"/4004_zd1211rw-2.6.28.patch
# epatch "${FILESDIR}"/mac80211.compat08082009.wl_frag+ack_v1.patch
# epatch "${FILESDIR}"/4013-runtime-enable-disable-of-mac80211-packet-injection.patch
epatch "${FILESDIR}"/ipw2200-inject.3.4.6.patch
fi
if use noleds; then
sed -ir 's/^\(export CONFIG_.*_LEDS=\)y$/\1n/' config.mk
epatch "${FILESDIR}/leds-disable-strict-${PV}.patch"
fi
use debug-driver && sed -i '/DEBUG=y/s/^# *//' "${S}"/config.mk
use debugfs && sed -i '/DEBUGFS/s/^# *//' "${S}"/config.mk
if use full-debug; then
if use debug-driver ; then
sed -i '/CONFIG=/s/^# *//' "${S}"/config.mk
else
ewarn "Enabling full-debug includes debug-driver."
sed -i '/DEBUG=/s/^# *//' "${S}"/config.mk
fi
fi
#avoid annoying ACCESS DENIED sandbox errors
sed -i "s/\${MAKE} -C \${KLIB_BUILD} kernelversion/echo ${KV_FULL}/g" compat/scripts/gen-compat-config.sh || die "sed failed"
sed -i "s/shell \$(MAKE) -C \$(KLIB_BUILD) kernelversion/echo ${KV_FULL}/g" config.mk || die "sed failed"
sed -i "s/make -C \$KLIB_BUILD kernelversion/echo ${KV_FULL}/g" scripts/gen-compat-autoconf.sh || die "sed failed"
}
src_compile() {
addpredict "${KERNEL_DIR}"
set_arch_to_kernel
emake KLIB_BUILD="${DESTDIR}"/lib/modules/"${KV_FULL}"/build || die "emake failed"
}
src_install() {
for file in $(find -name \*.ko); do
insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})"
doins "${file}"
done
dosbin scripts/athenable scripts/b43load scripts/iwl-enable \
scripts/madwifi-unload scripts/athload scripts/iwl-load \
scripts/b43enable scripts/unload.sh
dodir /usr/lib/compat-wireless
exeinto /usr/lib/compat-wireless
doexe scripts/modlib.sh
dodoc README.md
dodir /$(get_libdir)/udev/rules.d/
insinto /$(get_libdir)/udev/rules.d/
doins udev/50-compat_firmware.rules
exeinto /$(get_libdir)/udev/
doexe udev/compat_firmware.sh
}
pkg_postinst() {
update_depmod
update_moduledb
if use !livecd; then
if use loadmodules; then
einfo "Attempting to unload modules..."
/usr/sbin/unload.sh 2>&1 | grep -E FATAL && ewarn "Unable to remove running modules, system may be unhappy, reboot HIGHLY recommended!"
einfo "Triggering automatic reload of needed modules..."
/sbin/udevadm trigger
einfo "We have attempted to load your new modules for you, this may fail horribly, or may just cause a network hiccup."
einfo "If you experience any issues reboot is the simplest course of action."
fi
fi
if use !loadmodules; then
einfo "You didn't USE=loadmodules but you can still attempt to switch to the new drivers without reboot."
einfo "Run 'unload.sh' then 'udevadm trigger' to cause udev to load the needed drivers."
einfo "If unload.sh fails for some reason you should be able to simply reboot to fix everything and load the new modules."
fi
}
pkg_postrm() {
remove_moduledb
}

View file

@ -0,0 +1,23 @@
--- ./include/net/bluetooth/bluetooth.h
+++ ./include/net/bluetooth/bluetooth.h
@@ -206,7 +206,7 @@
struct file_operations fops;
int (* custom_seq_show)(struct seq_file *, void *);
#endif
-};
+} __no_const;
int bt_sock_register(int proto, const struct net_proto_family *ops);
int bt_sock_unregister(int proto);
--- ./include/net/mac80211.h
+++ ./include/net/mac80211.h
@@ -2652,7 +2652,7 @@
struct ieee80211_chanctx_conf *ctx);
void (*restart_complete)(struct ieee80211_hw *hw);
-};
+} __no_const;
/**
* ieee80211_alloc_hw - Allocate a new hardware device

View file

@ -0,0 +1,12 @@
How/why does this even work?
--- ./net/wireless/core.h
+++ ./net/wireless/core.h
@@ -28,7 +28,7 @@
struct mutex mtx;
/* rfkill support */
- struct rfkill_ops rfkill_ops;
+ rfkill_ops_no_const rfkill_ops;
struct rfkill *rfkill;
struct work_struct rfkill_sync;

View file

@ -0,0 +1,240 @@
--- ./drivers/net/wireless/ath/ath.h
+++ ./drivers/net/wireless/ath/ath.h
@@ -119,6 +119,7 @@ struct ath_ops {
void (*write_flush) (void *);
u32 (*rmw)(void *, u32 reg_offset, u32 set, u32 clr);
};
+typedef struct ath_ops __no_const ath_ops_no_const;
struct ath_common;
struct ath_bus_ops;
--- ./drivers/net/wireless/ath/ath9k/ar9002_mac.c
+++ ./drivers/net/wireless/ath/ath9k/ar9002_mac.c
@@ -184,8 +184,8 @@ ar9002_set_txdesc(struct ath_hw *ah, voi
ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
- ACCESS_ONCE(ads->ds_link) = i->link;
- ACCESS_ONCE(ads->ds_data) = i->buf_addr[0];
+ ACCESS_ONCE_RW(ads->ds_link) = i->link;
+ ACCESS_ONCE_RW(ads->ds_data) = i->buf_addr[0];
ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
ctl6 = SM(i->keytype, AR_EncrType);
@@ -199,26 +199,26 @@ ar9002_set_txdesc(struct ath_hw *ah, voi
if ((i->is_first || i->is_last) &&
i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
- ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ds_ctl2) = set11nTries(i->rates, 0)
| set11nTries(i->rates, 1)
| set11nTries(i->rates, 2)
| set11nTries(i->rates, 3)
| (i->dur_update ? AR_DurUpdateEna : 0)
| SM(0, AR_BurstDur);
- ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ds_ctl3) = set11nRate(i->rates, 0)
| set11nRate(i->rates, 1)
| set11nRate(i->rates, 2)
| set11nRate(i->rates, 3);
} else {
- ACCESS_ONCE(ads->ds_ctl2) = 0;
- ACCESS_ONCE(ads->ds_ctl3) = 0;
+ ACCESS_ONCE_RW(ads->ds_ctl2) = 0;
+ ACCESS_ONCE_RW(ads->ds_ctl3) = 0;
}
if (!i->is_first) {
- ACCESS_ONCE(ads->ds_ctl0) = 0;
- ACCESS_ONCE(ads->ds_ctl1) = ctl1;
- ACCESS_ONCE(ads->ds_ctl6) = ctl6;
+ ACCESS_ONCE_RW(ads->ds_ctl0) = 0;
+ ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
+ ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
return;
}
@@ -243,7 +243,7 @@ ar9002_set_txdesc(struct ath_hw *ah, voi
break;
}
- ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
+ ACCESS_ONCE_RW(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
| (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
| SM(i->txpower, AR_XmitPower)
| (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
@@ -253,19 +253,19 @@ ar9002_set_txdesc(struct ath_hw *ah, voi
| (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
(i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
- ACCESS_ONCE(ads->ds_ctl1) = ctl1;
- ACCESS_ONCE(ads->ds_ctl6) = ctl6;
+ ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
+ ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST)
return;
- ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
| set11nPktDurRTSCTS(i->rates, 1);
- ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
+ ACCESS_ONCE_RW(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
| set11nPktDurRTSCTS(i->rates, 3);
- ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
| set11nRateFlags(i->rates, 1)
| set11nRateFlags(i->rates, 2)
| set11nRateFlags(i->rates, 3)
--- ./drivers/net/wireless/ath/ath9k/ar9003_mac.c
+++ ./drivers/net/wireless/ath/ath9k/ar9003_mac.c
@@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, voi
(i->qcu << AR_TxQcuNum_S) | desc_len;
checksum += val;
- ACCESS_ONCE(ads->info) = val;
+ ACCESS_ONCE_RW(ads->info) = val;
checksum += i->link;
- ACCESS_ONCE(ads->link) = i->link;
+ ACCESS_ONCE_RW(ads->link) = i->link;
checksum += i->buf_addr[0];
- ACCESS_ONCE(ads->data0) = i->buf_addr[0];
+ ACCESS_ONCE_RW(ads->data0) = i->buf_addr[0];
checksum += i->buf_addr[1];
- ACCESS_ONCE(ads->data1) = i->buf_addr[1];
+ ACCESS_ONCE_RW(ads->data1) = i->buf_addr[1];
checksum += i->buf_addr[2];
- ACCESS_ONCE(ads->data2) = i->buf_addr[2];
+ ACCESS_ONCE_RW(ads->data2) = i->buf_addr[2];
checksum += i->buf_addr[3];
- ACCESS_ONCE(ads->data3) = i->buf_addr[3];
+ ACCESS_ONCE_RW(ads->data3) = i->buf_addr[3];
checksum += (val = (i->buf_len[0] << AR_BufLen_S) & AR_BufLen);
- ACCESS_ONCE(ads->ctl3) = val;
+ ACCESS_ONCE_RW(ads->ctl3) = val;
checksum += (val = (i->buf_len[1] << AR_BufLen_S) & AR_BufLen);
- ACCESS_ONCE(ads->ctl5) = val;
+ ACCESS_ONCE_RW(ads->ctl5) = val;
checksum += (val = (i->buf_len[2] << AR_BufLen_S) & AR_BufLen);
- ACCESS_ONCE(ads->ctl7) = val;
+ ACCESS_ONCE_RW(ads->ctl7) = val;
checksum += (val = (i->buf_len[3] << AR_BufLen_S) & AR_BufLen);
- ACCESS_ONCE(ads->ctl9) = val;
+ ACCESS_ONCE_RW(ads->ctl9) = val;
checksum = (u16) (((checksum & 0xffff) + (checksum >> 16)) & 0xffff);
- ACCESS_ONCE(ads->ctl10) = checksum;
+ ACCESS_ONCE_RW(ads->ctl10) = checksum;
if (i->is_first || i->is_last) {
- ACCESS_ONCE(ads->ctl13) = set11nTries(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ctl13) = set11nTries(i->rates, 0)
| set11nTries(i->rates, 1)
| set11nTries(i->rates, 2)
| set11nTries(i->rates, 3)
| (i->dur_update ? AR_DurUpdateEna : 0)
| SM(0, AR_BurstDur);
- ACCESS_ONCE(ads->ctl14) = set11nRate(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ctl14) = set11nRate(i->rates, 0)
| set11nRate(i->rates, 1)
| set11nRate(i->rates, 2)
| set11nRate(i->rates, 3);
} else {
- ACCESS_ONCE(ads->ctl13) = 0;
- ACCESS_ONCE(ads->ctl14) = 0;
+ ACCESS_ONCE_RW(ads->ctl13) = 0;
+ ACCESS_ONCE_RW(ads->ctl14) = 0;
}
ads->ctl20 = 0;
@@ -89,17 +89,17 @@ ar9003_set_txdesc(struct ath_hw *ah, voi
ctl17 = SM(i->keytype, AR_EncrType);
if (!i->is_first) {
- ACCESS_ONCE(ads->ctl11) = 0;
- ACCESS_ONCE(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
- ACCESS_ONCE(ads->ctl15) = 0;
- ACCESS_ONCE(ads->ctl16) = 0;
- ACCESS_ONCE(ads->ctl17) = ctl17;
- ACCESS_ONCE(ads->ctl18) = 0;
- ACCESS_ONCE(ads->ctl19) = 0;
+ ACCESS_ONCE_RW(ads->ctl11) = 0;
+ ACCESS_ONCE_RW(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
+ ACCESS_ONCE_RW(ads->ctl15) = 0;
+ ACCESS_ONCE_RW(ads->ctl16) = 0;
+ ACCESS_ONCE_RW(ads->ctl17) = ctl17;
+ ACCESS_ONCE_RW(ads->ctl18) = 0;
+ ACCESS_ONCE_RW(ads->ctl19) = 0;
return;
}
- ACCESS_ONCE(ads->ctl11) = (i->pkt_len & AR_FrameLen)
+ ACCESS_ONCE_RW(ads->ctl11) = (i->pkt_len & AR_FrameLen)
| (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
| SM(i->txpower, AR_XmitPower)
| (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
@@ -135,22 +135,22 @@ ar9003_set_txdesc(struct ath_hw *ah, voi
val = (i->flags & ATH9K_TXDESC_PAPRD) >> ATH9K_TXDESC_PAPRD_S;
ctl12 |= SM(val, AR_PAPRDChainMask);
- ACCESS_ONCE(ads->ctl12) = ctl12;
- ACCESS_ONCE(ads->ctl17) = ctl17;
+ ACCESS_ONCE_RW(ads->ctl12) = ctl12;
+ ACCESS_ONCE_RW(ads->ctl17) = ctl17;
- ACCESS_ONCE(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
| set11nPktDurRTSCTS(i->rates, 1);
- ACCESS_ONCE(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
+ ACCESS_ONCE_RW(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
| set11nPktDurRTSCTS(i->rates, 3);
- ACCESS_ONCE(ads->ctl18) = set11nRateFlags(i->rates, 0)
+ ACCESS_ONCE_RW(ads->ctl18) = set11nRateFlags(i->rates, 0)
| set11nRateFlags(i->rates, 1)
| set11nRateFlags(i->rates, 2)
| set11nRateFlags(i->rates, 3)
| SM(i->rtscts_rate, AR_RTSCTSRate);
- ACCESS_ONCE(ads->ctl19) = AR_Not_Sounding;
+ ACCESS_ONCE_RW(ads->ctl19) = AR_Not_Sounding;
}
static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
--- ./drivers/net/wireless/ath/ath9k/hw.h
+++ ./drivers/net/wireless/ath/ath9k/hw.h
@@ -657,7 +657,7 @@ struct ath_hw_private_ops {
/* ANI */
void (*ani_cache_ini_regs)(struct ath_hw *ah);
-};
+} __no_const;
/**
* struct ath_hw_ops - callbacks used by hardware code and driver code
@@ -687,7 +687,7 @@ struct ath_hw_ops {
void (*antdiv_comb_conf_set)(struct ath_hw *ah,
struct ath_hw_antcomb_conf *antconf);
void (*antctrl_shared_chain_lnadiv)(struct ath_hw *hw, bool enable);
-};
+} __no_const;
struct ath_nf_limits {
s16 max;
@@ -707,7 +707,7 @@ enum ath_cal_list {
#define AH_FASTCC 0x4
struct ath_hw {
- struct ath_ops reg_ops;
+ ath_ops_no_const reg_ops;
struct ieee80211_hw *hw;
struct ath_common common;

View file

@ -0,0 +1,11 @@
--- ./include/drm/ttm/ttm_memory.h
+++ ./include/drm/ttm/ttm_memory.h
@@ -48,7 +48,7 @@
struct ttm_mem_shrink {
int (*do_shrink) (struct ttm_mem_shrink *);
-};
+} __no_const;
/**
* struct ttm_mem_global - Global memory accounting structure.

View file

@ -0,0 +1,11 @@
--- ./drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h
+++ ./drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h
@@ -545,7 +545,7 @@
void (*carrsuppr)(struct brcms_phy *);
s32 (*rxsigpwr)(struct brcms_phy *, s32);
void (*detach)(struct brcms_phy *);
-};
+} __no_const;
struct brcms_phy {
struct brcms_phy_pub pubpi_ro;

View file

@ -0,0 +1,17 @@
--- ./drivers/gpu/drm/i915/i915_drv.h
+++ ./drivers/gpu/drm/i915/i915_drv.h
@@ -284,12 +284,12 @@
/* render clock increase/decrease */
/* display clock increase/decrease */
/* pll clock increase/decrease */
-};
+} __no_const;
struct drm_i915_gt_funcs {
void (*force_wake_get)(struct drm_i915_private *dev_priv);
void (*force_wake_put)(struct drm_i915_private *dev_priv);
-};
+} __no_const;
#define DEV_INFO_FLAGS \
DEV_INFO_FLAG(is_mobile) DEV_INFO_SEP \

View file

@ -0,0 +1,58 @@
--- ./drivers/gpu/drm/radeon/radeon.h
+++ ./drivers/gpu/drm/radeon/radeon.h
@@ -741,7 +741,7 @@
int x2, int y2);
void (*draw_auto)(struct radeon_device *rdev);
void (*set_default_state)(struct radeon_device *rdev);
-};
+} __no_const;
struct r600_blit {
struct radeon_bo *shader_obj;
@@ -1173,7 +1173,7 @@
struct {
void (*tlb_flush)(struct radeon_device *rdev);
int (*set_page)(struct radeon_device *rdev, int i, uint64_t addr);
- } gart;
+ } __no_const gart;
struct {
int (*init)(struct radeon_device *rdev);
void (*fini)(struct radeon_device *rdev);
@@ -1214,7 +1214,7 @@
void (*set_backlight_level)(struct radeon_encoder *radeon_encoder, u8 level);
/* get backlight level */
u8 (*get_backlight_level)(struct radeon_encoder *radeon_encoder);
- } display;
+ } __no_const display;
/* copy functions for bo handling */
struct {
int (*blit)(struct radeon_device *rdev,
@@ -1266,7 +1266,7 @@
int (*get_pcie_lanes)(struct radeon_device *rdev);
void (*set_pcie_lanes)(struct radeon_device *rdev, int lanes);
void (*set_clock_gating)(struct radeon_device *rdev, int enable);
- } pm;
+ } __no_const pm;
/* pageflipping */
struct {
void (*pre_page_flip)(struct radeon_device *rdev, int crtc);
@@ -1542,6 +1542,8 @@
typedef uint32_t (*radeon_rreg_t)(struct radeon_device*, uint32_t);
typedef void (*radeon_wreg_t)(struct radeon_device*, uint32_t, uint32_t);
+typedef struct vm_operations_struct __no_const vm_operations_struct_no_const;
+
struct radeon_device {
struct device *dev;
struct drm_device *ddev;
--- ./drivers/gpu/drm/radeon/radeon_ttm.c
+++ ./drivers/gpu/drm/radeon/radeon_ttm.c
@@ -791,7 +791,7 @@
man->size = size >> PAGE_SHIFT;
}
-static struct vm_operations_struct radeon_ttm_vm_ops;
+static vm_operations_struct_no_const radeon_ttm_vm_ops;
static const struct vm_operations_struct *ttm_vm_ops = NULL;
static int radeon_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)

View file

@ -0,0 +1,11 @@
--- ./drivers/net/wireless/ti/wl1251/wl1251.h
+++ ./drivers/net/wireless/ti/wl1251/wl1251.h
@@ -266,7 +266,7 @@
void (*reset)(struct wl1251 *wl);
void (*enable_irq)(struct wl1251 *wl);
void (*disable_irq)(struct wl1251 *wl);
-};
+} __no_const;
struct wl1251 {
struct ieee80211_hw *hw;

View file

@ -0,0 +1,11 @@
--- ./drivers/net/wireless/ti/wlcore/wlcore.h
+++ ./drivers/net/wireless/ti/wlcore/wlcore.h
@@ -88,7 +88,7 @@
struct ieee80211_sta *sta,
struct ieee80211_key_conf *key_conf);
u32 (*pre_pkt_send)(struct wl1271 *wl, u32 buf_offset, u32 last_len);
-};
+} __no_const;
enum wlcore_partitions {
PART_DOWN,

View file

@ -0,0 +1,33 @@
--- ./drivers/gpu/drm/nouveau/nouveau_fence.h
+++ ./drivers/gpu/drm/nouveau/nouveau_fence.h
@@ -43,7 +43,7 @@
int (*sync)(struct nouveau_fence *, struct nouveau_channel *,
struct nouveau_channel *);
u32 (*read)(struct nouveau_channel *);
-};
+} __no_const;
#define nouveau_fence(drm) ((struct nouveau_fence_priv *)(drm)->fence)
--- ./drivers/gpu/drm/nouveau/nouveau_bios.c
+++ ./drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -1015,7 +1015,7 @@
struct bit_table {
const char id;
int (* const parse_fn)(struct drm_device *, struct nvbios *, struct bit_entry *);
-};
+} __no_const;
#define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
--- compat-drivers-3.8-rc7-1-u.orig/include/drm/drm_crtc_helper.h 2013-01-23 21:02:34.000000000 +0100
+++ compat-drivers-3.8-rc7-1-u/include/drm/drm_crtc_helper.h 2013-02-15 16:53:22.922628311 +0100
@@ -109,7 +109,7 @@
struct drm_connector *connector);
/* disable encoder when not in use - more explicit than dpms off */
void (*disable)(struct drm_encoder *encoder);
-};
+} __no_const;
/**
* drm_connector_helper_funcs - helper operations for connectors

View file

@ -0,0 +1,34 @@
Fixes for:
drivers/net/wireless/ath/ath6kl/sdio.c: In function ath6kl_sdio_alloc_prep_scat_req:
drivers/net/wireless/ath/ath6kl/sdio.c:1478:1: warning: find_arg_number: cannot find the buf_sz argument in ath6kl_sdio_alloc_prep_scat_req [enabled by default]
drivers/net/wireless/ath/ath6kl/sdio.c:1478:1: warning: find_arg_number: cannot find the sg_sz argument in ath6kl_sdio_alloc_prep_scat_req [enabled by default]
--- drivers/net/wireless/ath/ath6kl/sdio.c
+++ drivers/net/wireless/ath/ath6kl/sdio.c
@@ -341,11 +341,14 @@
scat_list_sz = (n_scat_entry - 1) * sizeof(struct hif_scatter_item);
scat_req_sz = sizeof(*s_req) + scat_list_sz;
- if (!virt_scat)
+ if (!virt_scat) {
sg_sz = sizeof(struct scatterlist) * n_scat_entry;
- else
+ buf_sz = 0;
+ } else {
+ sg_sz = 0;
buf_sz = 2 * L1_CACHE_BYTES +
ATH6KL_MAX_TRANSFER_SIZE_PER_SCATTER;
+ }
for (i = 0; i < n_scat_req; i++) {
/* allocate the scatter request */
--- drivers/gpu/drm/i915/intel_display.c
+++ drivers/gpu/drm/i915/intel_display.c
@@ -6216,7 +6216,7 @@
obj = work->old_fb_obj;
atomic_clear_mask(1 << intel_crtc->plane,
- &obj->pending_flip.counter);
+ &obj->pending_flip);
wake_up(&dev_priv->pending_flip_queue);
schedule_work(&work->work);

View file

@ -0,0 +1,37 @@
--- compat-drivers-3.8-rc7-1-u.orig/net/bluetooth/rfcomm/tty.c 2013-02-11 00:31:59.000000000 +0100
+++ compat-drivers-3.8-rc7-1-u/net/bluetooth/rfcomm/tty.c 2013-02-13 12:39:58.983001215 +0100
@@ -309,7 +309,7 @@
BUG_ON(test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags));
spin_lock_irqsave(&dev->port.lock, flags);
- if (dev->port.count > 0) {
+ if (atomic_read(&dev->port.count) > 0) {
spin_unlock_irqrestore(&dev->port.lock, flags);
return;
}
@@ -664,10 +664,10 @@
return -ENODEV;
BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst,
- dev->channel, dev->port.count);
+ dev->channel, atomic_read(&dev->port.count));
spin_lock_irqsave(&dev->port.lock, flags);
- if (++dev->port.count > 1) {
+ if (atomic_inc_return(&dev->port.count) > 1) {
spin_unlock_irqrestore(&dev->port.lock, flags);
return 0;
}
@@ -736,10 +736,10 @@
return;
BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
- dev->port.count);
+ atomic_read(&dev->port.count));
spin_lock_irqsave(&dev->port.lock, flags);
- if (!--dev->port.count) {
+ if (!atomic_dec_return(&dev->port.count)) {
spin_unlock_irqrestore(&dev->port.lock, flags);
if (dev->tty_dev->parent)
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,29))

View file

@ -3,7 +3,8 @@
<pkgmetadata>
<use>
<flag name="injection">Add patches for better wifi injection support</flag>
<flag name="desperately-build-all-modules">Bypass any filtering of the modules and build them all. Use only when no other flag works!</flag>
<flag name="build-all-modules">Bypass any filtering of the modules and build them all. Use only when no other flag works!</flag>
<flag name="compat_drivers_ethernet_alx">COMPAT_DRIVERS_ETHERNET setting to build driver for alx ethernet cards</flag>
<flag name="compat_drivers_ethernet_atl1">COMPAT_DRIVERS_ETHERNET setting to build driver for atl1 ethernet cards</flag>
<flag name="compat_drivers_ethernet_atl1c">COMPAT_DRIVERS_ETHERNET setting to build driver for atl1c ethernet cards</flag>
<flag name="compat_drivers_ethernet_atl1e">COMPAT_DRIVERS_ETHERNET setting to build driver for atl1e ethernet cards</flag>
@ -25,6 +26,7 @@
<flag name="compat_drivers_wifi_brcmsmac">COMPAT_DRIVERS_WIFI setting to build driver for brcmsmac wireless cards</flag>
<flag name="compat_drivers_wifi_carl9170">COMPAT_DRIVERS_WIFI setting to build driver for carl9170 wireless cards</flag>
<flag name="compat_drivers_wifi_rt2x00">COMPAT_DRIVERS_WIFI setting to build driver for rt2x00 wireless cards</flag>
<flag name="compat_drivers_wifi_wil6210">COMPAT_DRIVERS_WIFI setting to build driver for wil6210 wireless cards</flag>
<flag name="compat_drivers_wifi_wl1251">COMPAT_DRIVERS_WIFI setting to build driver for wl1251 wireless cards</flag>
<flag name="compat_drivers_wifi_wl12xx">COMPAT_DRIVERS_WIFI setting to build driver for wl12xx wireless cards</flag>
<flag name="compat_drivers_wifi_wl18xx">COMPAT_DRIVERS_WIFI setting to build driver for wl18xx wireless cards</flag>