* Re: [Bug 11749] Ath5k driver has too many interrupts per second at idle [not found] ` <20081013150525.884BC108058@picon.linux-foundation.org> @ 2008-10-13 19:06 ` Luis R. Rodriguez 2008-10-13 19:14 ` [ath5k-devel] " Nick Kossifidis 0 siblings, 1 reply; 12+ messages in thread From: Luis R. Rodriguez @ 2008-10-13 19:06 UTC (permalink / raw) To: linux-wireless, yang.y.yi, Vikram Kandukuri, Jothikumar Mothilal Cc: ath5k-devel [-- Attachment #1: Type: text/plain, Size: 2061 bytes --] On Mon, Oct 13, 2008 at 8:05 AM, <bugme-daemon@bugzilla.kernel.org> wrote: > http://bugzilla.kernel.org/show_bug.cgi?id=11749 --- Bug description from kernel.org bugzilla Latest working kernel version: None Earliest failing kernel version: Unknow Distribution: all Hardware Environment: Atheros wireless chipset Software Environment: Fedora Problem Description: ath5k driver has many inperrupts per second although the system is idle. I used AspierOne to test it, interrupts are so many that CPU's C3 residence time is only 20 milliseconds or less, there isn't any valid traffic on my wireless network except beacon frame. I tested X61 in the same wireless environment, number of interrupt is only 1 per second, X61 has the latest Intel wireless chipset and 2.6.27 kernel was running. So i think ath5k and ath9k should can do as Intel wireless driver does, otherwise, CPU can't stay at C3 with longer time because of wireless interrupts. Steps to reproduce: 1. Enable wireless on platform with Atheros wireless chipset. 2. watch cat /proc/interrupts --- Folks, ANI is not handled yet in ath5k (and won't be on 2.6.26). What I recommend is to try disabling MIB interrupts on the stable kernels where you won't make use of MIB statistics, which you need for ANI. Once you have ANI please enable the MIB interrupt. yang.y.yi, please try this patch (also attached for your convenience) and let us know if you see a difference. Luis diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 0676c6d..c18ead9 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c @@ -2246,8 +2246,7 @@ ath5k_init(struct ath5k_softc *sc) * Enable interrupts. */ sc->imask = AR5K_INT_RX | AR5K_INT_TX | AR5K_INT_RXEOL | - AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL | - AR5K_INT_MIB; + AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL; ath5k_hw_set_intr(sc->ah, sc->imask); /* Set ack to be sent at low bit-rates */ [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: ath5k-disable-mib.patch --] [-- Type: text/x-patch; name=ath5k-disable-mib.patch, Size: 551 bytes --] diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 0676c6d..c18ead9 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c @@ -2246,8 +2246,7 @@ ath5k_init(struct ath5k_softc *sc) * Enable interrupts. */ sc->imask = AR5K_INT_RX | AR5K_INT_TX | AR5K_INT_RXEOL | - AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL | - AR5K_INT_MIB; + AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL; ath5k_hw_set_intr(sc->ah, sc->imask); /* Set ack to be sent at low bit-rates */ ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-10-13 19:06 ` [Bug 11749] Ath5k driver has too many interrupts per second at idle Luis R. Rodriguez @ 2008-10-13 19:14 ` Nick Kossifidis 2008-11-13 6:12 ` Xu, Martin 0 siblings, 1 reply; 12+ messages in thread From: Nick Kossifidis @ 2008-10-13 19:14 UTC (permalink / raw) To: Luis R. Rodriguez Cc: linux-wireless, yang.y.yi, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel 2008/10/13 Luis R. Rodriguez <mcgrof@gmail.com>: > On Mon, Oct 13, 2008 at 8:05 AM, <bugme-daemon@bugzilla.kernel.org> wrote: >> http://bugzilla.kernel.org/show_bug.cgi?id=11749 > > --- > Bug description from kernel.org bugzilla > > Latest working kernel version: None > Earliest failing kernel version: Unknow > Distribution: all > Hardware Environment: Atheros wireless chipset > Software Environment: Fedora > Problem Description: ath5k driver has many inperrupts per second although the > system is idle. > > I used AspierOne to test it, interrupts are so many that CPU's C3 residence > time is only 20 milliseconds or less, there isn't any valid traffic on my > wireless network except beacon frame. > > I tested X61 in the same wireless environment, number of interrupt is only 1 > per second, X61 has the latest Intel wireless chipset and 2.6.27 kernel was > running. > > So i think ath5k and ath9k should can do as Intel wireless driver does, > otherwise, CPU can't stay at C3 with longer time because of wireless > interrupts. > > Steps to reproduce: > 1. Enable wireless on platform with Atheros wireless chipset. > 2. watch cat /proc/interrupts > > --- > > Folks, ANI is not handled yet in ath5k (and won't be on 2.6.26). What > I recommend is to try disabling MIB interrupts on the stable kernels > where you won't make use of MIB statistics, which you need for ANI. > Once you have ANI please enable the MIB interrupt. > > yang.y.yi, please try this patch (also attached for your convenience) > and let us know if you see a difference. > > Luis > > diff --git a/drivers/net/wireless/ath5k/base.c > b/drivers/net/wireless/ath5k/base.c > index 0676c6d..c18ead9 100644 > --- a/drivers/net/wireless/ath5k/base.c > +++ b/drivers/net/wireless/ath5k/base.c > @@ -2246,8 +2246,7 @@ ath5k_init(struct ath5k_softc *sc) > * Enable interrupts. > */ > sc->imask = AR5K_INT_RX | AR5K_INT_TX | AR5K_INT_RXEOL | > - AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL | > - AR5K_INT_MIB; > + AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL; > > ath5k_hw_set_intr(sc->ah, sc->imask); > /* Set ack to be sent at low bit-rates */ > Acked-by: Nick Kossifidis <mickflemm@gmail.com> -- GPG ID: 0xD21DB2DB As you read this post global entropy rises. Have Fun ;-) Nick ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-10-13 19:14 ` [ath5k-devel] " Nick Kossifidis @ 2008-11-13 6:12 ` Xu, Martin 2008-11-13 16:26 ` Bob Copeland 0 siblings, 1 reply; 12+ messages in thread From: Xu, Martin @ 2008-11-13 6:12 UTC (permalink / raw) To: Nick Kossifidis, Luis R. Rodriguez Cc: linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y Hi all: I have a patch that can be used to fix the bug. The patch resolved the issue by disabling the beacon filter when disassociated with AP and enabling beacon when associate with AP. See http://bugzilla.kernel.org/show_bug.cgi?id=11749 Please review it. Thanks! diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 34cd1a4..d774a6a 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c @@ -241,6 +241,10 @@ static int ath5k_get_tx_stats(struct ieee80211_hw *hw, static u64 ath5k_get_tsf(struct ieee80211_hw *hw); static void ath5k_reset_tsf(struct ieee80211_hw *hw); static int ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb); +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_bss_conf *bss_conf, + u32 changes); static struct ieee80211_ops ath5k_hw_ops = { .tx = ath5k_tx, @@ -257,6 +261,7 @@ static struct ieee80211_ops ath5k_hw_ops = { .get_tx_stats = ath5k_get_tx_stats, .get_tsf = ath5k_get_tsf, .reset_tsf = ath5k_reset_tsf, + .bss_info_changed = ath5k_bss_info_changed, }; /* @@ -2952,7 +2957,7 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, sc->opmode != NL80211_IFTYPE_MESH_POINT && test_bit(ATH_STAT_PROMISC, sc->status)) rfilt |= AR5K_RX_FILTER_PROM; - if (sc->opmode == NL80211_IFTYPE_STATION || + if ( (sc->opmode == NL80211_IFTYPE_STATION && sc->assoc) || sc->opmode == NL80211_IFTYPE_ADHOC || sc->opmode == NL80211_IFTYPE_AP) rfilt |= AR5K_RX_FILTER_BEACON; @@ -3093,3 +3098,54 @@ ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb) return ret; } +static void +enable_beacon_filter(struct ieee80211_hw *hw) +{ + struct ath5k_softc *sc = hw->priv; + struct ath5k_hw *ah = sc->ah; + u32 rfilt; + rfilt = ath5k_hw_get_rx_filter(ah); + if ( !(rfilt & AR5K_RX_FILTER_BEACON) ){ + rfilt |= AR5K_RX_FILTER_BEACON; + ath5k_hw_set_rx_filter(ah,rfilt); + sc->filter_flags = rfilt; + } + rfilt = ath5k_hw_get_rx_filter(ah); + return; +} + +static void +disable_beacon_filter(struct ieee80211_hw *hw) +{ + struct ath5k_softc *sc = hw->priv; + struct ath5k_hw *ah = sc->ah; + u32 rfilt; + rfilt = ath5k_hw_get_rx_filter(ah); + if ( rfilt & AR5K_RX_FILTER_BEACON ){ + rfilt &= ~AR5K_RX_FILTER_BEACON; + ath5k_hw_set_rx_filter(ah,rfilt); + sc->filter_flags = rfilt; + } + + return; +} + +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_bss_conf *bss_conf, + u32 changes) +{ + struct ath5k_softc *sc = hw->priv; + if (changes & BSS_CHANGED_ASSOC){ + mutex_lock(&sc->lock); + sc->assoc = bss_conf->assoc; + if ( sc->opmode == NL80211_IFTYPE_STATION && sc-> assoc){ + enable_beacon_filter(hw); + } + if ( sc->opmode == NL80211_IFTYPE_STATION && !sc-> assoc ){ + disable_beacon_filter(hw); + } + mutex_unlock(&sc->lock); + } + return; +} diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h index 06d1054..facc60d 100644 --- a/drivers/net/wireless/ath5k/base.h +++ b/drivers/net/wireless/ath5k/base.h @@ -179,6 +179,7 @@ struct ath5k_softc { struct timer_list calib_tim; /* calibration timer */ int power_level; /* Requested tx power in dbm */ + bool assoc; /* assocate state */ }; #define ath5k_hw_hasbssidmask(_ah) \ ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-13 6:12 ` Xu, Martin @ 2008-11-13 16:26 ` Bob Copeland 2008-11-17 7:35 ` Xu, Martin 0 siblings, 1 reply; 12+ messages in thread From: Bob Copeland @ 2008-11-13 16:26 UTC (permalink / raw) To: Xu, Martin Cc: Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y On Thu, Nov 13, 2008 at 1:12 AM, Xu, Martin <martin.xu@intel.com> wrote: > Hi all: > I have a patch that can be used to fix the bug. > The patch resolved the issue by disabling the beacon filter when disassociated with AP and enabling beacon when associate with AP. > See http://bugzilla.kernel.org/show_bug.cgi?id=11749 > Please review it. Thanks! Thanks for the patch! I think the basic idea is ok (we only have beacons if PRBRESP_PROMISC is set or if we are in STA mode _and_ associated, or in IBSS mode). However, there are lots of CodingStyle issues with the patch. Please run scripts/checkpatch.pl on it and fix the corresponding whitespace issues. +static void +enable_beacon_filter(struct ieee80211_hw *hw) +{ + struct ath5k_softc *sc = hw->priv; + struct ath5k_hw *ah = sc->ah; + u32 rfilt; + rfilt = ath5k_hw_get_rx_filter(ah); + if ( !(rfilt & AR5K_RX_FILTER_BEACON) ){ Probably not worth it to do the test, since this isn't going to get called that often. + rfilt |= AR5K_RX_FILTER_BEACON; + ath5k_hw_set_rx_filter(ah,rfilt); + sc->filter_flags = rfilt; + } + rfilt = ath5k_hw_get_rx_filter(ah); + return; Above two lines are unnecessary. +} You remove a heap of code by making this set_beacon_filter(hw, bool enable) and cleaning up the branches in bss_info_changed. I believe this can race with configure_filter as well (but configure_filter already races with anything that touches sc->status...). > @@ -179,6 +179,7 @@ struct ath5k_softc { > > struct timer_list calib_tim; /* calibration timer */ > int power_level; /* Requested tx power in dbm */ > + bool assoc; /* assocate state */ > }; s/assocate/associate. Also in ath5k we sometimes use sc->status for such flags, though this could go either way. -- Bob Copeland %% www.bobcopeland.com ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-13 16:26 ` Bob Copeland @ 2008-11-17 7:35 ` Xu, Martin 2008-11-17 13:37 ` Bob Copeland 0 siblings, 1 reply; 12+ messages in thread From: Xu, Martin @ 2008-11-17 7:35 UTC (permalink / raw) To: Bob Copeland Cc: Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y SGkgYm9io7oNClBsZWFzZSByZXZpZXcgYmVsb3cgcGF0Y2ggd2hpY2ggaGFzIGJlZW4gbW9kaWZp ZWQgYWNjb3JkaW5nIHRvIHlvdXIgY29tbWVudHMuDQoNCg0KRnJvbTogTWFydGluIFh1IDxtYXJ0 aW4ueHVAaW50ZWwuY29tPg0KU3ViamVjdDogZGlzYWJsZSBiZWFjb24gZmlsdGVyIHdoZW4gc3Rh dGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSBBUC4NCg0KQXRoNWsgZHJpdmVyIGhhcyB0 b28gbWFueSBpbnRlcnJ1cHRzIHBlciBzZWNvbmQgYXQgaWRsZQ0KaHR0cDovL2J1Z3ppbGxhLmtl cm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzQ5DQoNClNpZ25lZC1vZmYtYnk6IE1hcnRpbiBY dSA8bWFydGluLnh1QGludGVsLmNvbT4NCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aDVrL2Jhc2UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aDVrL2Jhc2UuYw0KaW5k ZXggMzRjZDFhNC4uYmVkMTM3NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aDVrL2Jhc2UuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoNWsvYmFzZS5jDQpAQCAt MjQxLDYgKzI0MSwxMCBAQCBzdGF0aWMgaW50IGF0aDVrX2dldF90eF9zdGF0cyhzdHJ1Y3QgaWVl ZTgwMjExX2h3ICpodywNCiBzdGF0aWMgdTY0IGF0aDVrX2dldF90c2Yoc3RydWN0IGllZWU4MDIx MV9odyAqaHcpOw0KIHN0YXRpYyB2b2lkIGF0aDVrX3Jlc2V0X3RzZihzdHJ1Y3QgaWVlZTgwMjEx X2h3ICpodyk7DQogc3RhdGljIGludCBhdGg1a19iZWFjb25fdXBkYXRlKHN0cnVjdCBhdGg1a19z b2Z0YyAqc2MsIHN0cnVjdCBza19idWZmICpza2IpOw0KK3N0YXRpYyB2b2lkIGF0aDVrX2Jzc19p bmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsDQorCQkJCXN0cnVjdCBpZWVlODAy MTFfdmlmICp2aWYsDQorCQkJCXN0cnVjdCBpZWVlODAyMTFfYnNzX2NvbmYgKmJzc19jb25mLA0K KwkJCQl1MzIgY2hhbmdlcyk7DQogDQogc3RhdGljIHN0cnVjdCBpZWVlODAyMTFfb3BzIGF0aDVr X2h3X29wcyA9IHsNCiAJLnR4IAkJPSBhdGg1a190eCwNCkBAIC0yOTUyLDcgKzI5NTYsNyBAQCBz dGF0aWMgdm9pZCBhdGg1a19jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3 LA0KIAkJc2MtPm9wbW9kZSAhPSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UICYmDQogCQl0ZXN0 X2JpdChBVEhfU1RBVF9QUk9NSVNDLCBzYy0+c3RhdHVzKSkNCiAJCXJmaWx0IHw9IEFSNUtfUlhf RklMVEVSX1BST007DQotCWlmIChzYy0+b3Btb2RlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04g fHwNCisJaWYgKChzYy0+b3Btb2RlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04gJiYgc2MtPmFz c29jKSB8fA0KIAkJc2MtPm9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9BREhPQyB8fA0KIAkJc2Mt Pm9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9BUCkNCiAJCXJmaWx0IHw9IEFSNUtfUlhfRklMVEVS X0JFQUNPTjsNCkBAIC0zMDkyLDQgKzMwOTYsMzkgQEAgYXRoNWtfYmVhY29uX3VwZGF0ZShzdHJ1 Y3QgYXRoNWtfc29mdGMgKnNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIA0KIAlyZXR1cm4gcmV0 Ow0KIH0NCitzdGF0aWMgdm9pZA0KK3NldF9iZWFjb25fZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFf aHcgKmh3LCBib29sIGVuYWJsZSkNCit7DQorCXN0cnVjdCBhdGg1a19zb2Z0YyAqc2MgPSBody0+ cHJpdjsNCisJc3RydWN0IGF0aDVrX2h3ICphaCA9IHNjLT5haDsNCisJdTMyIHJmaWx0Ow0KKwly ZmlsdCA9IGF0aDVrX2h3X2dldF9yeF9maWx0ZXIoYWgpOw0KKwlpZiAoZW5hYmxlKQ0KKwkJcmZp bHQgfD0gQVI1S19SWF9GSUxURVJfQkVBQ09OOw0KKwllbHNlDQorCQlyZmlsdCAmPSB+QVI1S19S WF9GSUxURVJfQkVBQ09OOw0KKwlhdGg1a19od19zZXRfcnhfZmlsdGVyKGFoLCByZmlsdCk7DQor CXNjLT5maWx0ZXJfZmxhZ3MgPSByZmlsdDsNCisJcmV0dXJuOw0KK30NCisNCitzdGF0aWMgdm9p ZCBhdGg1a19ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KKwkJCQkg ICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCisJCQkJICAgIHN0cnVjdCBpZWVlODAyMTFf YnNzX2NvbmYgKmJzc19jb25mLA0KKwkJCQkgICAgdTMyIGNoYW5nZXMpDQorew0KKwlzdHJ1Y3Qg YXRoNWtfc29mdGMgKnNjID0gaHctPnByaXY7DQorCWlmIChjaGFuZ2VzICYgQlNTX0NIQU5HRURf QVNTT0MpIHsNCisJCW11dGV4X2xvY2soJnNjLT5sb2NrKTsNCisJCXNjLT5hc3NvYyA9IGJzc19j b25mLT5hc3NvYzsNCisJCWlmIChzYy0+b3Btb2RlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04p IHsNCisJCQlpZiAoc2MtPmFzc29jKQ0KKwkJCQlzZXRfYmVhY29uX2ZpbHRlcihodywgMSk7DQor CQkJZWxzZQ0KKwkJCQlzZXRfYmVhY29uX2ZpbHRlcihodywgMCk7DQorCQl9DQorCQltdXRleF91 bmxvY2soJnNjLT5sb2NrKTsNCisJfQ0KKwlyZXR1cm47DQorfQ0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aDVrL2Jhc2UuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aDVrL2Jhc2UuaA0KaW5kZXggMDZkMTA1NC4uZmFjYzYwZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aDVrL2Jhc2UuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo NWsvYmFzZS5oDQpAQCAtMTc5LDYgKzE3OSw3IEBAIHN0cnVjdCBhdGg1a19zb2Z0YyB7DQogDQog CXN0cnVjdCB0aW1lcl9saXN0CWNhbGliX3RpbTsJLyogY2FsaWJyYXRpb24gdGltZXIgKi8NCiAJ aW50IAkJCXBvd2VyX2xldmVsOwkvKiBSZXF1ZXN0ZWQgdHggcG93ZXIgaW4gZGJtICovDQorCWJv b2wJCQlhc3NvYzsJCS8qIGFzc29jYXRlIHN0YXRlICovDQogfTsNCiANCiAjZGVmaW5lIGF0aDVr X2h3X2hhc2Jzc2lkbWFzayhfYWgpIFwNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy b206IGJjb3BlbGFuZEBnbWFpbC5jb20gW21haWx0bzpiY29wZWxhbmRAZ21haWwuY29tXSBPbiBC ZWhhbGYgT2YgQm9iIENvcGVsYW5kDQpTZW50OiAyMDA4xOoxMdTCMTTI1SAwOjI2DQpUbzogWHUs IE1hcnRpbg0KQ2M6IE5pY2sgS29zc2lmaWRpczsgTHVpcyBSLiBSb2RyaWd1ZXo7IGxpbnV4LXdp cmVsZXNzOyB5YW5nLnkueWlAZ21haWwuY29tOyBWaWtyYW0gS2FuZHVrdXJpOyBKb3RoaWt1bWFy IE1vdGhpbGFsOyBhdGg1ay1kZXZlbEBsaXN0cy5hdGg1ay5vcmc7IExpdSwgQmluZyBXZWk7IFNl bGJhaywgUm9sbGEgTjsgV2FuZywgWW9uZyBZDQpTdWJqZWN0OiBSZTogW2F0aDVrLWRldmVsXSBb QnVnIDExNzQ5XSBBdGg1ayBkcml2ZXIgaGFzIHRvbyBtYW55IGludGVycnVwdHMgcGVyIHNlY29u ZCBhdCBpZGxlDQoNCk9uIFRodSwgTm92IDEzLCAyMDA4IGF0IDE6MTIgQU0sIFh1LCBNYXJ0aW4g PG1hcnRpbi54dUBpbnRlbC5jb20+IHdyb3RlOg0KPiBIaSBhbGw6DQo+IEkgaGF2ZSBhIHBhdGNo IHRoYXQgY2FuIGJlIHVzZWQgdG8gZml4IHRoZSBidWcuDQo+IFRoZSBwYXRjaCByZXNvbHZlZCB0 aGUgaXNzdWUgYnkgZGlzYWJsaW5nIHRoZSBiZWFjb24gZmlsdGVyIHdoZW4gZGlzYXNzb2NpYXRl ZCB3aXRoIEFQIGFuZCBlbmFibGluZyBiZWFjb24gd2hlbiBhc3NvY2lhdGUgd2l0aCBBUC4NCj4g U2VlIGh0dHA6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc0OQ0KPiBQ bGVhc2UgcmV2aWV3IGl0LiBUaGFua3MhDQoNClRoYW5rcyBmb3IgdGhlIHBhdGNoIQ0KDQpJIHRo aW5rIHRoZSBiYXNpYyBpZGVhIGlzIG9rICh3ZSBvbmx5IGhhdmUgYmVhY29ucyBpZiBQUkJSRVNQ X1BST01JU0MgaXMgc2V0DQpvciBpZiB3ZSBhcmUgaW4gU1RBIG1vZGUgX2FuZF8gYXNzb2NpYXRl ZCwgb3IgaW4gSUJTUyBtb2RlKS4gIEhvd2V2ZXIsIHRoZXJlDQphcmUgbG90cyBvZiBDb2RpbmdT dHlsZSBpc3N1ZXMgd2l0aCB0aGUgcGF0Y2guICBQbGVhc2UgcnVuDQpzY3JpcHRzL2NoZWNrcGF0 Y2gucGwgb24gaXQgYW5kIGZpeCB0aGUgY29ycmVzcG9uZGluZyB3aGl0ZXNwYWNlIGlzc3Vlcy4N Cg0KK3N0YXRpYyB2b2lkDQorZW5hYmxlX2JlYWNvbl9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9o dyAqaHcpDQorew0KKyAgICAgICAgc3RydWN0IGF0aDVrX3NvZnRjICpzYyA9IGh3LT5wcml2Ow0K KyAgICAgICAgc3RydWN0IGF0aDVrX2h3ICphaCA9IHNjLT5haDsNCisgICAgICAgIHUzMiByZmls dDsNCisgICAgICAgIHJmaWx0ID0gYXRoNWtfaHdfZ2V0X3J4X2ZpbHRlcihhaCk7DQorICAgICAg ICBpZiAoICEocmZpbHQgJiBBUjVLX1JYX0ZJTFRFUl9CRUFDT04pICl7DQoNClByb2JhYmx5IG5v dCB3b3J0aCBpdCB0byBkbyB0aGUgdGVzdCwgc2luY2UgdGhpcyBpc24ndCBnb2luZyB0byBnZXQN CmNhbGxlZCB0aGF0IG9mdGVuLg0KDQorICAgICAgICAgICAgICAgIHJmaWx0IHw9IEFSNUtfUlhf RklMVEVSX0JFQUNPTjsNCisgICAgICAgICAgICAgICAgYXRoNWtfaHdfc2V0X3J4X2ZpbHRlcihh aCxyZmlsdCk7DQorICAgICAgICAgICAgICAgIHNjLT5maWx0ZXJfZmxhZ3MgPSByZmlsdDsNCisg ICAgICAgIH0NCisgICAgICAgIHJmaWx0ID0gYXRoNWtfaHdfZ2V0X3J4X2ZpbHRlcihhaCk7DQor ICAgICAgICByZXR1cm47DQoNCkFib3ZlIHR3byBsaW5lcyBhcmUgdW5uZWNlc3NhcnkuDQoNCit9 DQoNCllvdSByZW1vdmUgYSBoZWFwIG9mIGNvZGUgYnkgbWFraW5nIHRoaXMgc2V0X2JlYWNvbl9m aWx0ZXIoaHcsIGJvb2wgZW5hYmxlKQ0KYW5kIGNsZWFuaW5nIHVwIHRoZSBicmFuY2hlcyBpbiBi c3NfaW5mb19jaGFuZ2VkLiAgSSBiZWxpZXZlIHRoaXMgY2FuIHJhY2UNCndpdGggY29uZmlndXJl X2ZpbHRlciBhcyB3ZWxsIChidXQgY29uZmlndXJlX2ZpbHRlciBhbHJlYWR5IHJhY2VzIHdpdGgN CmFueXRoaW5nIHRoYXQgdG91Y2hlcyBzYy0+c3RhdHVzLi4uKS4NCg0KPiBAQCAtMTc5LDYgKzE3 OSw3IEBAIHN0cnVjdCBhdGg1a19zb2Z0YyB7DQo+DQo+ICAgICAgICBzdHJ1Y3QgdGltZXJfbGlz dCAgICAgICBjYWxpYl90aW07ICAgICAgLyogY2FsaWJyYXRpb24gdGltZXIgKi8NCj4gICAgICAg IGludCAgICAgICAgICAgICAgICAgICAgIHBvd2VyX2xldmVsOyAgICAvKiBSZXF1ZXN0ZWQgdHgg cG93ZXIgaW4gZGJtICovDQo+ICsgICAgICAgYm9vbCAgICAgICAgICAgICAgICAgICAgYXNzb2M7 ICAgICAgICAgIC8qIGFzc29jYXRlIHN0YXRlICovDQo+ICB9Ow0KDQpzL2Fzc29jYXRlL2Fzc29j aWF0ZS4gIEFsc28gaW4gYXRoNWsgd2Ugc29tZXRpbWVzIHVzZSBzYy0+c3RhdHVzIGZvciBzdWNo DQpmbGFncywgdGhvdWdoIHRoaXMgY291bGQgZ28gZWl0aGVyIHdheS4NCg0KLS0gDQpCb2IgQ29w ZWxhbmQgJSUgd3d3LmJvYmNvcGVsYW5kLmNvbQ0K ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-17 7:35 ` Xu, Martin @ 2008-11-17 13:37 ` Bob Copeland 2008-11-20 3:13 ` Xu, Martin 0 siblings, 1 reply; 12+ messages in thread From: Bob Copeland @ 2008-11-17 13:37 UTC (permalink / raw) To: Xu, Martin Cc: Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y On Mon, Nov 17, 2008 at 03:35:07PM +0800, Xu, Martin wrote: > Hi bob?? > Please review below patch which has been modified according to your comments. Thanks, looks a lot better. I still have a few minor comments: > +static void > +set_beacon_filter(struct ieee80211_hw *hw, bool enable) > +{ [...] > + return; > +} Please don't use 'return' for void functions. > +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, > + struct ieee80211_vif *vif, > + struct ieee80211_bss_conf *bss_conf, > + u32 changes) > +{ > + struct ath5k_softc *sc = hw->priv; > + if (changes & BSS_CHANGED_ASSOC) { > + mutex_lock(&sc->lock); > + sc->assoc = bss_conf->assoc; > + if (sc->opmode == NL80211_IFTYPE_STATION) { > + if (sc->assoc) > + set_beacon_filter(hw, 1); > + else > + set_beacon_filter(hw, 0); No need for test: set_beacon_filter(hw, sc->assoc); > + } > + mutex_unlock(&sc->lock); > + } > + return; ditto above comment Thanks, Bob -- Bob Copeland %% www.bobcopeland.com ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-17 13:37 ` Bob Copeland @ 2008-11-20 3:13 ` Xu, Martin 2008-11-20 22:01 ` Bob Copeland 2008-11-21 20:27 ` John W. Linville 0 siblings, 2 replies; 12+ messages in thread From: Xu, Martin @ 2008-11-20 3:13 UTC (permalink / raw) To: Bob Copeland Cc: Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y Hi Bob: Please review below patch thanks. From: Martin Xu <martin.xu@intel.com> Subject: disable beacon filter when station is not associated with any AP. Ath5k driver has too many interrupts per second at idle http://bugzilla.kernel.org/show_bug.cgi?id=11749 Signed-off-by: Martin Xu <martin.xu@intel.com> diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 34cd1a4..37da7cc 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c @@ -241,6 +241,10 @@ static int ath5k_get_tx_stats(struct ieee80211_hw *hw, static u64 ath5k_get_tsf(struct ieee80211_hw *hw); static void ath5k_reset_tsf(struct ieee80211_hw *hw); static int ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb); +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_bss_conf *bss_conf, + u32 changes); static struct ieee80211_ops ath5k_hw_ops = { .tx = ath5k_tx, @@ -2952,7 +2956,7 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, sc->opmode != NL80211_IFTYPE_MESH_POINT && test_bit(ATH_STAT_PROMISC, sc->status)) rfilt |= AR5K_RX_FILTER_PROM; - if (sc->opmode == NL80211_IFTYPE_STATION || + if ((sc->opmode == NL80211_IFTYPE_STATION && sc->assoc) || sc->opmode == NL80211_IFTYPE_ADHOC || sc->opmode == NL80211_IFTYPE_AP) rfilt |= AR5K_RX_FILTER_BEACON; @@ -3092,4 +3096,32 @@ ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb) return ret; } +static void +set_beacon_filter(struct ieee80211_hw *hw, bool enable) +{ + struct ath5k_softc *sc = hw->priv; + struct ath5k_hw *ah = sc->ah; + u32 rfilt; + rfilt = ath5k_hw_get_rx_filter(ah); + if (enable) + rfilt |= AR5K_RX_FILTER_BEACON; + else + rfilt &= ~AR5K_RX_FILTER_BEACON; + ath5k_hw_set_rx_filter(ah, rfilt); + sc->filter_flags = rfilt; +} +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_bss_conf *bss_conf, + u32 changes) +{ + struct ath5k_softc *sc = hw->priv; + if (changes & BSS_CHANGED_ASSOC) { + mutex_lock(&sc->lock); + sc->assoc = bss_conf->assoc; + if (sc->opmode == NL80211_IFTYPE_STATION) + set_beacon_filter(hw, sc->assoc); + mutex_unlock(&sc->lock); + } +} diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h index 06d1054..facc60d 100644 --- a/drivers/net/wireless/ath5k/base.h +++ b/drivers/net/wireless/ath5k/base.h @@ -179,6 +179,7 @@ struct ath5k_softc { struct timer_list calib_tim; /* calibration timer */ int power_level; /* Requested tx power in dbm */ + bool assoc; /* assocate state */ }; #define ath5k_hw_hasbssidmask(_ah) \ ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-20 3:13 ` Xu, Martin @ 2008-11-20 22:01 ` Bob Copeland 2008-11-20 22:41 ` Luis R. Rodriguez 2008-11-21 20:27 ` John W. Linville 1 sibling, 1 reply; 12+ messages in thread From: Bob Copeland @ 2008-11-20 22:01 UTC (permalink / raw) To: Xu, Martin Cc: Liu, Bing Wei, ath5k-devel@lists.ath5k.org, linux-wireless, Wang, Yong Y, Vikram Kandukuri, Jothikumar Mothilal, Selbak, Rolla N, yang.y.yi@gmail.com, Luis R. Rodriguez, Nick Kossifidis Hi Martin, > From: Martin Xu <martin.xu@intel.com> > Subject: disable beacon filter when station is not associated with any AP. > > Ath5k driver has too many interrupts per second at idle > http://bugzilla.kernel.org/show_bug.cgi?id=11749 > > Signed-off-by: Martin Xu <martin.xu@intel.com> Thanks for the cleanups. I don't have any objections to the patch. Anyone else want to weigh in? Patch reproduced here: > > diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c > index 34cd1a4..37da7cc 100644 > --- a/drivers/net/wireless/ath5k/base.c > +++ b/drivers/net/wireless/ath5k/base.c > @@ -241,6 +241,10 @@ static int ath5k_get_tx_stats(struct ieee80211_hw *hw, > static u64 ath5k_get_tsf(struct ieee80211_hw *hw); > static void ath5k_reset_tsf(struct ieee80211_hw *hw); > static int ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb); > +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, > + struct ieee80211_vif *vif, > + struct ieee80211_bss_conf *bss_conf, > + u32 changes); > > static struct ieee80211_ops ath5k_hw_ops = { > .tx = ath5k_tx, > @@ -2952,7 +2956,7 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw, > sc->opmode != NL80211_IFTYPE_MESH_POINT && > test_bit(ATH_STAT_PROMISC, sc->status)) > rfilt |= AR5K_RX_FILTER_PROM; > - if (sc->opmode == NL80211_IFTYPE_STATION || > + if ((sc->opmode == NL80211_IFTYPE_STATION && sc->assoc) || > sc->opmode == NL80211_IFTYPE_ADHOC || > sc->opmode == NL80211_IFTYPE_AP) > rfilt |= AR5K_RX_FILTER_BEACON; > @@ -3092,4 +3096,32 @@ ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb) > > return ret; > } > +static void > +set_beacon_filter(struct ieee80211_hw *hw, bool enable) > +{ > + struct ath5k_softc *sc = hw->priv; > + struct ath5k_hw *ah = sc->ah; > + u32 rfilt; > + rfilt = ath5k_hw_get_rx_filter(ah); > + if (enable) > + rfilt |= AR5K_RX_FILTER_BEACON; > + else > + rfilt &= ~AR5K_RX_FILTER_BEACON; > + ath5k_hw_set_rx_filter(ah, rfilt); > + sc->filter_flags = rfilt; > +} > > +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, > + struct ieee80211_vif *vif, > + struct ieee80211_bss_conf *bss_conf, > + u32 changes) > +{ > + struct ath5k_softc *sc = hw->priv; > + if (changes & BSS_CHANGED_ASSOC) { > + mutex_lock(&sc->lock); > + sc->assoc = bss_conf->assoc; > + if (sc->opmode == NL80211_IFTYPE_STATION) > + set_beacon_filter(hw, sc->assoc); > + mutex_unlock(&sc->lock); > + } > +} > diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h > index 06d1054..facc60d 100644 > --- a/drivers/net/wireless/ath5k/base.h > +++ b/drivers/net/wireless/ath5k/base.h > @@ -179,6 +179,7 @@ struct ath5k_softc { > > struct timer_list calib_tim; /* calibration timer */ > int power_level; /* Requested tx power in dbm */ > + bool assoc; /* assocate state */ > }; > > #define ath5k_hw_hasbssidmask(_ah) \ > _______________________________________________ > ath5k-devel mailing list > ath5k-devel@lists.ath5k.org > https://lists.ath5k.org/mailman/listinfo/ath5k-devel > -- Bob Copeland %% www.bobcopeland.com ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-20 22:01 ` Bob Copeland @ 2008-11-20 22:41 ` Luis R. Rodriguez 0 siblings, 0 replies; 12+ messages in thread From: Luis R. Rodriguez @ 2008-11-20 22:41 UTC (permalink / raw) To: Bob Copeland Cc: Xu, Martin, Liu, Bing Wei, ath5k-devel@lists.ath5k.org, linux-wireless, Wang, Yong Y, Vikram Kandukuri, Jothikumar Mothilal, Selbak, Rolla N, yang.y.yi@gmail.com, Luis R. Rodriguez, Nick Kossifidis On Thu, Nov 20, 2008 at 02:01:19PM -0800, Bob Copeland wrote: > Hi Martin, > > > From: Martin Xu <martin.xu@intel.com> > > Subject: disable beacon filter when station is not associated with any AP. > > > > Ath5k driver has too many interrupts per second at idle > > http://bugzilla.kernel.org/show_bug.cgi?id=11749 > > > > Signed-off-by: Martin Xu <martin.xu@intel.com> > > Thanks for the cleanups. I don't have any objections to the patch. > Anyone else want to weigh in? Acked-by: Luis R. Rodriguez <lrodriguez@atheros.com> Please close the bug report too. Luis ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-20 3:13 ` Xu, Martin 2008-11-20 22:01 ` Bob Copeland @ 2008-11-21 20:27 ` John W. Linville 2008-11-23 22:27 ` Bob Copeland 1 sibling, 1 reply; 12+ messages in thread From: John W. Linville @ 2008-11-21 20:27 UTC (permalink / raw) To: Xu, Martin Cc: Bob Copeland, Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y On Thu, Nov 20, 2008 at 11:13:18AM +0800, Xu, Martin wrote: > Hi Bob: > Please review below patch thanks. > > From: Martin Xu <martin.xu@intel.com> > Subject: disable beacon filter when station is not associated with any AP. > > Ath5k driver has too many interrupts per second at idle > http://bugzilla.kernel.org/show_bug.cgi?id=11749 > > Signed-off-by: Martin Xu <martin.xu@intel.com> > > diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c > index 34cd1a4..37da7cc 100644 > --- a/drivers/net/wireless/ath5k/base.c > +++ b/drivers/net/wireless/ath5k/base.c > @@ -241,6 +241,10 @@ static int ath5k_get_tx_stats(struct ieee80211_hw *hw, > static u64 ath5k_get_tsf(struct ieee80211_hw *hw); > static void ath5k_reset_tsf(struct ieee80211_hw *hw); > static int ath5k_beacon_update(struct ath5k_softc *sc, struct sk_buff *skb); > +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, > + struct ieee80211_vif *vif, > + struct ieee80211_bss_conf *bss_conf, > + u32 changes); > > static struct ieee80211_ops ath5k_hw_ops = { > .tx = ath5k_tx, This patch defines ath5k_bss_info_changed, but doesn't use it. Is that really what you meant to do? John -- John W. Linville Linux should be at the core linville@tuxdriver.com of your literate lifestyle. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-21 20:27 ` John W. Linville @ 2008-11-23 22:27 ` Bob Copeland 2008-11-24 2:49 ` Xu, Martin 0 siblings, 1 reply; 12+ messages in thread From: Bob Copeland @ 2008-11-23 22:27 UTC (permalink / raw) To: John W. Linville Cc: Xu, Martin, Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org, Liu, Bing Wei, Selbak, Rolla N, Wang, Yong Y On Fri, Nov 21, 2008 at 03:27:34PM -0500, John W. Linville wrote: > > +static void ath5k_bss_info_changed(struct ieee80211_hw *hw, > > + struct ieee80211_vif *vif, > > + struct ieee80211_bss_conf *bss_conf, > > + u32 changes); > > This patch defines ath5k_bss_info_changed, but doesn't use it. > Is that really what you meant to do? The first version of this patch set .bss_info_changed but it looks like it got lost along the way. Martin? -- Bob Copeland %% www.bobcopeland.com ^ permalink raw reply [flat|nested] 12+ messages in thread
* RE: [ath5k-devel] [Bug 11749] Ath5k driver has too many interrupts per second at idle 2008-11-23 22:27 ` Bob Copeland @ 2008-11-24 2:49 ` Xu, Martin 0 siblings, 0 replies; 12+ messages in thread From: Xu, Martin @ 2008-11-24 2:49 UTC (permalink / raw) To: Bob Copeland, John W. Linville Cc: Nick Kossifidis, Luis R. Rodriguez, linux-wireless, yang.y.yi@gmail.com, Vikram Kandukuri, Jothikumar Mothilal, ath5k-devel@lists.ath5k.org Qm9iOg0KWW91IGFyZSByaWdodCwgdGhlIGJzc19pbmZvcl9jaGFuZ2VkIGlzIGxvc3Qgb24gdGhl IHdheS4NClBsZWFzZSByZXZpZXcgYmVsb3cgcGF0Y2g6DQoNCkZyb206IE1hcnRpbiBYdSA8bWFy dGluLnh1QGludGVsLmNvbT4NClN1YmplY3Q6IGRpc2FibGUgYmVhY29uIGZpbHRlciB3aGVuIHN0 YXRpb24gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgQVAuDQoNCkF0aDVrIGRyaXZlciBoYXMg dG9vIG1hbnkgaW50ZXJydXB0cyBwZXIgc2Vjb25kIGF0IGlkbGUNCmh0dHA6Ly9idWd6aWxsYS5r ZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc0OQ0KDQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4g WHUgPG1hcnRpbi54dUBpbnRlbC5jb20+DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGg1ay9iYXNlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGg1ay9iYXNlLmMNCmlu ZGV4IDM0Y2QxYTQuLjViNTBmYTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGg1ay9iYXNlLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aDVrL2Jhc2UuYw0KQEAg LTI0MSw2ICsyNDEsMTAgQEAgc3RhdGljIGludCBhdGg1a19nZXRfdHhfc3RhdHMoc3RydWN0IGll ZWU4MDIxMV9odyAqaHcsDQogc3RhdGljIHU2NCBhdGg1a19nZXRfdHNmKHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3KTsNCiBzdGF0aWMgdm9pZCBhdGg1a19yZXNldF90c2Yoc3RydWN0IGllZWU4MDIx MV9odyAqaHcpOw0KIHN0YXRpYyBpbnQgYXRoNWtfYmVhY29uX3VwZGF0ZShzdHJ1Y3QgYXRoNWtf c29mdGMgKnNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCitzdGF0aWMgdm9pZCBhdGg1a19ic3Nf aW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KKwkJCQlzdHJ1Y3QgaWVlZTgw MjExX3ZpZiAqdmlmLA0KKwkJCQlzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25mICpic3NfY29uZiwN CisJCQkJdTMyIGNoYW5nZXMpOw0KIA0KIHN0YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg1 a19od19vcHMgPSB7DQogCS50eCAJCT0gYXRoNWtfdHgsDQpAQCAtMjU3LDYgKzI2MSw3IEBAIHN0 YXRpYyBzdHJ1Y3QgaWVlZTgwMjExX29wcyBhdGg1a19od19vcHMgPSB7DQogCS5nZXRfdHhfc3Rh dHMgCT0gYXRoNWtfZ2V0X3R4X3N0YXRzLA0KIAkuZ2V0X3RzZiAJPSBhdGg1a19nZXRfdHNmLA0K IAkucmVzZXRfdHNmIAk9IGF0aDVrX3Jlc2V0X3RzZiwNCisJLmJzc19pbmZvX2NoYW5nZWQgPSBh dGg1a19ic3NfaW5mb19jaGFuZ2VkLA0KIH07DQogDQogLyoNCkBAIC0yOTUyLDcgKzI5NTcsNyBA QCBzdGF0aWMgdm9pZCBhdGg1a19jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcg Kmh3LA0KIAkJc2MtPm9wbW9kZSAhPSBOTDgwMjExX0lGVFlQRV9NRVNIX1BPSU5UICYmDQogCQl0 ZXN0X2JpdChBVEhfU1RBVF9QUk9NSVNDLCBzYy0+c3RhdHVzKSkNCiAJCXJmaWx0IHw9IEFSNUtf UlhfRklMVEVSX1BST007DQotCWlmIChzYy0+b3Btb2RlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJ T04gfHwNCisJaWYgKChzYy0+b3Btb2RlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04gJiYgc2Mt PmFzc29jKSB8fA0KIAkJc2MtPm9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9BREhPQyB8fA0KIAkJ c2MtPm9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9BUCkNCiAJCXJmaWx0IHw9IEFSNUtfUlhfRklM VEVSX0JFQUNPTjsNCkBAIC0zMDkyLDQgKzMwOTcsMzIgQEAgYXRoNWtfYmVhY29uX3VwZGF0ZShz dHJ1Y3QgYXRoNWtfc29mdGMgKnNjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIA0KIAlyZXR1cm4g cmV0Ow0KIH0NCitzdGF0aWMgdm9pZA0KK3NldF9iZWFjb25fZmlsdGVyKHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LCBib29sIGVuYWJsZSkNCit7DQorCXN0cnVjdCBhdGg1a19zb2Z0YyAqc2MgPSBo dy0+cHJpdjsNCisJc3RydWN0IGF0aDVrX2h3ICphaCA9IHNjLT5haDsNCisJdTMyIHJmaWx0Ow0K KwlyZmlsdCA9IGF0aDVrX2h3X2dldF9yeF9maWx0ZXIoYWgpOw0KKwlpZiAoZW5hYmxlKQ0KKwkJ cmZpbHQgfD0gQVI1S19SWF9GSUxURVJfQkVBQ09OOw0KKwllbHNlDQorCQlyZmlsdCAmPSB+QVI1 S19SWF9GSUxURVJfQkVBQ09OOw0KKwlhdGg1a19od19zZXRfcnhfZmlsdGVyKGFoLCByZmlsdCk7 DQorCXNjLT5maWx0ZXJfZmxhZ3MgPSByZmlsdDsNCit9DQogDQorc3RhdGljIHZvaWQgYXRoNWtf YnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCisJCQkJICAgIHN0cnVj dCBpZWVlODAyMTFfdmlmICp2aWYsDQorCQkJCSAgICBzdHJ1Y3QgaWVlZTgwMjExX2Jzc19jb25m ICpic3NfY29uZiwNCisJCQkJICAgIHUzMiBjaGFuZ2VzKQ0KK3sNCisJc3RydWN0IGF0aDVrX3Nv ZnRjICpzYyA9IGh3LT5wcml2Ow0KKwlpZiAoY2hhbmdlcyAmIEJTU19DSEFOR0VEX0FTU09DKSB7 DQorCQltdXRleF9sb2NrKCZzYy0+bG9jayk7DQorCQlzYy0+YXNzb2MgPSBic3NfY29uZi0+YXNz b2M7DQorCQlpZiAoc2MtPm9wbW9kZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OKQ0KKwkJCXNl dF9iZWFjb25fZmlsdGVyKGh3LCBzYy0+YXNzb2MpOw0KKwkJbXV0ZXhfdW5sb2NrKCZzYy0+bG9j ayk7DQorCX0NCit9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoNWsvYmFz ZS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoNWsvYmFzZS5oDQppbmRleCAwNmQxMDU0Li5m YWNjNjBkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoNWsvYmFzZS5oDQor KysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGg1ay9iYXNlLmgNCkBAIC0xNzksNiArMTc5LDcg QEAgc3RydWN0IGF0aDVrX3NvZnRjIHsNCiANCiAJc3RydWN0IHRpbWVyX2xpc3QJY2FsaWJfdGlt OwkvKiBjYWxpYnJhdGlvbiB0aW1lciAqLw0KIAlpbnQgCQkJcG93ZXJfbGV2ZWw7CS8qIFJlcXVl c3RlZCB0eCBwb3dlciBpbiBkYm0gKi8NCisJYm9vbAkJCWFzc29jOwkJLyogYXNzb2NhdGUgc3Rh dGUgKi8NCiB9Ow0KIA0KICNkZWZpbmUgYXRoNWtfaHdfaGFzYnNzaWRtYXNrKF9haCkgXA0KDQot LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogbGludXgtd2lyZWxlc3Mtb3duZXJAdmdl ci5rZXJuZWwub3JnIFttYWlsdG86bGludXgtd2lyZWxlc3Mtb3duZXJAdmdlci5rZXJuZWwub3Jn XSBPbiBCZWhhbGYgT2YgQm9iIENvcGVsYW5kDQpTZW50OiAyMDA4xOoxMdTCMjTI1SA2OjI4DQpU bzogSm9obiBXLiBMaW52aWxsZQ0KQ2M6IFh1LCBNYXJ0aW47IE5pY2sgS29zc2lmaWRpczsgTHVp cyBSLiBSb2RyaWd1ZXo7IGxpbnV4LXdpcmVsZXNzOyB5YW5nLnkueWlAZ21haWwuY29tOyBWaWty YW0gS2FuZHVrdXJpOyBKb3RoaWt1bWFyIE1vdGhpbGFsOyBhdGg1ay1kZXZlbEBsaXN0cy5hdGg1 ay5vcmc7IExpdSwgQmluZyBXZWk7IFNlbGJhaywgUm9sbGEgTjsgV2FuZywgWW9uZyBZDQpTdWJq ZWN0OiBSZTogW2F0aDVrLWRldmVsXSBbQnVnIDExNzQ5XSBBdGg1ayBkcml2ZXIgaGFzIHRvbyBt YW55IGludGVycnVwdHMgcGVyIHNlY29uZCBhdCBpZGxlDQoNCk9uIEZyaSwgTm92IDIxLCAyMDA4 IGF0IDAzOjI3OjM0UE0gLTA1MDAsIEpvaG4gVy4gTGludmlsbGUgd3JvdGU6DQo+ID4gK3N0YXRp YyB2b2lkIGF0aDVrX2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsDQo+ ID4gKwkJCQlzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KPiA+ICsJCQkJc3RydWN0IGllZWU4 MDIxMV9ic3NfY29uZiAqYnNzX2NvbmYsDQo+ID4gKwkJCQl1MzIgY2hhbmdlcyk7DQo+IA0KPiBU aGlzIHBhdGNoIGRlZmluZXMgYXRoNWtfYnNzX2luZm9fY2hhbmdlZCwgYnV0IGRvZXNuJ3QgdXNl IGl0Lg0KPiBJcyB0aGF0IHJlYWxseSB3aGF0IHlvdSBtZWFudCB0byBkbz8NCg0KVGhlIGZpcnN0 IHZlcnNpb24gb2YgdGhpcyBwYXRjaCBzZXQgLmJzc19pbmZvX2NoYW5nZWQgYnV0IGl0IGxvb2tz DQpsaWtlIGl0IGdvdCBsb3N0IGFsb25nIHRoZSB3YXkuICBNYXJ0aW4/DQoNCi0tIA0KQm9iIENv cGVsYW5kICUlIHd3dy5ib2Jjb3BlbGFuZC5jb20NCg0KLS0NClRvIHVuc3Vic2NyaWJlIGZyb20g dGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC13aXJlbGVzcyIgaW4N CnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQpNb3Jl IG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZv Lmh0bWwNCg== ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2008-11-24 2:49 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <bug-11749-13098@http.bugzilla.kernel.org/>
[not found] ` <20081013150525.884BC108058@picon.linux-foundation.org>
2008-10-13 19:06 ` [Bug 11749] Ath5k driver has too many interrupts per second at idle Luis R. Rodriguez
2008-10-13 19:14 ` [ath5k-devel] " Nick Kossifidis
2008-11-13 6:12 ` Xu, Martin
2008-11-13 16:26 ` Bob Copeland
2008-11-17 7:35 ` Xu, Martin
2008-11-17 13:37 ` Bob Copeland
2008-11-20 3:13 ` Xu, Martin
2008-11-20 22:01 ` Bob Copeland
2008-11-20 22:41 ` Luis R. Rodriguez
2008-11-21 20:27 ` John W. Linville
2008-11-23 22:27 ` Bob Copeland
2008-11-24 2:49 ` Xu, Martin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).