* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Joe Perches @ 2010-06-24 23:57 UTC (permalink / raw)
To: Larry Finger
Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
linux-kernel, mb, zajec5
In-Reply-To: <4C23EFDE.3000702@lwfinger.net>
On Thu, 2010-06-24 at 18:53 -0500, Larry Finger wrote:
> I never said that b43 is unmaintained. It is definitely getting much
> more than "odd fixes".
If Stefano isn't maintaining it, who is?
^ permalink raw reply
* Re: [stable] [PATCH] iwlwifi: recalculate average tpt if not current
From: Greg KH @ 2010-06-25 0:16 UTC (permalink / raw)
To: John W. Linville
Cc: Nils Radtke, reinette.chatre, linux-wireless, linux-kernel,
stable
In-Reply-To: <20100604180328.GB2492@tuxdriver.com>
On Fri, Jun 04, 2010 at 02:03:28PM -0400, John W. Linville wrote:
> On Fri, Jun 04, 2010 at 06:32:18PM +0200, Nils Radtke wrote:
> > Hi John,
> >
> > http://marc.info/?l=linux-wireless&m=127317062320707&w=2 :
> > > > > The BUG_ON was introduced by:
> > > > > commit 3110bef78cb4282c58245bc8fd6d95d9ccb19749
> > > > > Author: Guy Cohen <guy.cohen@intel.com>
> > > > > Date: Tue Sep 9 10:54:54 2008 +0800
> > > > >
> > > > > iwlwifi: Added support for 3 antennas
> > > > >
> > > > > ... the portion adding the BUG_ON is reverted since we are encountering the error
> > > > > and BUG_ON was created with assumption that error is not encountered.
> > > > >
> > > > > Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
> > > > > ---
> > > >
> > > > I noticed this patch in your wireless-next-2.6 pull request. Since it is
> > > > addressing a system hang issue, could it perhaps be included in
> > > > wireless-2.6 also? I should have included the bug report reference for
> > > > this purpose, sorry ... it is
> > > > https://bugzilla.redhat.com/show_bug.cgi?id=588021
> > >
> > > I didn't send it that way because a) that code has been there for a
> > > really long time; and b) the reporter couldn't reliably reproduce
> > > the bug and therefore can't reliably test the fix. While I agree
> > > that the fix looks harmless, no update is zero-risk.
> > >
> > > Can you reliably hit that code? Has it been tested enough that we
> > > should risk holding-up 2.6.34's release for it?
> > I'm one of those _very reliably_ hitting this BUG. I can tell how
> > annoying it is. I have to backport the patch w/ every kernel release
> > to be able to use the wireless link _at all_. So please consider
> > it as somewhat urgent to get the patch included.
> >
> > I'm still in contact w/ Reinette regularly to get those problems fixed.
> > It involves physically moving around the city for testing any modification
> > so this working is slowly processing as it takes every time an enormous
> > amount of time to do so. Work in (slow) progress, but it's alive..
> > C.f. http://permalink.gmane.org/gmane.linux.kernel/992941
> >
> > BTW, https://bugzilla.redhat.com/show_bug.cgi?id=588021 this isn't fixed.
> > Maybe RH did fix it. kernel.org sources haven't. This is a blocker ever
> > since.
>
> The patch is in linux-2.6. I suppose it could go to stable@kernel.org.
Now queued up, thanks.
greg k-h
^ permalink raw reply
* Re: ATH5k - Signal measurement reports wrong values - "calib" did not help
From: Bruno Randolf @ 2010-06-25 0:47 UTC (permalink / raw)
To: Jaroslav Fojtik; +Cc: linux-wireless
In-Reply-To: <4C21CDD7.22303.238050@jafojtik.seznam.cz>
On Wed June 23 2010 18:03:19 Jaroslav Fojtik wrote:
> Dear Bruno & ATH5k developpers,
>
> > > > it might be interresting to see what results you get from noise
> > > > calibration. you can enable calibration debugging with "echo calib >
> > > > /sys/kernel/debug/ath5k/phy0/debug"
>
> Nothing changed after setting "calib" on.
>
> ATH5k still reports bad values.
>
> You could see a magenta line here:
> http://78.108.103.11:11080/cgi-bin/rodga.cgi
>
> regards
> Jara
hey jara!
setting "calib" is not supposed to change the results, it would just show us
debug messages in the kernel log (dmesg). have you tried the patch i sent
later? that should fix it...
bruno
^ permalink raw reply
* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Larry Finger @ 2010-06-25 2:41 UTC (permalink / raw)
To: Joe Perches
Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
linux-kernel, mb, zajec5, Gábor Stefanik,
Rafał Miłecki
In-Reply-To: <1277423829.1654.111.camel@Joe-Laptop.home>
On 06/24/2010 06:57 PM, Joe Perches wrote:
> On Thu, 2010-06-24 at 18:53 -0500, Larry Finger wrote:
>> I never said that b43 is unmaintained. It is definitely getting much
>> more than "odd fixes".
>
> If Stefano isn't maintaining it, who is?
We are working on that.
Larry
^ permalink raw reply
* Re: [PATCH] compat: backport skb_queue_splice_init
From: Luis R. Rodriguez @ 2010-06-25 4:08 UTC (permalink / raw)
To: Hauke Mehrtens; +Cc: linux-wireless, mcgrof
In-Reply-To: <1277413163-6718-1-git-send-email-hauke@hauke-m.de>
On Thu, Jun 24, 2010 at 1:59 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote:
> This is needed by iwmc3200wifi.
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Applied, thanks!
Luis
^ permalink raw reply
* Re: [PATCH 2/2] compat-wireless: activate iwmc3200wifi and WL1271_SDIO
From: Luis R. Rodriguez @ 2010-06-25 4:09 UTC (permalink / raw)
To: Hauke Mehrtens; +Cc: linux-wireless, mcgrof
In-Reply-To: <1277413205-6753-2-git-send-email-hauke@hauke-m.de>
On Thu, Jun 24, 2010 at 2:00 PM, Hauke Mehrtens <hauke@hauke-m.de> wrote:
> netdev_ops for iwmc3200wifi is backported now.
> CONFIG_WL1271_SDIO does not depend on ARM any more in mainline, but it
> needs at least kernel 2.6.32.
>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Thanks!! Applied both patches.
Luis
^ permalink raw reply
* [PATCH] mac80211: auth retries if AP sends temporary deauth
From: Paul Stewart @ 2010-06-25 7:33 UTC (permalink / raw)
To: linux-wireless
Hi folks.
If a STA gets sent a DEAUTH from an AP it is actively trying to
authenticate to, mac80211 currently shoots itself in the foot by
letting ieee80211_sta_rx_mgmt() clean up state for the connection
(removing an entry from authtry_bsses[] in wireless/mlme.c),
but the retry loop contiinues, leading to a kernel warning but no
connection.
An AP is allowed by the spec to return DEAUTH as a result of a
temporary failure, one of which is "you are already authenticated
-- what are you talking about?"
The scenario I've been running into works like this: we try to auth
to an AP that still has state about us (we may have shut down
uncleanly without sending a DEAUTH). So we send the AUTH, the server
replies with the DEAUTH above. At this point we have a stalemate
-- the state for the AP is gone, but the STA retry mechanism is still
actively repeating AUTH attempts. In fact, the "try 2" AUTH
succeeds, and the AP sends a successful AUTH response, but we don't
have the state anymore and cfg80211_send_rx_auth bombs out
with the "WARN(!done)" because the authtry_bsses entry was
deleted when we processed the DEAUTH. Therefore we don't proceed
to the association phase, and when the upper level decides to retry
with a directed probe and AUTH, the AP replies "you are already
authenticated", since from its perspective the STA has AUTHed
successfully on the previous attempt and so the cycle goes on.
There are two possible solutions that I thought of. One is that if
we get a DEAUTH as a response to an AUTH, we can not only drop
the bss state, but also kill the retry process. This slows down
the overall retry process since in most cases we need to do a
scan again as well, but then we don't perform a pointless second
(or third) AUTH. The second way is to recognize that we got
a DEAUTH while we wer AUTHing and suppress further processing,
letting the retry process continue as it has before.
The patch attached below goes the route of the latter approach.
It turns out to be a very small change. As an extension, I suppose
one could delve into the REASON code and determine whether the
failure is likely to be temporary, and choose from the above two
approaches. I considered that a bigger change, and didn't want
to go that far. Since the retry count is so small, I believe
ignoring the DEAUTH does very limited harm (hopefully it does,
because whether we like it or not, that is the current behavior).
--
Paul
--- a/compat-wireless/net/mac80211/work.c
+++ b/compat-wireless/net/mac80211/work.c
@@ -1030,6 +1030,23 @@ ieee80211_rx_result
ieee80211_work_rx_mgmt(struct ieee80211_sub_if_data *sdata,
skb_queue_tail(&local->work_skb_queue, skb);
ieee80211_queue_work(&local->hw, &local->work_work);
return RX_QUEUED;
+ case IEEE80211_STYPE_DEAUTH:
+ /*
+ * If we get sent a DEAUTH while we are
+ * actively trying to authenticate to this
+ * station, we shoot ourselves in the foot if
+ * we fall through using RX_CONTINUE and allow
+ * the bss context to disappear
+ * (ieee80211_sta_rx_mgmt()). This is
+ * especially true if the reason for the
+ * DEAUTH was a negative but temporary direct
+ * response to an AUTH attempt. Let the retry
+ * mechanism run its course instead.
+ */
+ if (wk->type == IEEE80211_WORK_AUTH) {
+ return RX_DROP_MONITOR;
+ }
+ break;
}
}
^ permalink raw reply
* [internal-ath9k-devel] [PATCH v2] ath9k: declare MODULE_FIRMWARE for ath9k_htc
From: Sujith @ 2010-06-25 8:40 UTC (permalink / raw)
To: atheros.eng.projects.ath9k-devel@mailman.users.atheros.com
Cc: linux-wireless@vger.kernel.org, John W. Linville
In-Reply-To: <1277319039-20837-1-git-send-email-linville@tuxdriver.com>
John W. Linville wrote:
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
> ---
> v2 -> avoid duplicate strings for firmware names and simultaneously
> attract attention to MODULE_FIRMWARE section in the even of
> any updates
>
Neat, thanks.
Sujith
^ permalink raw reply
* Re: [PATCH 1/2] ath9k_htc: Add AP mode to supported modes
From: Sujith @ 2010-06-25 9:33 UTC (permalink / raw)
To: Pavel Roskin; +Cc: linville@tuxdriver.com, linux-wireless@vger.kernel.org
In-Reply-To: <1276878831.5110.4.camel@mj>
Pavel Roskin wrote:
> On Thu, 2010-06-17 at 14:58 +0530, Sujith wrote:
> > Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
> > ---
> > drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 ++-
> > drivers/net/wireless/ath/ath9k/htc_drv_main.c | 3 +++
> > 2 files changed, 5 insertions(+), 1 deletions(-)
>
> I confirm that the AP mode is working on TP-Link TL-WN422G (0cf3:1006).
> I tested both patched of the series at once.
>
> That's great news! TL-WN422G has an external antenna, connects over USB
> and supports AP mode. Users keep asking about that combination of
> features. Now we have an answer :-)
>
Thanks for testing, the buffering patch is a bit buggy.
Will send out updated patches doing things properly.
Sujith
^ permalink raw reply
* Re: [PATCH net-next] MAINTAINERS: b43 updates
From: Michael Büsch @ 2010-06-25 13:22 UTC (permalink / raw)
To: Larry Finger
Cc: Joe Perches, John W. Linville, Stefano Brivio, linux-wireless,
netdev, linux-kernel, zajec5, Gábor Stefanik
In-Reply-To: <4C241770.6030701@lwfinger.net>
On 06/25/2010 04:41 AM, Larry Finger wrote:
> On 06/24/2010 06:57 PM, Joe Perches wrote:
>> On Thu, 2010-06-24 at 18:53 -0500, Larry Finger wrote:
>>> I never said that b43 is unmaintained. It is definitely getting much
>>> more than "odd fixes".
>>
>> If Stefano isn't maintaining it, who is?
>
> We are working on that.
Well, there are some developers working on the driver and there
are some developers that do not actively work on the driver but used
to work on it in the past (that includes me). Neither of them is an
official maintainer (yet). I used to be a maintainer, but I dropped
my official MAINTAINERS file entry, because I do not actively work
on b43 anymore. However, I still read the patches going into the driver
and comment on them as appropriate.
So well. I think b43 does not have a maintainer. But it's
not unmaintained. There are lots of people working on it. I don't think
an official maintainer is needed. Patches are sent directly to John
(the wireless maintainer) and the b43 development crew reviews them.
There's no problem with that.
--
Greetings Michael.
^ permalink raw reply
* Re: [PATCH 0/3] b43: logging cleanups
From: Michael Büsch @ 2010-06-25 13:28 UTC (permalink / raw)
To: Joe Perches
Cc: John W. Linville, Stefano Brivio, linux-wireless, netdev,
linux-kernel, Larry.Finger, zajec5
In-Reply-To: <1277408432.1654.80.camel@Joe-Laptop.home>
On 06/24/2010 09:40 PM, Joe Perches wrote:
> On Thu, 2010-06-24 at 14:53 -0400, John W. Linville wrote:
>> On Sat, Jun 19, 2010 at 04:30:08PM -0700, Joe Perches wrote:
>>> Just some small cleanups
>>> Joe Perches (3):
>>> drivers/net/wireless/b43: Use local ratelimit_state
>>> drivers/net/wireless/b43: Logging cleanups
>>> drivers/net/wireless/b43: Rename b43_debug to b43_debugging
>> Any of the b43 guys want to express an opinion on these?
The cleanups, well, exchange one name for the other. I don't have a
strong opinion on one or the other. So in the end I don't see why
that stuff should be renamed. However, in the end I really do not care.
I'm not sure why we need an additional ratelimit here. Is it a policy
that every kernel driver should have local ratelimiting? If not, why
do you think b43 needs its own ratelimiting? Note that b43 does not
output a single line to dmesg in normal operation, after init has
finished (and ratelimit is disabled in init).
> Stefano, are you active here?
> Your last ack for b43 was Feb 2008.
> There have been 400+ commits to b43 without your ack.
>
> Should your name be moved from MAINTAINERS to CREDITS?
>
> $ ./scripts/get_maintainer.pl --rolestats -f drivers/net/wireless/b43/
> Stefano Brivio<stefano.brivio@polimi.it> (maintainer:B43 WIRELESS DRIVER)
> "John W. Linville"<linville@tuxdriver.com> (maintainer:NETWORKING [WIREL...,commit_signer:204/240=85%)
> "Rafał Miłecki"<zajec5@gmail.com> (commit_signer:83/240=35%)
> "Gábor Stefanik"<netrolller.3d@gmail.com> (commit_signer:44/240=18%)
> Michael Buesch<mb@bu3sch.de> (commit_signer:39/240=16%)
> Larry Finger<Larry.Finger@lwfinger.net> (commit_signer:13/240=5%)
> linux-wireless@vger.kernel.org (open list:B43 WIRELESS DRIVER)
> netdev@vger.kernel.org (open list:NETWORKING DRIVERS)
> linux-kernel@vger.kernel.org (open list)
I think these statistics are almost worthless for b43.
--
Greetings Michael.
^ permalink raw reply
* Re: [PATCH] b43: Add SDIO_DEVICE() for EW-CG1102GC
From: Michael Büsch @ 2010-06-25 13:29 UTC (permalink / raw)
To: Magnus Damm
Cc: linux-kernel, Tejun Heo, Stefano Brivio, netdev, linux-wireless,
John W. Linville, Albert Herranz
In-Reply-To: <20100625093254.9484.69877.sendpatchset@t400s>
On 06/25/2010 11:32 AM, Magnus Damm wrote:
> From: Magnus Damm<damm@opensource.se>
>
> This patch enables the EW-CG1102GC SDIO card in the b43 driver.
>
> b43-sdio mmc0:0001:1: Chip ID 14e4:4318
> ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x0D, vendor 0x4243)
> ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x09, vendor 0x4243)
> ssb: Core 2 found: PCI (cc 0x804, rev 0x0C, vendor 0x4243)
> ssb: Core 3 found: PCMCIA (cc 0x80D, rev 0x07, vendor 0x4243)
> b43-phy0: Broadcom 4318 WLAN found (core revision 9)
> b43-phy0 debug: Found PHY: Analog 3, Type 2, Revision 7
> b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2050, Revision 8
>
> Tested with openfwwf-5.2 using a SuperH SDHI host controller.
>
> Signed-off-by: Magnus Damm<damm@opensource.se>
> ---
>
> drivers/net/wireless/b43/sdio.c | 1 +
> 1 file changed, 1 insertion(+)
>
> --- 0001/drivers/net/wireless/b43/sdio.c
> +++ work/drivers/net/wireless/b43/sdio.c 2010-06-25 18:20:46.000000000 +0900
> @@ -182,6 +182,7 @@ static void b43_sdio_remove(struct sdio_
>
> static const struct sdio_device_id b43_sdio_ids[] = {
> { SDIO_DEVICE(0x02d0, 0x044b) }, /* Nintendo Wii WLAN daughter card */
> + { SDIO_DEVICE(0x0092, 0x0004) }, /* C-guys, Inc. EW-CG1102GC */
> { },
> };
>
>
ack
--
Greetings Michael.
^ permalink raw reply
* Re: rt2x00 & mac80211: correct usage of ieee80211_beacon_get_tim?
From: Helmut Schaa @ 2010-06-25 16:01 UTC (permalink / raw)
To: Johannes Berg; +Cc: linux-wireless, Ivo van Doorn, Gertjan van Wingerde
In-Reply-To: <1277394714.3870.8.camel@jlt3.sipsolutions.net>
Am Donnerstag 24 Juni 2010 schrieb Johannes Berg:
> b) You need to get a new beacon frame from mac80211 only when it
> changes. You can do this from set_tim(). HOWEVER: since you're not
> getting a new one from mac80211 all the time anyway, you NEED to
> have the driver or firmware overwrite the DTIM count, like b43's
> firmware for example will do.
And the broad- and multicast buffering also needs to be done in the driver
(when the fw/hw cannot handle it) as mac80211 uses its own DTIM count for
deciding when to "release" buffered frames to the driver.
Helmut
^ permalink raw reply
* Re: [PATCH 2/2] wl1251: fix ELP_CTRL register reads
From: Denis 'GNUtoo' Carikli @ 2010-06-25 16:01 UTC (permalink / raw)
To: Grazvydas Ignotas
Cc: Bob Copeland, Kalle Valo, John W.Linville, linux-wireless
In-Reply-To: <AANLkTinGVsGRFZ5J06Y_s13TGjJcIRbm2ugfNfgSCIEw@mail.gmail.com>
On Fri, 2010-06-25 at 02:34 +0300, Grazvydas Ignotas wrote:
> > I've changed that struct to wl12xx_platform_Data and added the irq
> > int,and I've still the following errors:
> > [ 541.676849] wl1251: ERROR sdio_writeb failed (-84)
> > [ 542.006378] mmc0: Command timeout
> > [ 542.011444] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> > [ 543.016357] mmc0: Command CRC error
> > [ 543.016418] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> > [ 544.026367] mmc0: Command timeout
> > [ 544.031433] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> > [ 545.036376] mmc0: Command CRC error
>
> Has powersaving ever worked on your device with this driver? It does
> work fine on pandora (OMAP3).
Not sure,
I've updated the sd driver,but I think I've still an issue
maybe the irq is not well recognized because I did some mistake.
here are the debug:
[ 2132.599578] wl1251: cmd configure
[ 2132.619567] wl1251: acx wake up conditions
[ 2132.619628] wl1251: cmd configure
[ 2132.639587] wl1251: cmd set ps mode
[ 2132.640747] wl1251: sleep auth psm/elp
[ 2132.640808] wl1251: acx sleep auth
[ 2132.640808] wl1251: cmd configure
[ 2132.650268] wl1251: elp work
[ 2132.650299] wl1251: chip to elp
[ 2133.239471] wl1251: IRQ
[ 2133.239654] wl1251: IRQ work
[ 2133.239654] wl1251: waking up chip from elp
[ 2133.239715] wl1251: wakeup time: 0 ms
[ 2133.239868] wl1251: intr: 0x3
[ 2133.239929] wl1251: RX: FW +1
[ 2133.239929] wl1251: RX counter: 7
[ 2133.239959] wl1251: WL1251_ACX_INTR_RX0_DATA
[ 2133.240081] wl1251: rx skb 0xc61c3480: 88 B
[ 2133.240203] wl1251: WL1251_ACX_INTR_TX_RESULT
[ 2133.240478] wl1251: tx status id 0 skb 0xc635f480 failures 0 rate 0x1
status 0x0 ()
[ 2133.251251] wl1251: elp work
[ 2133.264434] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2133.479278] wlan0: no IPv6 routers present
[ 2134.269470] mmc0: Command CRC error
[ 2134.269561] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2135.284484] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2136.289428] mmc0: Command CRC error
[ 2136.289489] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2137.304504] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2138.309478] mmc0: Command CRC error
[ 2138.309539] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2139.324523] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2140.329437] mmc0: Command CRC error
[ 2140.329498] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2141.344512] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2142.349456] mmc0: Command CRC error
[ 2142.349548] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2143.364501] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2144.369476] mmc0: Command CRC error
[ 2144.369537] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2145.384490] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2146.389404] mmc0: Command CRC error
[ 2146.389495] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2147.404541] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2148.409454] mmc0: Command CRC error
[ 2148.409545] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2149.424530] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2150.429534] mmc0: Command CRC error
[ 2150.429595] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2151.444488] mmc0:0001: error -110 reading SDIO_CCCR_INTx
[ 2152.449432] mmc0: Command CRC error
[ 2152.449523] mmc0:0001: error -84 reading SDIO_CCCR_INTx
[ 2152.969360] wl1251: mac80211 config ch 7 psm off power 20
[ 2152.969421] wl1251: waking up chip from elp
[ 2152.989410] wl1251: wakeup time: 20 ms
[ 2152.989440] wl1251: psm disabled
[ 2152.989471] wl1251: leaving psm
[ 2152.989471] wl1251: sleep auth cam
SDIO_CCCR_INT is in sdio_irq.c in driver/mmc/core
static int process_sdio_pending_irqs(struct mmc_card *card)
{
int i, ret, count;
unsigned char pending;
ret = mmc_io_rw_direct(card, 0, 0, SDIO_CCCR_INTx, 0, &pending);
if (ret) {
printk(KERN_DEBUG "%s: error %d reading SDIO_CCCR_INTx\n",
mmc_card_id(card), ret);
return ret;
}
...
so I think that the IRQ could not have been proprerly initialized and so
it would prevent PSM because:
it seem to want to enter PSM,then fail because of the IRQ issue and go
back to normal mode.
Denis.
^ permalink raw reply
* Re: intel 5100/iwlagn bug in 2.6.35-rc2 during large file transfer
From: Richard Farina @ 2010-06-25 16:28 UTC (permalink / raw)
To: reinette chatre; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <1277401731.25793.2391.camel@rchatre-DESK>
reinette chatre wrote:
> On Thu, 2010-06-24 at 10:30 -0700, Richard Farina wrote:
>
>> There were two compat-wireless releases for 2.6.35_rc2 because Luis had
>> asked me to test and then he changed it for the official release. I'll
>> use the official 2.6.35_rc2 release for the current testing so if there
>> are any patches you wish to toss my way please base them on that. The
>> other option is you tell me what to do, I can run any kernel, any git
>> snapshot, whatever you say. Like I said, all I have to do is download
>> something or transfer something large so it is pretty easily
>> reproducible here so I'll test whatever you like.
>>
>
>
> Could you please try out this patch? It is based on the latest linux-2.6
> so should apply cleanly to your latest 2.6.35 stable compat.
>
>
I've added this patch to my system. I'm about 5GB into a download right
now and here are the issues. First, and relatively quickly this line
showed up in dmesg:
[ 1589.605470] CE: hpet increased min_delta_ns to 7500 nsec
I've been carefully monitoring my system and I have loads of RAM spare.
Things have been much smoother but the system still freezes up for a few
seconds at a time. Mind you, this is an improvement as the freezes are
slightly less frequent and before the patch the freezes were hitting the
120s hangcheck timer in the kernel and now they last like 20-60 seconds.
I finally managed to trigger the oops again but it does seem that it
took much longer this time. Pasted at the bottom. (please note the
timestamps included are accurate to show the time difference bettween
the hpet warning and the oops).
What else can I do to provide useful information? Or do you just want to
update the thresholds again?
Thanks,
Rick Farina
PS> The patch does look at bit odd as you change RX_LOW_WATERMARK while
at the same time removing one of the places that uses it. I'm sure that
is on purpose just seems odd to me as I don't understand.
[ 4705.404568] iwlagn 0000:02:00.0: Failed to alloc_pages with
GFP_ATOMIC. Only 14 free buffers remaining.
[ 4705.404586] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.404589] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.404591] Call Trace:
[ 4705.404593] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.404614] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.404622] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.404628] [<ffffffffa0500cc6>] iwl_rx_handle+0x4a6/0x4c2 [iwlagn]
[ 4705.404632] [<ffffffff8103156c>] ? __wake_up_common+0x49/0x7f
[ 4705.404639] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.404644] [<ffffffff8170ab2f>] ? _raw_spin_unlock_irq+0x26/0x28
[ 4705.404650] [<ffffffffa050a7ef>] ? iwl_isr_ict+0x8e7/0xa49 [iwlagn]
[ 4705.404653] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.404657] [<ffffffff810193dc>] ? lapic_next_event+0x18/0x1c
[ 4705.404660] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.404664] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.404666] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.404669] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.404672] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.404675] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.404677] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.404684] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.404689] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.404692] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.404696] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.404700] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.404704] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.404707] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.404710] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.404712] Mem-Info:
[ 4705.404714] DMA per-cpu:
[ 4705.404716] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.404718] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.404719] DMA32 per-cpu:
[ 4705.404721] CPU 0: hi: 186, btch: 31 usd: 160
[ 4705.404723] CPU 1: hi: 186, btch: 31 usd: 154
[ 4705.404724] Normal per-cpu:
[ 4705.404726] CPU 0: hi: 186, btch: 31 usd: 145
[ 4705.404728] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.404732] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.404733] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.404734] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.404735] free:6788 slab_reclaimable:9432 slab_unreclaimable:12868
[ 4705.404736] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.404742] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.404747] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.404755] DMA32 free:10748kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26600kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.404761] lowmem_reserve[]: 0 0 1010 1010
[ 4705.404768] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24864kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.404774] lowmem_reserve[]: 0 0 0 0
[ 4705.404777] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.404785] DMA32: 2440*4kB 78*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10832kB
[ 4705.404792] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.404800] 461661 total pagecache pages
[ 4705.404801] 0 pages in swap cache
[ 4705.404803] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.404804] Free swap = 4200992kB
[ 4705.404806] Total swap = 4200992kB
[ 4705.419628] 1048560 pages RAM
[ 4705.419630] 83243 pages reserved
[ 4705.419632] 626146 pages shared
[ 4705.419633] 399708 pages non-shared
[ 4705.419637] iwlagn 0000:02:00.0: Failed to alloc_pages with
GFP_ATOMIC. Only 5 free buffers remaining.
[ 4705.419690] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.419694] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.419696] Call Trace:
[ 4705.419698] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.419717] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.419722] [<ffffffff810bebf8>] ? discard_slab+0x31/0x33
[ 4705.419727] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.419735] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.419742] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.419747] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.419753] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.419757] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.419761] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.419765] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.419769] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.419773] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.419776] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.419779] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.419784] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.419786] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.419794] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.419799] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.419803] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.419807] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.419811] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.419816] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.419820] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.419823] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.419825] Mem-Info:
[ 4705.419827] DMA per-cpu:
[ 4705.419830] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.419832] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.419833] DMA32 per-cpu:
[ 4705.419835] CPU 0: hi: 186, btch: 31 usd: 160
[ 4705.419838] CPU 1: hi: 186, btch: 31 usd: 155
[ 4705.419839] Normal per-cpu:
[ 4705.419841] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.419844] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.419848] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.419849] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.419850] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.419851] free:6788 slab_reclaimable:9432 slab_unreclaimable:12851
[ 4705.419852] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.419859] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.419864] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.419874] DMA32 free:10748kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26600kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.419880] lowmem_reserve[]: 0 0 1010 1010
[ 4705.419890] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.419896] lowmem_reserve[]: 0 0 0 0
[ 4705.419901] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.419914] DMA32: 2440*4kB 78*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10832kB
[ 4705.419926] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.419939] 461661 total pagecache pages
[ 4705.419941] 0 pages in swap cache
[ 4705.419943] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.419945] Free swap = 4200992kB
[ 4705.419946] Total swap = 4200992kB
[ 4705.435226] 1048560 pages RAM
[ 4705.435229] 83243 pages reserved
[ 4705.435230] 626151 pages shared
[ 4705.435232] 399702 pages non-shared
[ 4705.435235] iwlagn 0000:02:00.0: Failed to alloc_pages with
GFP_ATOMIC. Only 1 free buffers remaining.
[ 4705.435289] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.435293] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.435295] Call Trace:
[ 4705.435297] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.435318] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.435331] [<ffffffffa04cf5bb>] ? iwl_rx_statistics+0x2f5/0x325
[iwlcore]
[ 4705.435336] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.435343] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.435349] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.435354] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.435360] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.435363] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.435367] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.435370] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.435374] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.435377] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.435379] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.435382] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.435387] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.435389] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.435396] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.435401] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.435405] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.435409] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.435414] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.435418] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.435422] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.435425] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.435426] Mem-Info:
[ 4705.435428] DMA per-cpu:
[ 4705.435430] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.435432] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.435433] DMA32 per-cpu:
[ 4705.435435] CPU 0: hi: 186, btch: 31 usd: 159
[ 4705.435437] CPU 1: hi: 186, btch: 31 usd: 150
[ 4705.435438] Normal per-cpu:
[ 4705.435440] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.435442] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.435447] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.435448] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.435449] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.435450] free:6788 slab_reclaimable:9432 slab_unreclaimable:12851
[ 4705.435451] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.435457] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.435462] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.435470] DMA32 free:10748kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26600kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.435476] lowmem_reserve[]: 0 0 1010 1010
[ 4705.435484] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.435489] lowmem_reserve[]: 0 0 0 0
[ 4705.435492] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.435501] DMA32: 2440*4kB 81*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10856kB
[ 4705.435509] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.435517] 461661 total pagecache pages
[ 4705.435519] 0 pages in swap cache
[ 4705.435521] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.435522] Free swap = 4200992kB
[ 4705.435523] Total swap = 4200992kB
[ 4705.450608] 1048560 pages RAM
[ 4705.450610] 83243 pages reserved
[ 4705.450611] 626155 pages shared
[ 4705.450612] 399697 pages non-shared
[ 4705.450616] iwlagn 0000:02:00.0: Failed to alloc_pages with
GFP_ATOMIC. Only 5 free buffers remaining.
[ 4705.450675] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.450679] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.450681] Call Trace:
[ 4705.450683] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.450703] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.450709] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.450716] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.450722] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.450726] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.450733] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.450736] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.450740] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.450743] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.450747] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.450750] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.450753] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.450755] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.450761] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.450762] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.450770] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.450775] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.450780] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.450783] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.450789] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.450793] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.450797] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.450800] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.450801] Mem-Info:
[ 4705.450803] DMA per-cpu:
[ 4705.450805] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.450807] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.450808] DMA32 per-cpu:
[ 4705.450810] CPU 0: hi: 186, btch: 31 usd: 155
[ 4705.450812] CPU 1: hi: 186, btch: 31 usd: 148
[ 4705.450813] Normal per-cpu:
[ 4705.450815] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.450817] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.450821] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.450822] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.450823] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.450824] free:6788 slab_reclaimable:9432 slab_unreclaimable:12851
[ 4705.450825] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.450831] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.450835] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.450843] DMA32 free:10748kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26600kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.450848] lowmem_reserve[]: 0 0 1010 1010
[ 4705.450855] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.450860] lowmem_reserve[]: 0 0 0 0
[ 4705.450863] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.450871] DMA32: 2440*4kB 85*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10888kB
[ 4705.450878] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.450885] 461661 total pagecache pages
[ 4705.450887] 0 pages in swap cache
[ 4705.450888] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.450890] Free swap = 4200992kB
[ 4705.450891] Total swap = 4200992kB
[ 4705.465982] 1048560 pages RAM
[ 4705.465984] 83243 pages reserved
[ 4705.465986] 626159 pages shared
[ 4705.465987] 399693 pages non-shared
[ 4705.465990] iwlagn 0000:02:00.0: Failed to alloc_pages with
GFP_ATOMIC. Only 4 free buffers remaining.
[ 4705.466048] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.466052] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.466054] Call Trace:
[ 4705.466056] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.466076] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.466080] [<ffffffff810513ca>] ? queue_work+0x4b/0x55
[ 4705.466085] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.466092] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.466098] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.466103] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.466109] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.466112] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.466116] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.466119] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.466123] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.466126] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.466128] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.466131] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.466137] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.466139] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.466146] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.466150] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.466154] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.466158] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.466163] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.466168] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.466171] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.466174] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.466176] Mem-Info:
[ 4705.466178] DMA per-cpu:
[ 4705.466179] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.466181] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.466183] DMA32 per-cpu:
[ 4705.466184] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.466186] CPU 1: hi: 186, btch: 31 usd: 147
[ 4705.466188] Normal per-cpu:
[ 4705.466190] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.466192] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.466196] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.466197] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.466198] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.466199] free:6813 slab_reclaimable:9432 slab_unreclaimable:12851
[ 4705.466200] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.466206] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.466211] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.466219] DMA32 free:10848kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26600kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.466225] lowmem_reserve[]: 0 0 1010 1010
[ 4705.466233] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.466238] lowmem_reserve[]: 0 0 0 0
[ 4705.466241] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.466250] DMA32: 2440*4kB 89*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10920kB
[ 4705.466258] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.466266] 461661 total pagecache pages
[ 4705.466268] 0 pages in swap cache
[ 4705.466270] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.466271] Free swap = 4200992kB
[ 4705.466272] Total swap = 4200992kB
[ 4705.481398] 1048560 pages RAM
[ 4705.481400] 83243 pages reserved
[ 4705.481402] 626163 pages shared
[ 4705.481403] 399690 pages non-shared
[ 4705.481458] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.481462] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.481464] Call Trace:
[ 4705.481465] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.481483] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.481488] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.481495] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.481501] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.481506] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.481512] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.481515] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.481519] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.481522] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.481526] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.481529] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.481531] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.481534] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.481539] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.481540] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.481547] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.481551] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.481555] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.481559] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.481563] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.481567] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.481570] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.481573] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.481575] Mem-Info:
[ 4705.481577] DMA per-cpu:
[ 4705.481578] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.481580] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.481582] DMA32 per-cpu:
[ 4705.481584] CPU 0: hi: 186, btch: 31 usd: 146
[ 4705.481585] CPU 1: hi: 186, btch: 31 usd: 144
[ 4705.481587] Normal per-cpu:
[ 4705.481589] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.481591] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.481595] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.481596] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.481597] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.481598] free:6813 slab_reclaimable:9432 slab_unreclaimable:12876
[ 4705.481599] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.481605] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.481610] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.481618] DMA32 free:10848kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26700kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.481624] lowmem_reserve[]: 0 0 1010 1010
[ 4705.481632] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.481637] lowmem_reserve[]: 0 0 0 0
[ 4705.481640] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.481649] DMA32: 2440*4kB 93*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10952kB
[ 4705.481657] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.481665] 461661 total pagecache pages
[ 4705.481666] 0 pages in swap cache
[ 4705.481668] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.481670] Free swap = 4200992kB
[ 4705.481671] Total swap = 4200992kB
[ 4705.497155] 1048560 pages RAM
[ 4705.497157] 83243 pages reserved
[ 4705.497158] 626163 pages shared
[ 4705.497160] 399687 pages non-shared
[ 4705.497211] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.497215] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.497217] Call Trace:
[ 4705.497219] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.497238] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.497243] [<ffffffff810513ca>] ? queue_work+0x4b/0x55
[ 4705.497248] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.497256] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.497262] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.497267] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.497274] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.497277] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.497282] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.497285] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.497289] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.497293] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.497296] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.497299] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.497304] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.497306] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.497314] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.497319] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.497323] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.497327] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.497331] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.497336] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.497340] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.497344] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.497346] Mem-Info:
[ 4705.497348] DMA per-cpu:
[ 4705.497350] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.497352] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.497354] DMA32 per-cpu:
[ 4705.497356] CPU 0: hi: 186, btch: 31 usd: 173
[ 4705.497358] CPU 1: hi: 186, btch: 31 usd: 145
[ 4705.497360] Normal per-cpu:
[ 4705.497361] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.497364] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.497368] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.497369] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.497370] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.497371] free:6813 slab_reclaimable:9432 slab_unreclaimable:12876
[ 4705.497372] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.497379] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.497384] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.497394] DMA32 free:10848kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26700kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.497400] lowmem_reserve[]: 0 0 1010 1010
[ 4705.497410] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.497416] lowmem_reserve[]: 0 0 0 0
[ 4705.497421] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.497433] DMA32: 2451*4kB 76*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10860kB
[ 4705.497446] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.497459] 461661 total pagecache pages
[ 4705.497461] 0 pages in swap cache
[ 4705.497463] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.497465] Free swap = 4200992kB
[ 4705.497467] Total swap = 4200992kB
[ 4705.513089] 1048560 pages RAM
[ 4705.513091] 83243 pages reserved
[ 4705.513092] 626165 pages shared
[ 4705.513094] 399682 pages non-shared
[ 4705.513153] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.513157] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.513159] Call Trace:
[ 4705.513161] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.513182] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.513187] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.513194] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.513201] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.513206] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.513213] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.513216] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.513221] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.513225] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.513229] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.513232] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.513236] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.513239] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.513244] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.513246] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.513254] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.513259] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.513263] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.513267] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.513271] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.513276] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.513280] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.513283] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.513286] Mem-Info:
[ 4705.513287] DMA per-cpu:
[ 4705.513289] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.513291] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.513293] DMA32 per-cpu:
[ 4705.513295] CPU 0: hi: 186, btch: 31 usd: 169
[ 4705.513298] CPU 1: hi: 186, btch: 31 usd: 142
[ 4705.513299] Normal per-cpu:
[ 4705.513301] CPU 0: hi: 186, btch: 31 usd: 151
[ 4705.513303] CPU 1: hi: 186, btch: 31 usd: 185
[ 4705.513308] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.513309] active_file:153488 inactive_file:295800 isolated_file:210
[ 4705.513310] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.513311] free:6813 slab_reclaimable:9432 slab_unreclaimable:12876
[ 4705.513312] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.513319] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.513324] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.513334] DMA32 free:10848kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909448kB unevictable:0kB isolated(anon):0kB
isolated(file):576kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26700kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.513340] lowmem_reserve[]: 0 0 1010 1010
[ 4705.513350] Normal free:760kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273692kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.513356] lowmem_reserve[]: 0 0 0 0
[ 4705.513361] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.513374] DMA32: 2451*4kB 80*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10892kB
[ 4705.513386] Normal: 76*4kB 11*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 760kB
[ 4705.513399] 461661 total pagecache pages
[ 4705.513401] 0 pages in swap cache
[ 4705.513403] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.513405] Free swap = 4200992kB
[ 4705.513406] Total swap = 4200992kB
[ 4705.528482] 1048560 pages RAM
[ 4705.528484] 83243 pages reserved
[ 4705.528485] 626172 pages shared
[ 4705.528487] 399630 pages non-shared
[ 4705.528586] swapper: page allocation failure. order:1, mode:0x4020
[ 4705.528590] Pid: 0, comm: swapper Not tainted 2.6.34-pentoo-r2 #2
[ 4705.528591] Call Trace:
[ 4705.528593] <IRQ> [<ffffffff810984c0>]
__alloc_pages_nodemask+0x571/0x5b9
[ 4705.528611] [<ffffffffa05162f3>] iwlagn_rx_allocate+0x98/0x2e0 [iwlagn]
[ 4705.528617] [<ffffffff8147e871>] ? is_swiotlb_buffer+0x2e/0x3b
[ 4705.528624] [<ffffffffa051668c>] iwlagn_rx_replenish_now+0x16/0x23
[iwlagn]
[ 4705.528630] [<ffffffffa0500ca1>] iwl_rx_handle+0x481/0x4c2 [iwlagn]
[ 4705.528635] [<ffffffff8162c7b6>] ? __kfree_skb+0x19/0x7c
[ 4705.528641] [<ffffffffa0502766>] iwl_irq_tasklet+0xb0e/0xecd [iwlagn]
[ 4705.528644] [<ffffffff8162c01f>] ? skb_dequeue+0x5f/0x6b
[ 4705.528649] [<ffffffff81044ca0>] tasklet_action+0x6f/0xba
[ 4705.528652] [<ffffffff810456d7>] __do_softirq+0x91/0x11a
[ 4705.528655] [<ffffffff8100384c>] call_softirq+0x1c/0x28
[ 4705.528658] [<ffffffff8100550b>] do_softirq+0x33/0x68
[ 4705.528661] [<ffffffff810453d4>] irq_exit+0x36/0x87
[ 4705.528664] [<ffffffff81004bf0>] do_IRQ+0xa7/0xbe
[ 4705.528668] [<ffffffff8170af13>] ret_from_intr+0x0/0xa
[ 4705.528670] <EOI> [<ffffffff814f2453>] ?
acpi_idle_enter_simple+0x150/0x17b
[ 4705.528678] [<ffffffff814f2449>] ? acpi_idle_enter_simple+0x146/0x17b
[ 4705.528682] [<ffffffff816035c4>] cpuidle_idle_call+0x8b/0xc3
[ 4705.528685] [<ffffffff81001ca7>] cpu_idle+0xa6/0xe7
[ 4705.528688] [<ffffffff81003750>] ? kernel_thread_helper+0x0/0x10
[ 4705.528693] [<ffffffff816ecbc1>] rest_init+0xb5/0xba
[ 4705.528699] [<ffffffff81acbb65>] start_kernel+0x3f2/0x3fd
[ 4705.528703] [<ffffffff81acb0b6>] x86_64_start_reservations+0xb3/0xb7
[ 4705.528706] [<ffffffff81acb19a>] x86_64_start_kernel+0xe0/0xe7
[ 4705.528708] Mem-Info:
[ 4705.528709] DMA per-cpu:
[ 4705.528711] CPU 0: hi: 0, btch: 1 usd: 0
[ 4705.528714] CPU 1: hi: 0, btch: 1 usd: 0
[ 4705.528715] DMA32 per-cpu:
[ 4705.528717] CPU 0: hi: 186, btch: 31 usd: 164
[ 4705.528719] CPU 1: hi: 186, btch: 31 usd: 154
[ 4705.528720] Normal per-cpu:
[ 4705.528721] CPU 0: hi: 186, btch: 31 usd: 148
[ 4705.528723] CPU 1: hi: 186, btch: 31 usd: 179
[ 4705.528728] active_anon:341531 inactive_anon:114822 isolated_anon:0
[ 4705.528729] active_file:153488 inactive_file:295736 isolated_file:245
[ 4705.528730] unevictable:23 dirty:14035 writeback:28555 unstable:33013
[ 4705.528731] free:6808 slab_reclaimable:9432 slab_unreclaimable:12876
[ 4705.528732] mapped:37668 shmem:12218 pagetables:3822 bounce:0
[ 4705.528737] DMA free:15644kB min:28kB low:32kB high:40kB
active_anon:0kB inactive_anon:0kB active_file:120kB inactive_file:60kB
unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15708kB
mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB
slab_reclaimable:0kB slab_unreclaimable:8kB kernel_stack:0kB
pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.528741] lowmem_reserve[]: 0 2900 3910 3910
[ 4705.528749] DMA32 free:10848kB min:5924kB low:7404kB high:8884kB
active_anon:1238044kB inactive_anon:323152kB active_file:347988kB
inactive_file:909272kB unevictable:0kB isolated(anon):0kB
isolated(file):716kB present:2970488kB mlocked:0kB dirty:45440kB
writeback:92884kB mapped:8036kB shmem:14132kB slab_reclaimable:15944kB
slab_unreclaimable:26700kB kernel_stack:104kB pagetables:3688kB
unstable:101736kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.528754] lowmem_reserve[]: 0 0 1010 1010
[ 4705.528761] Normal free:740kB min:2060kB low:2572kB high:3088kB
active_anon:128080kB inactive_anon:136136kB active_file:265844kB
inactive_file:273612kB unevictable:92kB isolated(anon):0kB
isolated(file):264kB present:1034240kB mlocked:0kB dirty:10700kB
writeback:21336kB mapped:142636kB shmem:34740kB slab_reclaimable:21784kB
slab_unreclaimable:24796kB kernel_stack:2160kB pagetables:11600kB
unstable:30316kB bounce:0kB writeback_tmp:0kB pages_scanned:0
all_unreclaimable? no
[ 4705.528766] lowmem_reserve[]: 0 0 0 0
[ 4705.528769] DMA: 3*4kB 2*8kB 0*16kB 2*32kB 3*64kB 0*128kB 2*256kB
1*512kB 2*1024kB 2*2048kB 2*4096kB = 15644kB
[ 4705.528778] DMA32: 2451*4kB 88*8kB 0*16kB 0*32kB 1*64kB 1*128kB
1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 10956kB
[ 4705.528785] Normal: 93*4kB 0*8kB 17*16kB 3*32kB 0*64kB 0*128kB
0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 740kB
[ 4705.528792] 461599 total pagecache pages
[ 4705.528793] 0 pages in swap cache
[ 4705.528795] Swap cache stats: add 0, delete 0, find 0/0
[ 4705.528796] Free swap = 4200992kB
[ 4705.528798] Total swap = 4200992kB
[ 4705.544019] 1048560 pages RAM
[ 4705.544021] 83243 pages reserved
[ 4705.544023] 626171 pages shared
[ 4705.544024] 399657 pages non-shared
> diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> index 0f292a2..028db74 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
> @@ -613,7 +613,7 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority)
> }
> spin_unlock_irqrestore(&rxq->lock, flags);
>
> - if (rxq->free_count > RX_LOW_WATERMARK)
> + if (rxq->free_count > 8)
> gfp_mask |= __GFP_NOWARN;
>
> if (priv->hw_params.rx_page_order > 0)
> diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
> index 113c366..396a16c 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-fh.h
> +++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
> @@ -426,7 +426,7 @@
> * RX related structures and functions
> */
> #define RX_FREE_BUFFERS 64
> -#define RX_LOW_WATERMARK 8
> +#define RX_LOW_WATERMARK 64
>
> /* Size of one Rx buffer in host DRAM */
> #define IWL_RX_BUF_SIZE_3K (3 * 1000) /* 3945 only */
>
>
>
>
^ permalink raw reply
* Fwd: mesh configuration information element is wrong?
From: Iuri Diniz @ 2010-06-25 17:43 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <AANLkTinHfFVr45OV3V6CT9auK3L-JfrCYUMQpeo9toTw@mail.gmail.com>
Hello folks,
I'm analyzing the 802.11s code and I think I've found that mesh
configuration information element has wrongs sizes.
It is not according to my copy of 802.11s draft 3.
on linux-wireless-testing/linux/include/ieee80211.h we have:
--------
/**
* struct ieee80211_meshconf_ie
*
* This structure refers to "Mesh Configuration information element"
*/
struct ieee80211_meshconf_ie {
u8 meshconf_psel;
u8 meshconf_pmetric;
u8 meshconf_congest;
u8 meshconf_synch;
u8 meshconf_auth;
u8 meshconf_form;
u8 meshconf_cap;
} __attribute__ ((packed));
----------
All fields have 1 byte, but according to
http://i45.tinypic.com/4ghhd1.jpg some of they must have 4 or 2 bytes
the function mesh.c:mesh_mgmt_ies_add uses those wrong sizes to
prepare the management frame.
Is there a new draft? or is there any reason to use those sizes?
(March 2009) Draft 3 802.11s MESH CONFIGURATION ELEMENT:
http://i45.tinypic.com/4ghhd1.jpg
--
Iuri Diniz
http://iuridiniz.com [Sou um agitador, não um advogado]
http://blog.igdium.com [Linux on Limbo]
^ permalink raw reply
* Re: [PATCH 2/2] wl1251: fix ELP_CTRL register reads
From: Denis 'GNUtoo' Carikli @ 2010-06-25 18:06 UTC (permalink / raw)
To: Grazvydas Ignotas
Cc: Bob Copeland, Kalle Valo, John W.Linville, linux-wireless
In-Reply-To: <1277481694.2712.7.camel@gnutoo-laptop>
On Fri, 2010-06-25 at 18:01 +0200, Denis 'GNUtoo' Carikli wrote:
> [ 2132.599578] wl1251: cmd configure
> [ 2132.619567] wl1251: acx wake up conditions
> [ 2132.619628] wl1251: cmd configure
> [ 2132.639587] wl1251: cmd set ps mode
> [ 2132.640747] wl1251: sleep auth psm/elp
> [ 2132.640808] wl1251: acx sleep auth
> [ 2132.640808] wl1251: cmd configure
> [ 2132.650268] wl1251: elp work
> [ 2132.650299] wl1251: chip to elp
> [ 2133.239471] wl1251: IRQ
> [ 2133.239654] wl1251: IRQ work
> [ 2133.239654] wl1251: waking up chip from elp
> [ 2133.239715] wl1251: wakeup time: 0 ms
does it mean that here it works?
> [ 2133.239868] wl1251: intr: 0x3
> [ 2133.239929] wl1251: RX: FW +1
> [ 2133.239929] wl1251: RX counter: 7
> [ 2133.239959] wl1251: WL1251_ACX_INTR_RX0_DATA
> [ 2133.240081] wl1251: rx skb 0xc61c3480: 88 B
> [ 2133.240203] wl1251: WL1251_ACX_INTR_TX_RESULT
> [ 2133.240478] wl1251: tx status id 0 skb 0xc635f480 failures 0 rate
> 0x1
> status 0x0 ()
> [ 2133.251251] wl1251: elp work
> [ 2133.264434] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2133.479278] wlan0: no IPv6 routers present
> [ 2134.269470] mmc0: Command CRC error
> [ 2134.269561] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2135.284484] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2136.289428] mmc0: Command CRC error
> [ 2136.289489] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2137.304504] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2138.309478] mmc0: Command CRC error
> [ 2138.309539] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2139.324523] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2140.329437] mmc0: Command CRC error
> [ 2140.329498] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2141.344512] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2142.349456] mmc0: Command CRC error
> [ 2142.349548] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2143.364501] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2144.369476] mmc0: Command CRC error
> [ 2144.369537] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2145.384490] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2146.389404] mmc0: Command CRC error
> [ 2146.389495] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2147.404541] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2148.409454] mmc0: Command CRC error
> [ 2148.409545] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2149.424530] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2150.429534] mmc0: Command CRC error
> [ 2150.429595] mmc0:0001: error -84 reading SDIO_CCCR_INTx
> [ 2151.444488] mmc0:0001: error -110 reading SDIO_CCCR_INTx
> [ 2152.449432] mmc0: Command CRC error
> [ 2152.449523] mmc0:0001: error -84 reading SDIO_CCCR_INTx
and that here it doesn't anymore?
> [ 2152.969360] wl1251: mac80211 config ch 7 psm off power 20
> [ 2152.969421] wl1251: waking up chip from elp
> [ 2152.989410] wl1251: wakeup time: 20 ms
> [ 2152.989440] wl1251: psm disabled
> [ 2152.989471] wl1251: leaving psm
> [ 2152.989471] wl1251: sleep auth cam
Denis.
^ permalink raw reply
* Re: intel 5100/iwlagn bug in 2.6.35-rc2 during large file transfer
From: reinette chatre @ 2010-06-25 18:57 UTC (permalink / raw)
To: Richard Farina; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <4C24D926.7010806@gmail.com>
On Fri, 2010-06-25 at 09:28 -0700, Richard Farina wrote:
> reinette chatre wrote:
> > On Thu, 2010-06-24 at 10:30 -0700, Richard Farina wrote:
> I've added this patch to my system. I'm about 5GB into a download right
> now and here are the issues. First, and relatively quickly this line
> showed up in dmesg:
> [ 1589.605470] CE: hpet increased min_delta_ns to 7500 nsec
I googled a bit for this string and found a few mentions where it is
connected to system hangs. I do not know if you are running into the
same issue as these people (did not spend much time reading through all
the bug reports), but I did notice that sometimes the people were able
to work around the issue by booting with a different clock source (eg.
clocksource=jiffies) or disabling hpet (eg. hpet=disable). I am very
unfamiliar with this aspect so if this is giving you issues I'd propose
you go to lkml or kernel.org bugzilla.
> I've been carefully monitoring my system and I have loads of RAM spare.
> Things have been much smoother but the system still freezes up for a few
> seconds at a time. Mind you, this is an improvement as the freezes are
> slightly less frequent and before the patch the freezes were hitting the
> 120s hangcheck timer in the kernel and now they last like 20-60 seconds.
>
> I finally managed to trigger the oops again but it does seem that it
> took much longer this time. Pasted at the bottom. (please note the
> timestamps included are accurate to show the time difference bettween
> the hpet warning and the oops).
They seem pretty far apart so may not be related ...
>
> What else can I do to provide useful information? Or do you just want to
> update the thresholds again?
Sure ... let's try that. Patch is below. I also made things less noisy
when it does fail in atomic.
>
> Thanks,
> Rick Farina
>
> PS> The patch does look at bit odd as you change RX_LOW_WATERMARK while
> at the same time removing one of the places that uses it. I'm sure that
> is on purpose just seems odd to me as I don't understand.
That was on purpose. Since I increased the watermark I did not want to
increase the threshold used to print warnings to the user also. That is
why I just made that a hard 8 so that if memory allocation fails we will
only start seeing the dumps when we are down to 8 buffers and not the
new high watermark.
---
drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 5 +++--
drivers/net/wireless/iwlwifi/iwl-fh.h | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 0f292a2..2815ee7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -613,7 +613,8 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority)
}
spin_unlock_irqrestore(&rxq->lock, flags);
- if (rxq->free_count > RX_LOW_WATERMARK)
+ if ((priority == GFP_ATOMIC) ||
+ (rxq->free_count > RX_LOW_WATERMARK / 4))
gfp_mask |= __GFP_NOWARN;
if (priv->hw_params.rx_page_order > 0)
@@ -627,7 +628,7 @@ void iwlagn_rx_allocate(struct iwl_priv *priv, gfp_t priority)
"order: %d\n",
priv->hw_params.rx_page_order);
- if ((rxq->free_count <= RX_LOW_WATERMARK) &&
+ if ((rxq->free_count <= RX_LOW_WATERMARK / 4) &&
net_ratelimit())
IWL_CRIT(priv, "Failed to alloc_pages with %s. Only %u free buffers remaining.\n",
priority == GFP_ATOMIC ? "GFP_ATOMIC" : "GFP_KERNEL",
diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
index 113c366..431bc58 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
@@ -426,7 +426,7 @@
* RX related structures and functions
*/
#define RX_FREE_BUFFERS 64
-#define RX_LOW_WATERMARK 8
+#define RX_LOW_WATERMARK 128
/* Size of one Rx buffer in host DRAM */
#define IWL_RX_BUF_SIZE_3K (3 * 1000) /* 3945 only */
--
1.7.0.4
^ permalink raw reply related
* Compat-wireless release for 2010-06-25 is baked
From: Compat-wireless cronjob account @ 2010-06-25 19:03 UTC (permalink / raw)
To: linux-wireless, linux-bluetooth
>From git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6
87dca92..8a97897 master -> origin/master
>From git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat
b6af507..126c387 master -> origin/master
>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
2e58c02..138f35f history -> origin/history
+ df17781...c3116ae master -> origin/master (forced update)
* [new tag] next-20100625 -> next-20100625
cat: /var/opt/compat/compat-wireless-2.6/compat_version: No such file or directory
cat: compat_base_tree: No such file or directory
cat: compat_base_tree_version: No such file or directory
cat: compat_version: No such file or directory
cat: /var/opt/compat/compat-wireless-2.6/compat_version: No such file or directory
scripts/Makefile.clean:17: /var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap/Makefile: No such file or directory
make[4]: *** No rule to make target `/var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap/Makefile'. Stop.
make[3]: *** [/var/opt/compat/compat-wireless-2.6/drivers/net/wireless/hostap] Error 2
make[2]: *** [/var/opt/compat/compat-wireless-2.6/drivers/net/wireless] Error 2
make[1]: *** [_clean_/var/opt/compat/compat-wireless-2.6] Error 2
make: *** [clean] Error 2
compat-wireless code metrics
494345 - Total upstream lines of code being pulled
1407 - backport code changes
1174 - backport code additions
233 - backport code deletions
5765 - backport from compat module
7172 - total backport code
1.4508 - % of code consists of backport work
1218 - Crap changes not yet posted
1179 - Crap additions not yet posted
39 - Crap deletions not yet posted
0.2464 - % of crap code
Base tree: linux-next.git
Base tree version: next-20100625
compat-wireless release: compat-wireless-2010-06-17-6-g8a97897
^ permalink raw reply
* Re: mesh configuration information element is wrong?
From: Iuri Diniz @ 2010-06-25 22:39 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <AANLkTimeR5kQX2hSNw0Ud0QOF0-nsqCFMkSNul9wwa7C@mail.gmail.com>
On Fri, Jun 25, 2010 at 2:43 PM, Iuri Diniz <iuridiniz@gmail.com> wrote:
> I'm analyzing the 802.11s code and I think I've found that mesh
> configuration information element has wrongs sizes.
>
> It is not according to my copy of 802.11s draft 3.
It seems that (in the past) the code had that sizes I think right.
http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=blobdiff;f=net/mac80211/mesh.c;h=c8a4f19ed13bb810a97bb5e25200a74cdd55a31c;hp=79425182c2903a70f355f1bdb34fe9fe8239fe05;hb=10f8f42ece65ba964ca14e794e5f45ad98d56cf1;hpb=8f2fda9594f083981ad54c1994863875fe680925
so I'll assume that the last draft has changed the size of this IE.
But could someone with access to the last draft draft confirm it?
Sorry for annoying you guys, I don't have the last draft.
--
Iuri Diniz
http://iuridiniz.com [Sou um agitador, não um advogado]
http://blog.igdium.com [Linux on Limbo]
^ permalink raw reply
* [PATCH 2/8] iwlwifi: enable DC calibration based on config parameter
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Different devices have different calibration requirement,
some need DC calibration and some don't; make it a cfg parameter
for easy management.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-1000.c | 2 +
drivers/net/wireless/iwlwifi/iwl-5000.c | 5 +-
drivers/net/wireless/iwlwifi/iwl-6000.c | 143 ++++-------------------------
drivers/net/wireless/iwlwifi/iwl-core.h | 1 +
drivers/net/wireless/iwlwifi/iwl-eeprom.c | 3 +
5 files changed, 29 insertions(+), 125 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index dba91e0..24743b9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -157,6 +157,8 @@ static int iwl1000_hw_set_hw_params(struct iwl_priv *priv)
BIT(IWL_CALIB_TX_IQ) |
BIT(IWL_CALIB_TX_IQ_PERD) |
BIT(IWL_CALIB_BASE_BAND);
+ if (priv->cfg->need_dc_calib)
+ priv->hw_params.calib_init_cfg |= BIT(IWL_CALIB_DC);
priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS;
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index c6ccc25..fa2dbb5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -249,10 +249,11 @@ static int iwl5150_hw_set_hw_params(struct iwl_priv *priv)
/* Set initial calibration set */
priv->hw_params.sens = &iwl5150_sensitivity;
priv->hw_params.calib_init_cfg =
- BIT(IWL_CALIB_DC) |
BIT(IWL_CALIB_LO) |
BIT(IWL_CALIB_TX_IQ) |
BIT(IWL_CALIB_BASE_BAND);
+ if (priv->cfg->need_dc_calib)
+ priv->hw_params.calib_init_cfg |= BIT(IWL_CALIB_DC);
priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS;
@@ -660,6 +661,7 @@ struct iwl_cfg iwl5150_agn_cfg = {
.ucode_tracing = true,
.sensitivity_calib_by_driver = true,
.chain_noise_calib_by_driver = true,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl5150_abg_cfg = {
@@ -689,6 +691,7 @@ struct iwl_cfg iwl5150_abg_cfg = {
.ucode_tracing = true,
.sensitivity_calib_by_driver = true,
.chain_noise_calib_by_driver = true,
+ .need_dc_calib = true,
};
MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index afdeec5..c909a9c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -84,9 +84,10 @@ static void iwl6000_set_ct_threshold(struct iwl_priv *priv)
}
/* Indicate calibration version to uCode. */
-static void iwl6050_set_calib_version(struct iwl_priv *priv)
+static void iwl6000_set_calib_version(struct iwl_priv *priv)
{
- if (priv->cfg->ops->lib->eeprom_ops.calib_version(priv) >= 6)
+ if (priv->cfg->need_dc_calib &&
+ (priv->cfg->ops->lib->eeprom_ops.calib_version(priv) >= 6))
iwl_set_bit(priv, CSR_GP_DRIVER_REG,
CSR_GP_DRIVER_REG_BIT_CALIB_VERSION6);
}
@@ -186,53 +187,8 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv)
BIT(IWL_CALIB_LO) |
BIT(IWL_CALIB_TX_IQ) |
BIT(IWL_CALIB_BASE_BAND);
-
- priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS;
-
- return 0;
-}
-
-static int iwl6050_hw_set_hw_params(struct iwl_priv *priv)
-{
- if (priv->cfg->mod_params->num_of_queues >= IWL_MIN_NUM_QUEUES &&
- priv->cfg->mod_params->num_of_queues <= IWLAGN_NUM_QUEUES)
- priv->cfg->num_of_queues =
- priv->cfg->mod_params->num_of_queues;
-
- priv->hw_params.max_txq_num = priv->cfg->num_of_queues;
- priv->hw_params.dma_chnl_num = FH50_TCSR_CHNL_NUM;
- priv->hw_params.scd_bc_tbls_size =
- priv->cfg->num_of_queues *
- sizeof(struct iwlagn_scd_bc_tbl);
- priv->hw_params.tfd_size = sizeof(struct iwl_tfd);
- priv->hw_params.max_stations = IWL5000_STATION_COUNT;
- priv->hw_params.bcast_sta_id = IWL5000_BROADCAST_ID;
-
- priv->hw_params.max_data_size = IWL60_RTC_DATA_SIZE;
- priv->hw_params.max_inst_size = IWL60_RTC_INST_SIZE;
-
- priv->hw_params.max_bsm_size = 0;
- priv->hw_params.ht40_channel = BIT(IEEE80211_BAND_2GHZ) |
- BIT(IEEE80211_BAND_5GHZ);
- priv->hw_params.rx_wrt_ptr_reg = FH_RSCSR_CHNL0_WPTR;
-
- priv->hw_params.tx_chains_num = num_of_ant(priv->cfg->valid_tx_ant);
- priv->hw_params.rx_chains_num = num_of_ant(priv->cfg->valid_rx_ant);
- priv->hw_params.valid_tx_ant = priv->cfg->valid_tx_ant;
- priv->hw_params.valid_rx_ant = priv->cfg->valid_rx_ant;
-
- if (priv->cfg->ops->lib->temp_ops.set_ct_kill)
- priv->cfg->ops->lib->temp_ops.set_ct_kill(priv);
-
- /* Set initial sensitivity parameters */
- /* Set initial calibration set */
- priv->hw_params.sens = &iwl6000_sensitivity;
- priv->hw_params.calib_init_cfg =
- BIT(IWL_CALIB_XTAL) |
- BIT(IWL_CALIB_DC) |
- BIT(IWL_CALIB_LO) |
- BIT(IWL_CALIB_TX_IQ) |
- BIT(IWL_CALIB_BASE_BAND);
+ if (priv->cfg->need_dc_calib)
+ priv->hw_params.calib_init_cfg |= BIT(IWL_CALIB_DC);
priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS;
@@ -359,6 +315,7 @@ static struct iwl_lib_ops iwl6000_lib = {
.temp_ops = {
.temperature = iwlagn_temperature,
.set_ct_kill = iwl6000_set_ct_threshold,
+ .set_calib_version = iwl6000_set_calib_version,
},
.manage_ibss_station = iwlagn_manage_ibss_station,
.debugfs_ops = {
@@ -397,79 +354,6 @@ static const struct iwl_ops iwl6000g2b_ops = {
.led = &iwlagn_led_ops,
};
-static struct iwl_lib_ops iwl6050_lib = {
- .set_hw_params = iwl6050_hw_set_hw_params,
- .txq_update_byte_cnt_tbl = iwlagn_txq_update_byte_cnt_tbl,
- .txq_inval_byte_cnt_tbl = iwlagn_txq_inval_byte_cnt_tbl,
- .txq_set_sched = iwlagn_txq_set_sched,
- .txq_agg_enable = iwlagn_txq_agg_enable,
- .txq_agg_disable = iwlagn_txq_agg_disable,
- .txq_attach_buf_to_tfd = iwl_hw_txq_attach_buf_to_tfd,
- .txq_free_tfd = iwl_hw_txq_free_tfd,
- .txq_init = iwl_hw_tx_queue_init,
- .rx_handler_setup = iwlagn_rx_handler_setup,
- .setup_deferred_work = iwlagn_setup_deferred_work,
- .is_valid_rtc_data_addr = iwlagn_hw_valid_rtc_data_addr,
- .load_ucode = iwlagn_load_ucode,
- .dump_nic_event_log = iwl_dump_nic_event_log,
- .dump_nic_error_log = iwl_dump_nic_error_log,
- .dump_csr = iwl_dump_csr,
- .dump_fh = iwl_dump_fh,
- .init_alive_start = iwlagn_init_alive_start,
- .alive_notify = iwlagn_alive_notify,
- .send_tx_power = iwlagn_send_tx_power,
- .update_chain_flags = iwl_update_chain_flags,
- .set_channel_switch = iwl6000_hw_channel_switch,
- .apm_ops = {
- .init = iwl_apm_init,
- .stop = iwl_apm_stop,
- .config = iwl6000_nic_config,
- .set_pwr_src = iwl_set_pwr_src,
- },
- .eeprom_ops = {
- .regulatory_bands = {
- EEPROM_REG_BAND_1_CHANNELS,
- EEPROM_REG_BAND_2_CHANNELS,
- EEPROM_REG_BAND_3_CHANNELS,
- EEPROM_REG_BAND_4_CHANNELS,
- EEPROM_REG_BAND_5_CHANNELS,
- EEPROM_6000_REG_BAND_24_HT40_CHANNELS,
- EEPROM_REG_BAND_52_HT40_CHANNELS
- },
- .verify_signature = iwlcore_eeprom_verify_signature,
- .acquire_semaphore = iwlcore_eeprom_acquire_semaphore,
- .release_semaphore = iwlcore_eeprom_release_semaphore,
- .calib_version = iwlagn_eeprom_calib_version,
- .query_addr = iwlagn_eeprom_query_addr,
- .update_enhanced_txpower = iwlcore_eeprom_enhanced_txpower,
- },
- .post_associate = iwl_post_associate,
- .isr = iwl_isr_ict,
- .config_ap = iwl_config_ap,
- .temp_ops = {
- .temperature = iwlagn_temperature,
- .set_ct_kill = iwl6000_set_ct_threshold,
- .set_calib_version = iwl6050_set_calib_version,
- },
- .manage_ibss_station = iwlagn_manage_ibss_station,
- .debugfs_ops = {
- .rx_stats_read = iwl_ucode_rx_stats_read,
- .tx_stats_read = iwl_ucode_tx_stats_read,
- .general_stats_read = iwl_ucode_general_stats_read,
- },
- .recover_from_tx_stall = iwl_bg_monitor_recover,
- .check_plcp_health = iwl_good_plcp_health,
- .check_ack_health = iwl_good_ack_health,
-};
-
-static const struct iwl_ops iwl6050_ops = {
- .lib = &iwl6050_lib,
- .hcmd = &iwlagn_hcmd,
- .utils = &iwlagn_hcmd_utils,
- .led = &iwlagn_led_ops,
-};
-
-
struct iwl_cfg iwl6000g2a_2agn_cfg = {
.name = "6000 Series 2x2 AGN Gen2a",
.fw_name_pre = IWL6000G2A_FW_PRE,
@@ -505,6 +389,7 @@ struct iwl_cfg iwl6000g2a_2agn_cfg = {
.ucode_tracing = true,
.sensitivity_calib_by_driver = true,
.chain_noise_calib_by_driver = true,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2a_2abg_cfg = {
@@ -537,6 +422,7 @@ struct iwl_cfg iwl6000g2a_2abg_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2a_2bg_cfg = {
@@ -569,6 +455,7 @@ struct iwl_cfg iwl6000g2a_2bg_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2b_2agn_cfg = {
@@ -603,6 +490,7 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2b_2abg_cfg = {
@@ -635,6 +523,7 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2b_2bgn_cfg = {
@@ -669,6 +558,7 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2b_2bg_cfg = {
@@ -701,6 +591,7 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2b_bgn_cfg = {
@@ -735,6 +626,7 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000g2b_bg_cfg = {
@@ -767,6 +659,7 @@ struct iwl_cfg iwl6000g2b_bg_cfg = {
.chain_noise_scale = 1000,
.monitor_recover_period = IWL_MONITORING_PERIOD,
.max_event_log_size = 512,
+ .need_dc_calib = true,
};
/*
@@ -885,7 +778,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
.ucode_api_max = IWL6050_UCODE_API_MAX,
.ucode_api_min = IWL6050_UCODE_API_MIN,
.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
- .ops = &iwl6050_ops,
+ .ops = &iwl6000_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
@@ -914,6 +807,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
.ucode_tracing = true,
.sensitivity_calib_by_driver = true,
.chain_noise_calib_by_driver = true,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6050_2abg_cfg = {
@@ -922,7 +816,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
.ucode_api_max = IWL6050_UCODE_API_MAX,
.ucode_api_min = IWL6050_UCODE_API_MIN,
.sku = IWL_SKU_A|IWL_SKU_G,
- .ops = &iwl6050_ops,
+ .ops = &iwl6000_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_6050_TX_POWER_VERSION,
@@ -949,6 +843,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
.ucode_tracing = true,
.sensitivity_calib_by_driver = true,
.chain_noise_calib_by_driver = true,
+ .need_dc_calib = true,
};
struct iwl_cfg iwl6000_3agn_cfg = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 5e72d74..cdcb51d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -330,6 +330,7 @@ struct iwl_cfg {
const bool chain_noise_calib_by_driver;
u8 scan_rx_antennas[IEEE80211_NUM_BANDS];
u8 scan_tx_antennas[IEEE80211_NUM_BANDS];
+ const bool need_dc_calib;
};
/***************************
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
index ee11452..a45d02e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
@@ -629,6 +629,9 @@ int iwl_eeprom_check_version(struct iwl_priv *priv)
calib_ver < priv->cfg->eeprom_calib_ver)
goto err;
+ IWL_INFO(priv, "device EEPROM VER=0x%x, CALIB=0x%x\n",
+ eeprom_ver, calib_ver);
+
return 0;
err:
IWL_ERR(priv, "Unsupported (too old) EEPROM VER=0x%x < 0x%x CALIB=0x%x < 0x%x\n",
--
1.7.0.4
^ permalink raw reply related
* [PATCH 1/8] iwlwifi: name change from signal protection flag
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
This bit need to be set for both RTS/CTS or CTS-to-self protection, if
CTS-to-self is used, then uCode will check the RXON_FLG_SELF_CTS_EN
status. Change the name from TX_CMD_FLG_RTS_CTS_MSK to TX_CMD_FLAG_PROT_REQUIRE_MSK
to match the behavior of the bit setting.
Also update comments to reflect which hardware uses which of the TX command
flags.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-commands.h | 30 ++++++++++++++++++--------
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
index d89a11c..f06d1fe 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
@@ -214,7 +214,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv)
static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info,
__le32 *tx_flags)
{
- *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK;
+ *tx_flags |= TX_CMD_FLG_PROT_REQUIRE_MSK;
}
/* Calc max signal level (dBm) among 3 possible receivers */
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 4984925..a304f77 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -1399,18 +1399,27 @@ struct iwl_rx_mpdu_res_start {
/* REPLY_TX Tx flags field */
-/* 1: Use RTS/CTS protocol or CTS-to-self if spec allows it
+/*
+ * 1: Use RTS/CTS protocol or CTS-to-self if spec allows it
* before this frame. if CTS-to-self required check
- * RXON_FLG_SELF_CTS_EN status. */
-#define TX_CMD_FLG_RTS_CTS_MSK cpu_to_le32(1 << 0)
+ * RXON_FLG_SELF_CTS_EN status.
+ * unused in 3945/4965, used in 5000 series and after
+ */
+#define TX_CMD_FLG_PROT_REQUIRE_MSK cpu_to_le32(1 << 0)
-/* 1: Use Request-To-Send protocol before this frame.
- * Mutually exclusive vs. TX_CMD_FLG_CTS_MSK. */
+/*
+ * 1: Use Request-To-Send protocol before this frame.
+ * Mutually exclusive vs. TX_CMD_FLG_CTS_MSK.
+ * used in 3945/4965, unused in 5000 series and after
+ */
#define TX_CMD_FLG_RTS_MSK cpu_to_le32(1 << 1)
-/* 1: Transmit Clear-To-Send to self before this frame.
+/*
+ * 1: Transmit Clear-To-Send to self before this frame.
* Driver should set this for AUTH/DEAUTH/ASSOC-REQ/REASSOC mgmnt frames.
- * Mutually exclusive vs. TX_CMD_FLG_RTS_MSK. */
+ * Mutually exclusive vs. TX_CMD_FLG_RTS_MSK.
+ * used in 3945/4965, unused in 5000 series and after
+ */
#define TX_CMD_FLG_CTS_MSK cpu_to_le32(1 << 2)
/* 1: Expect ACK from receiving station
@@ -1430,8 +1439,11 @@ struct iwl_rx_mpdu_res_start {
* Set when Txing a block-ack request frame. Also set TX_CMD_FLG_ACK_MSK. */
#define TX_CMD_FLG_IMM_BA_RSP_MASK cpu_to_le32(1 << 6)
-/* 1: Frame requires full Tx-Op protection.
- * Set this if either RTS or CTS Tx Flag gets set. */
+/*
+ * 1: Frame requires full Tx-Op protection.
+ * Set this if either RTS or CTS Tx Flag gets set.
+ * used in 3945/4965, unused in 5000 series and after
+ */
#define TX_CMD_FLG_FULL_TXOP_PROT_MSK cpu_to_le32(1 << 7)
/* Tx antenna selection field; used only for 3945, reserved (0) for 4965.
--
1.7.0.4
^ permalink raw reply related
* [PATCH 0/8] iwlwifi updates for 2.6.36
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre
A variety of changes are included in this series. With the recent station
management changes the rate is not allocated correctly for broadcast
station if user happens to switch from 2.4 to 5 GHz. Fix this. We also
include a fix for the case when the user switches the rfkill state while
system hibernates. A recent patch introduced an error message with it is
learned that antennas are disconnected ... we since have seen this message
under various circumstances and reduce the severity here until our
understanding of the behavior is complete. We add some configuration
capabilities to driver to deal with requirements of various hardwares.
There is a potential issue at the moment where a move to RTS/CTS protection
can cause problems, this is reworked to set RTS/CTS mode when the
aggregation becomes operational ... which it when it is really needed.
Please note that I merged wireless-2.6 into wireless-next-2.6 since there
is a fix in wireless-2.6 ("iwlwifi: set TX_CMD_FLAG_PROT_REQUIRE_MSK
in tx_flag") that should be considered in a name change patch included in
this series.
These patches are also available from wireless-next-2.6 branch on
git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-2.6.git
Daniel Halperin (1):
iwlwifi: update LQ for bcast station on channel change
Johannes Berg (1):
iwlwifi: read rfkill during resume
Reinette Chatre (1):
iwlagn: reduce severity of disconnected antennas warning
Wey-Yi Guy (5):
iwlwifi: name change from signal protection flag
iwlwifi: enable DC calibration based on config parameter
iwlwifi: add a mechanism to disable plcp error checking
iwlwifi: turn on RTS/CTS after aggregation become operational
iwlwifi: add disable rf calibration support for 6000g2a and 6000g2b
drivers/net/wireless/iwlwifi/iwl-1000.c | 3 +
drivers/net/wireless/iwlwifi/iwl-3945.c | 5 +
drivers/net/wireless/iwlwifi/iwl-4965.c | 1 +
drivers/net/wireless/iwlwifi/iwl-5000.c | 7 +-
drivers/net/wireless/iwlwifi/iwl-6000.c | 160 ++++++--------------------
drivers/net/wireless/iwlwifi/iwl-agn-calib.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 2 +-
drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 17 +--
drivers/net/wireless/iwlwifi/iwl-agn-rx.c | 6 +
drivers/net/wireless/iwlwifi/iwl-agn.c | 28 +++++-
drivers/net/wireless/iwlwifi/iwl-commands.h | 30 ++++--
drivers/net/wireless/iwlwifi/iwl-core.c | 15 +++
drivers/net/wireless/iwlwifi/iwl-core.h | 2 +
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 4 +-
drivers/net/wireless/iwlwifi/iwl-dev.h | 3 +-
drivers/net/wireless/iwlwifi/iwl-eeprom.c | 3 +
drivers/net/wireless/iwlwifi/iwl-scan.c | 9 ++
drivers/net/wireless/iwlwifi/iwl-sta.c | 30 +++++
drivers/net/wireless/iwlwifi/iwl-sta.h | 1 +
19 files changed, 179 insertions(+), 155 deletions(-)
^ permalink raw reply
* [PATCH 3/8] iwlwifi: add a mechanism to disable plcp error checking
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
For some devices, especially the upcoming new devices, the plcp error
rate is different. Before the correct error rate can be determine, also
for the debugging purpose; add the mechanism to disable plcp error checking
which cause radio reset happen.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-3945.c | 5 +++++
drivers/net/wireless/iwlwifi/iwl-agn-rx.c | 6 ++++++
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 4 ++--
drivers/net/wireless/iwlwifi/iwl-dev.h | 3 ++-
4 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 93d513e..a07310f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -406,6 +406,11 @@ static bool iwl3945_good_plcp_health(struct iwl_priv *priv,
unsigned int plcp_msec;
unsigned long plcp_received_jiffies;
+ if (priv->cfg->plcp_delta_threshold ==
+ IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE) {
+ IWL_DEBUG_RADIO(priv, "plcp_err check disabled\n");
+ return rc;
+ }
memcpy(¤t_stat, pkt->u.raw, sizeof(struct
iwl3945_notif_statistics));
/*
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rx.c b/drivers/net/wireless/iwlwifi/iwl-agn-rx.c
index ad2bead..d54edc3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rx.c
@@ -166,6 +166,12 @@ bool iwl_good_plcp_health(struct iwl_priv *priv,
unsigned int plcp_msec;
unsigned long plcp_received_jiffies;
+ if (priv->cfg->plcp_delta_threshold ==
+ IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE) {
+ IWL_DEBUG_RADIO(priv, "plcp_err check disabled\n");
+ return rc;
+ }
+
/*
* check for plcp_err and trigger radio reset if it exceeds
* the plcp error threshold plcp_delta.
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index cee3d12..7d9ffc1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -1430,10 +1430,10 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
return -EFAULT;
if (sscanf(buf, "%d", &plcp) != 1)
return -EINVAL;
- if ((plcp <= IWL_MAX_PLCP_ERR_THRESHOLD_MIN) ||
+ if ((plcp < IWL_MAX_PLCP_ERR_THRESHOLD_MIN) ||
(plcp > IWL_MAX_PLCP_ERR_THRESHOLD_MAX))
priv->cfg->plcp_delta_threshold =
- IWL_MAX_PLCP_ERR_THRESHOLD_DEF;
+ IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE;
else
priv->cfg->plcp_delta_threshold = plcp;
return count;
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 1af845c..df07a14 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1036,11 +1036,12 @@ struct iwl_event_log {
* This is the threshold value of plcp error rate per 100mSecs. It is
* used to set and check for the validity of plcp_delta.
*/
-#define IWL_MAX_PLCP_ERR_THRESHOLD_MIN (0)
+#define IWL_MAX_PLCP_ERR_THRESHOLD_MIN (1)
#define IWL_MAX_PLCP_ERR_THRESHOLD_DEF (50)
#define IWL_MAX_PLCP_ERR_LONG_THRESHOLD_DEF (100)
#define IWL_MAX_PLCP_ERR_EXT_LONG_THRESHOLD_DEF (200)
#define IWL_MAX_PLCP_ERR_THRESHOLD_MAX (255)
+#define IWL_MAX_PLCP_ERR_THRESHOLD_DISABLE (0)
#define IWL_DELAY_NEXT_FORCE_RF_RESET (HZ*3)
#define IWL_DELAY_NEXT_FORCE_FW_RELOAD (HZ*5)
--
1.7.0.4
^ permalink raw reply related
* [PATCH 4/8] iwlwifi: update LQ for bcast station on channel change
From: Reinette Chatre @ 2010-06-25 22:42 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Daniel Halperin, Reinette Chatre
In-Reply-To: <1277505781-25268-1-git-send-email-reinette.chatre@intel.com>
From: Daniel Halperin <dhalperi@cs.washington.edu>
The rate table in the bcast LQ is computed only when the station is
allocated, and chooses the lowest rate for the band. Because of when this
occurs, this is the 2.4 GHz band and uses the 0x420a (CCK, 1 Mbps) rate. In 5 GHz
beaconing mode, this rate will prevent beacons from being sent and any other
packets from being received.
We can fix this by re-initializing the bcast station's LQ command when the
channel is changed.
Signed-off-by: Daniel Halperin <dhalperi@cs.washington.edu>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-1000.c | 1 +
drivers/net/wireless/iwlwifi/iwl-4965.c | 1 +
drivers/net/wireless/iwlwifi/iwl-5000.c | 2 ++
drivers/net/wireless/iwlwifi/iwl-6000.c | 1 +
drivers/net/wireless/iwlwifi/iwl-core.c | 3 +++
drivers/net/wireless/iwlwifi/iwl-core.h | 1 +
drivers/net/wireless/iwlwifi/iwl-sta.c | 30 ++++++++++++++++++++++++++++++
drivers/net/wireless/iwlwifi/iwl-sta.h | 1 +
8 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index 24743b9..1daf159 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -217,6 +217,7 @@ static struct iwl_lib_ops iwl1000_lib = {
.set_ct_kill = iwl1000_set_ct_threshold,
},
.manage_ibss_station = iwlagn_manage_ibss_station,
+ .update_bcast_station = iwl_update_bcast_station,
.debugfs_ops = {
.rx_stats_read = iwl_ucode_rx_stats_read,
.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 67526a1..1dd3bc4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2280,6 +2280,7 @@ static struct iwl_lib_ops iwl4965_lib = {
.set_ct_kill = iwl4965_set_ct_threshold,
},
.manage_ibss_station = iwlagn_manage_ibss_station,
+ .update_bcast_station = iwl_update_bcast_station,
.debugfs_ops = {
.rx_stats_read = iwl_ucode_rx_stats_read,
.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index fa2dbb5..b8f3e20 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -393,6 +393,7 @@ static struct iwl_lib_ops iwl5000_lib = {
.set_ct_kill = iwl5000_set_ct_threshold,
},
.manage_ibss_station = iwlagn_manage_ibss_station,
+ .update_bcast_station = iwl_update_bcast_station,
.debugfs_ops = {
.rx_stats_read = iwl_ucode_rx_stats_read,
.tx_stats_read = iwl_ucode_tx_stats_read,
@@ -455,6 +456,7 @@ static struct iwl_lib_ops iwl5150_lib = {
.set_ct_kill = iwl5150_set_ct_threshold,
},
.manage_ibss_station = iwlagn_manage_ibss_station,
+ .update_bcast_station = iwl_update_bcast_station,
.debugfs_ops = {
.rx_stats_read = iwl_ucode_rx_stats_read,
.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index c909a9c..61cf0b3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -318,6 +318,7 @@ static struct iwl_lib_ops iwl6000_lib = {
.set_calib_version = iwl6000_set_calib_version,
},
.manage_ibss_station = iwlagn_manage_ibss_station,
+ .update_bcast_station = iwl_update_bcast_station,
.debugfs_ops = {
.rx_stats_read = iwl_ucode_rx_stats_read,
.tx_stats_read = iwl_ucode_tx_stats_read,
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 329e510..f47a58f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -2110,6 +2110,9 @@ int iwl_mac_config(struct ieee80211_hw *hw, u32 changed)
iwl_set_flags_for_band(priv, conf->channel->band, priv->vif);
spin_unlock_irqrestore(&priv->lock, flags);
+ if (priv->cfg->ops->lib->update_bcast_station)
+ ret = priv->cfg->ops->lib->update_bcast_station(priv);
+
set_ch_out:
/* The list of supported rates and rate mask can be different
* for each band; since the band may have changed, reset
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index cdcb51d..15930e0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -196,6 +196,7 @@ struct iwl_lib_ops {
/* station management */
int (*manage_ibss_station)(struct iwl_priv *priv,
struct ieee80211_vif *vif, bool add);
+ int (*update_bcast_station)(struct iwl_priv *priv);
/* recover from tx queue stall */
void (*recover_from_tx_stall)(unsigned long data);
/* check for plcp health */
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c
index 6a9cd08..9511f03 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.c
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.c
@@ -1259,6 +1259,36 @@ int iwl_alloc_bcast_station(struct iwl_priv *priv, bool init_lq)
}
EXPORT_SYMBOL_GPL(iwl_alloc_bcast_station);
+/**
+ * iwl_update_bcast_station - update broadcast station's LQ command
+ *
+ * Only used by iwlagn. Placed here to have all bcast station management
+ * code together.
+ */
+int iwl_update_bcast_station(struct iwl_priv *priv)
+{
+ unsigned long flags;
+ struct iwl_link_quality_cmd *link_cmd;
+ u8 sta_id = priv->hw_params.bcast_sta_id;
+
+ link_cmd = iwl_sta_alloc_lq(priv, sta_id);
+ if (!link_cmd) {
+ IWL_ERR(priv, "Unable to initialize rate scaling for bcast station.\n");
+ return -ENOMEM;
+ }
+
+ spin_lock_irqsave(&priv->sta_lock, flags);
+ if (priv->stations[sta_id].lq)
+ kfree(priv->stations[sta_id].lq);
+ else
+ IWL_DEBUG_INFO(priv, "Bcast station rate scaling has not been initialized yet.\n");
+ priv->stations[sta_id].lq = link_cmd;
+ spin_unlock_irqrestore(&priv->sta_lock, flags);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(iwl_update_bcast_station);
+
void iwl_dealloc_bcast_station(struct iwl_priv *priv)
{
unsigned long flags;
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.h b/drivers/net/wireless/iwlwifi/iwl-sta.h
index 619bb99..ba95b1a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-sta.h
+++ b/drivers/net/wireless/iwlwifi/iwl-sta.h
@@ -60,6 +60,7 @@ void iwl_restore_stations(struct iwl_priv *priv);
void iwl_clear_ucode_stations(struct iwl_priv *priv);
int iwl_alloc_bcast_station(struct iwl_priv *priv, bool init_lq);
void iwl_dealloc_bcast_station(struct iwl_priv *priv);
+int iwl_update_bcast_station(struct iwl_priv *priv);
int iwl_get_free_ucode_key_index(struct iwl_priv *priv);
int iwl_send_add_sta(struct iwl_priv *priv,
struct iwl_addsta_cmd *sta, u8 flags);
--
1.7.0.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox