* [PATCH] Revert "ath9k: Parse DTIM period from mac80211"
From: Mohammed Shafi Shajakhan @ 2010-12-30 6:48 UTC (permalink / raw)
To: linville
Cc: linux-wireless, lrodriguez, Mohammed Shafi Shajakhan,
Jouni Malinen
From: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
This reverts commit 0ce3bcfc84900a64347b0fe1140229bd81314008.
Event though with the above commit we obtain the configured DTIM period
from the AP rather than always hardcoding it to '1', this seems to cause
problems under the following scenarios:
* Preventing association with broken AP's
* Adds latency in roaming
So its better to always use the safe value of '1' for dtim period
Cc: Jouni Malinen <Jouni.Malinen@Atheros.com>
Signed-off-by: Mohammed Shafi Shajakhan <mshajakhan@atheros.com>
---
drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 +--
drivers/net/wireless/ath/ath9k/init.c | 3 +--
2 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 0f6be35..e0a9c83 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -714,8 +714,7 @@ static void ath9k_set_hw_capab(struct ath9k_htc_priv *priv,
IEEE80211_HW_HAS_RATE_CONTROL |
IEEE80211_HW_RX_INCLUDES_FCS |
IEEE80211_HW_SUPPORTS_PS |
- IEEE80211_HW_PS_NULLFUNC_STACK |
- IEEE80211_HW_NEED_DTIM_PERIOD;
+ IEEE80211_HW_PS_NULLFUNC_STACK;
hw->wiphy->interface_modes =
BIT(NL80211_IFTYPE_STATION) |
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index b0e5e71..498c3a4 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -647,8 +647,7 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
IEEE80211_HW_SUPPORTS_PS |
IEEE80211_HW_PS_NULLFUNC_STACK |
IEEE80211_HW_SPECTRUM_MGMT |
- IEEE80211_HW_REPORTS_TX_ACK_STATUS |
- IEEE80211_HW_NEED_DTIM_PERIOD;
+ IEEE80211_HW_REPORTS_TX_ACK_STATUS;
if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
--
1.7.0.4
^ permalink raw reply related
* [PATCH] mac80211: fix mesh forwarding when ratelimited too
From: Milton Miller @ 2010-12-30 8:01 UTC (permalink / raw)
To: John W. Linville, Johannes Berg, Javier Cardona
Cc: David S. Miller, linux-wireless, netdev, linux-kernel
In-Reply-To: <201012262159.oBQLxOsw008865@hera.kernel.org>
Commit b51aff057c9d0ef6c529dc25fd9f775faf7b6c63 said:
Under memory pressure, the mac80211 mesh code
may helpfully print a message that it failed
to clone a mesh frame and then will proceed
to crash trying to use it anyway. Fix that.
Avoid the reference whenever the frame copy is unsuccessful
regardless of the debug message being suppressed or printed.
Cc: stable@kernel.org [2.6.27+]
Signed-off-by: Milton Miller <miltonm@bga.com>
---
I chose a seperate if vs nesting the ratelimit check to avoid shifting
the printk further to the right.
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index b01e467..e98668f 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1788,11 +1788,11 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
fwd_skb = skb_copy(skb, GFP_ATOMIC);
- if (!fwd_skb && net_ratelimit()) {
+ if (!fwd_skb && net_ratelimit())
printk(KERN_DEBUG "%s: failed to clone mesh frame\n",
sdata->name);
+ if (!fwd_skb)
goto out;
- }
fwd_hdr = (struct ieee80211_hdr *) fwd_skb->data;
memcpy(fwd_hdr->addr2, sdata->vif.addr, ETH_ALEN);
^ permalink raw reply related
* Re: [PATCH] mac80211: fix mesh forwarding when ratelimited too
From: Johannes Berg @ 2010-12-30 8:53 UTC (permalink / raw)
To: Milton Miller
Cc: John W. Linville, Javier Cardona, David S. Miller, linux-wireless,
netdev, linux-kernel
In-Reply-To: <mac80211-rx-ratelimit-goto@mdm.bga.com>
On Thu, 2010-12-30 at 02:01 -0600, Milton Miller wrote:
> Commit b51aff057c9d0ef6c529dc25fd9f775faf7b6c63 said:
>
> Under memory pressure, the mac80211 mesh code
> may helpfully print a message that it failed
> to clone a mesh frame and then will proceed
> to crash trying to use it anyway. Fix that.
>
> Avoid the reference whenever the frame copy is unsuccessful
> regardless of the debug message being suppressed or printed.
>
> Cc: stable@kernel.org [2.6.27+]
> Signed-off-by: Milton Miller <miltonm@bga.com>
> ---
> I chose a seperate if vs nesting the ratelimit check to avoid shifting
> the printk further to the right.
>
> diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
> index b01e467..e98668f 100644
> --- a/net/mac80211/rx.c
> +++ b/net/mac80211/rx.c
> @@ -1788,11 +1788,11 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
>
> fwd_skb = skb_copy(skb, GFP_ATOMIC);
>
> - if (!fwd_skb && net_ratelimit()) {
> + if (!fwd_skb && net_ratelimit())
> printk(KERN_DEBUG "%s: failed to clone mesh frame\n",
> sdata->name);
> + if (!fwd_skb)
> goto out;
> - }
Oops, good catch! Thanks.
johannes
^ permalink raw reply
* [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged skbs
From: Tomas Winkler @ 2010-12-30 11:32 UTC (permalink / raw)
To: davem; +Cc: netdev, linux-wireless, Tomas Winkler, Johannes Berg
In-Reply-To: <AANLkTi=XQ2DE==ggJHfokUE1=opDVOFxQNeqwY1xZN_8@mail.gmail.com>
use pskb_may_pull to access header correctly for paged skbs
the pskb_may_pull ideom is used ipv6 heder parsing
but omitted int the bridge code
this fixes bug https://bugzilla.kernel.org/show_bug.cgi?id=25202
Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: authenticated
Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: associated (aid 2)
Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 RADIUS: starting accounting session 4D0608A3-00000005
Dec 15 14:36:41 User-PC kernel: [175576.120287] ------------[ cut here ]------------
Dec 15 14:36:41 User-PC kernel: [175576.120452] kernel BUG at include/linux/skbuff.h:1178!
Dec 15 14:36:41 User-PC kernel: [175576.120609] invalid opcode: 0000 [#1] SMP
Dec 15 14:36:41 User-PC kernel: [175576.120749] last sysfs file: /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/uevent
Dec 15 14:36:41 User-PC kernel: [175576.121035] Modules linked in: oprofile binfmt_misc bridge stp llc parport_pc ppdev arc4 iwlagn snd_hda_codec_realtek iwlcore i915 snd_hda_intel mac80211 joydev snd_hda_codec snd_hwdep snd_pcm snd_seq_midi drm_kms_helper snd_rawmidi drm snd_seq_midi_event snd_seq snd_timer snd_seq_device cfg80211 eeepc_wmi usbhid psmouse intel_agp i2c_algo_bit intel_gtt uvcvideo agpgart videodev sparse_keymap snd shpchp v4l1_compat lp hid video serio_raw soundcore output snd_page_alloc ahci libahci atl1c
Dec 15 14:36:41 User-PC kernel: [175576.122712]
Dec 15 14:36:41 User-PC kernel: [175576.122769] Pid: 0, comm: kworker/0:0 Tainted: G W 2.6.37-rc5-wl+ #3 1015PE/1016P
Dec 15 14:36:41 User-PC kernel: [175576.123012] EIP: 0060:[<f83edd65>] EFLAGS: 00010283 CPU: 1
Dec 15 14:36:41 User-PC kernel: [175576.123193] EIP is at br_multicast_rcv+0xc95/0xe1c [bridge]
Dec 15 14:36:41 User-PC kernel: [175576.123362] EAX: 0000001c EBX: f5626318 ECX: 00000000 EDX: 00000000
Dec 15 14:36:41 User-PC kernel: [175576.123550] ESI: ec512262 EDI: f5626180 EBP: f60b5ca0 ESP: f60b5bd8
Dec 15 14:36:41 User-PC kernel: [175576.123737] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Dec 15 14:36:41 User-PC kernel: [175576.123902] Process kworker/0:0 (pid: 0, ti=f60b4000 task=f60a8000 task.ti=f60b0000)
Dec 15 14:36:41 User-PC kernel: [175576.124137] Stack:
Dec 15 14:36:41 User-PC kernel: [175576.124181] ec556500 f6d06800 f60b5be8 c01087d8 ec512262 00000030 00000024 f5626180
Dec 15 14:36:41 User-PC kernel: [175576.124181] f572c200 ef463440 f5626300 3affffff f6d06dd0 e60766a4 000000c4 f6d06860
Dec 15 14:36:41 User-PC kernel: [175576.124181] ffffffff ec55652c 00000001 f6d06844 f60b5c64 c0138264 c016e451 c013e47d
Dec 15 14:36:41 User-PC kernel: [175576.124181] Call Trace:
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01087d8>] ? sched_clock+0x8/0x10
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0138264>] ? enqueue_entity+0x174/0x440
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c016e451>] ? sched_clock_cpu+0x131/0x190
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c013e47d>] ? select_task_rq_fair+0x2ad/0x730
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0524fc1>] ? nf_iterate+0x71/0x90
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4914>] ? br_handle_frame_finish+0x184/0x220 [bridge]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4790>] ? br_handle_frame_finish+0x0/0x220 [bridge]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e46e9>] ? br_handle_frame+0x189/0x230 [bridge]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4790>] ? br_handle_frame_finish+0x0/0x220 [bridge]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4560>] ? br_handle_frame+0x0/0x230 [bridge]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04ff026>] ? __netif_receive_skb+0x1b6/0x5b0
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04f7a30>] ? skb_copy_bits+0x110/0x210
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0503a7f>] ? netif_receive_skb+0x6f/0x80
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82cb74c>] ? ieee80211_deliver_skb+0x8c/0x1a0 [mac80211]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82cc836>] ? ieee80211_rx_handlers+0xeb6/0x1aa0 [mac80211]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04ff1f0>] ? __netif_receive_skb+0x380/0x5b0
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c016e242>] ? sched_clock_local+0xb2/0x190
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c012b688>] ? default_spin_lock_flags+0x8/0x10
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d83df>] ? _raw_spin_lock_irqsave+0x2f/0x50
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82cd621>] ? ieee80211_prepare_and_rx_handle+0x201/0xa90 [mac80211]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82ce154>] ? ieee80211_rx+0x2a4/0x830 [mac80211]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f815a8d6>] ? iwl_update_stats+0xa6/0x2a0 [iwlcore]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f8499212>] ? iwlagn_rx_reply_rx+0x292/0x3b0 [iwlagn]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d83df>] ? _raw_spin_lock_irqsave+0x2f/0x50
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f8483697>] ? iwl_rx_handle+0xe7/0x350 [iwlagn]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f8486ab7>] ? iwl_irq_tasklet+0xf7/0x5c0 [iwlagn]
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01aece1>] ? __rcu_process_callbacks+0x201/0x2d0
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0150d05>] ? tasklet_action+0xc5/0x100
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0150a07>] ? __do_softirq+0x97/0x1d0
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d910c>] ? nmi_stack_correct+0x2f/0x34
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0150970>] ? __do_softirq+0x0/0x1d0
Dec 15 14:36:41 User-PC kernel: [175576.124181] <IRQ>
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01508f5>] ? irq_exit+0x65/0x70
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05df062>] ? do_IRQ+0x52/0xc0
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01036b0>] ? common_interrupt+0x30/0x38
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c03a1fc2>] ? intel_idle+0xc2/0x160
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04daebb>] ? cpuidle_idle_call+0x6b/0x100
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0101dea>] ? cpu_idle+0x8a/0xf0
Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d2702>] ? start_secondary+0x1e8/0x1ee
Cc:YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Cc: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
---
net/bridge/br_multicast.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index f19e347..074c478 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1464,6 +1464,10 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
return 0;
+ if (!pskb_may_pull(skb,
+ (skb_network_header(skb) + offset + 1 - skb->data)))
+ return 0;
+
/* Okay, we found ICMPv6 header */
skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2)
--
1.7.3.4
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
^ permalink raw reply related
* [PATCH] ath9k: fix beacon restart on channel change
From: Rajkumar Manoharan @ 2010-12-30 13:37 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, Rajkumar Manoharan, stable
Restart the beacon timers only if the beacon
was already configured. Otherwise beacons timers
are restarted unnecessarily in unassociated state too.
Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com>
---
drivers/net/wireless/ath/ath9k/main.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 8a1691d..fe09963 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -285,7 +285,8 @@ int ath_set_channel(struct ath_softc *sc, struct ieee80211_hw *hw,
ath9k_hw_set_interrupts(ah, ah->imask);
if (!(sc->sc_flags & (SC_OP_OFFCHANNEL))) {
- ath_beacon_config(sc, NULL);
+ if (sc->sc_flags & SC_OP_BEACONS)
+ ath_beacon_config(sc, NULL);
ieee80211_queue_delayed_work(sc->hw, &sc->tx_complete_work, 0);
ath_start_ani(common);
}
--
1.7.3.4
^ permalink raw reply related
* Re: 2.6.37-rc7: Regression: b43: crashes in hwrng_register()
From: Mario 'BitKoenig' Holbe @ 2010-12-30 14:34 UTC (permalink / raw)
To: Larry Finger; +Cc: LKML, wireless, b43-dev
In-Reply-To: <4D1BF056.3060909@lwfinger.net>
[-- Attachment #1: Type: text/plain, Size: 3066 bytes --]
On Wed, Dec 29, 2010 at 08:37:10PM -0600, Larry Finger wrote:
> No, don't bother. I do have a different request. The byte counts for my 32-bit
> system do not match yours. Could you please use the following command to find
> the instructions that are failing?
>
> objdump -l -d drivers/char/hw_random/core.o | less
>
> Use the search to find the start of hwrng_register, then add 0x4c to the
> starting address. Once I see hte instruction that is failing, I should be able
> to find where the failure occurs.
Alright, here we go...
[ 30.012695] BUG: unable to handle kernel paging request at 4b28f458
[ 30.012708] IP: [<f90703cc>] hwrng_register+0x4c/0x139 [rng_core]
00000380 <hwrng_register>:
hwrng_register():
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:299
380: 56 push %esi
381: 53 push %ebx
...
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:312
3c6: 8b 76 1c mov 0x1c(%esi),%esi
3c9: 83 ee 1c sub $0x1c,%esi
prefetch():
/tmp/1/linux-source-2.6.37-rc7/arch/x86/include/asm/processor.h:837
3cc: 8b 46 1c mov 0x1c(%esi),%eax
3cf: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
hwrng_register():
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:312
3d3: 81 fe f8 ff ff ff cmp $0xfffffff8,%esi
3d9: 75 d4 jne 3af <hwrng_register+0x2f>
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:319
312 list_for_each_entry(tmp, &rng_list, list) {
313 if (strcmp(tmp->name, rng->name) == 0)
314 goto out_unlock;
315 }
This is btw. the same data that is accessed in the cat rng_available
crash via hwrng_attr_available_show():
[ 389.303538] BUG: unable to handle kernel paging request at 288dcb5b
[ 389.303553] IP: [<f8dda34c>] hwrng_attr_available_show+0x5c/0x90 [rng_core]
000002f0 <hwrng_attr_available_show>:
hwrng_attr_available_show():
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:236
2f0: 55 push %ebp
...
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:245
346: 8b 5b 1c mov 0x1c(%ebx),%ebx
349: 83 eb 1c sub $0x1c,%ebx
prefetch():
/tmp/1/linux-source-2.6.37-rc7/arch/x86/include/asm/processor.h:837
34c: 8b 43 1c mov 0x1c(%ebx),%eax
34f: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
hwrng_attr_available_show():
/tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:245
245 list_for_each_entry(rng, &rng_list, list) {
246 strncat(buf, rng->name, PAGE_SIZE - ret - 1);
247 ret += strlen(rng->name);
248 strncat(buf, " ", PAGE_SIZE - ret - 1);
249 ret++;
250 }
regards
Mario
--
The problem in the world today is communication. Too much communication.
-- Homer J. Simpson
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 482 bytes --]
^ permalink raw reply
* Get slow speed when using ar9170usb driver.
From: Chin Shi Hong @ 2010-12-30 15:55 UTC (permalink / raw)
To: linux-wireless
In-Reply-To: <AANLkTimYqrqUK2EjnyvkwvsFM+6b7ZMTGjBQrWFT712T@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 638 bytes --]
Dear All,
Wireless adapter model: TP-LINK WN821NC (USB 300Mbps Wireless N adapter)
Output of lsusb: Bus 001 Device 007: ID 0cf3:1002 Atheros
Communications, Inc. TP-Link TL-WN821N v2 [Atheros AR9001U-(2)NG]
Wireless router: TP-LINK W8960N (300Mbps Wireless N router)
Driver name ar9170usb
Linux distro: Ubuntu 10.10 64 bit
Kernel version: 2.6.35-24-generic
If I use Ndiswrapper + Windows XP driver, I can get full 300Mbps. At
the same distance, if I use ar9170usb driver, I can only get maximum
54Mbps speed.
Attached here with the screenshot of the speed, output of "dmesg"
command, and the output of "iw event -t" command.
Regards,
[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 60213 bytes --]
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 2.6.35-24-generic (buildd@yellow) (gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) ) #42-Ubuntu SMP Thu Dec 2 02:41:37 UTC 2010 (Ubuntu 2.6.35-24.42-generic 2.6.35.8)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-2.6.35-24-generic root=/dev/sda1 loop=/ubuntu/disks/root.disk ro quiet splash
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: 0000000000000000 - 000000000008f000 (usable)
[ 0.000000] BIOS-e820: 000000000008f000 - 00000000000a0000 (reserved)
[ 0.000000] BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[ 0.000000] BIOS-e820: 0000000000100000 - 00000000bee8b000 (usable)
[ 0.000000] BIOS-e820: 00000000bee8b000 - 00000000bef9f000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bef9f000 - 00000000bfd75000 (usable)
[ 0.000000] BIOS-e820: 00000000bfd75000 - 00000000bfd7d000 (reserved)
[ 0.000000] BIOS-e820: 00000000bfd7d000 - 00000000bfe2d000 (usable)
[ 0.000000] BIOS-e820: 00000000bfe2d000 - 00000000bfe31000 (reserved)
[ 0.000000] BIOS-e820: 00000000bfe31000 - 00000000bfeaa000 (usable)
[ 0.000000] BIOS-e820: 00000000bfeaa000 - 00000000bfee9000 (ACPI NVS)
[ 0.000000] BIOS-e820: 00000000bfee9000 - 00000000bfeee000 (usable)
[ 0.000000] BIOS-e820: 00000000bfeee000 - 00000000bfeff000 (ACPI data)
[ 0.000000] BIOS-e820: 00000000bfeff000 - 00000000bff00000 (usable)
[ 0.000000] BIOS-e820: 00000000bff00000 - 00000000c0000000 (reserved)
[ 0.000000] BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] DMI 2.4 present.
[ 0.000000] e820 update range: 0000000000000000 - 0000000000001000 (usable) ==> (reserved)
[ 0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[ 0.000000] No AGP bridge found
[ 0.000000] last_pfn = 0xbff00 max_arch_pfn = 0x400000000
[ 0.000000] MTRR default type: uncachable
[ 0.000000] MTRR fixed ranges enabled:
[ 0.000000] 00000-9FFFF write-back
[ 0.000000] A0000-FFFFF uncachable
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] 0 base 000000000 mask F80000000 write-back
[ 0.000000] 1 base 080000000 mask FC0000000 write-back
[ 0.000000] 2 base 0BFF00000 mask FFFF00000 uncachable
[ 0.000000] 3 disabled
[ 0.000000] 4 disabled
[ 0.000000] 5 disabled
[ 0.000000] 6 disabled
[ 0.000000] 7 disabled
[ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[ 0.000000] e820 update range: 0000000000001000 - 0000000000010000 (usable) ==> (reserved)
[ 0.000000] Scanning 1 areas for low memory corruption
[ 0.000000] modified physical RAM map:
[ 0.000000] modified: 0000000000000000 - 0000000000010000 (reserved)
[ 0.000000] modified: 0000000000010000 - 000000000008f000 (usable)
[ 0.000000] modified: 000000000008f000 - 00000000000a0000 (reserved)
[ 0.000000] modified: 00000000000e0000 - 0000000000100000 (reserved)
[ 0.000000] modified: 0000000000100000 - 00000000bee8b000 (usable)
[ 0.000000] modified: 00000000bee8b000 - 00000000bef9f000 (ACPI NVS)
[ 0.000000] modified: 00000000bef9f000 - 00000000bfd75000 (usable)
[ 0.000000] modified: 00000000bfd75000 - 00000000bfd7d000 (reserved)
[ 0.000000] modified: 00000000bfd7d000 - 00000000bfe2d000 (usable)
[ 0.000000] modified: 00000000bfe2d000 - 00000000bfe31000 (reserved)
[ 0.000000] modified: 00000000bfe31000 - 00000000bfeaa000 (usable)
[ 0.000000] modified: 00000000bfeaa000 - 00000000bfee9000 (ACPI NVS)
[ 0.000000] modified: 00000000bfee9000 - 00000000bfeee000 (usable)
[ 0.000000] modified: 00000000bfeee000 - 00000000bfeff000 (ACPI data)
[ 0.000000] modified: 00000000bfeff000 - 00000000bff00000 (usable)
[ 0.000000] modified: 00000000bff00000 - 00000000c0000000 (reserved)
[ 0.000000] modified: 00000000fff80000 - 0000000100000000 (reserved)
[ 0.000000] initial memory mapped : 0 - 20000000
[ 0.000000] found SMP MP-table at [ffff8800000fe200] fe200
[ 0.000000] init_memory_mapping: 0000000000000000-00000000bff00000
[ 0.000000] 0000000000 - 00bfe00000 page 2M
[ 0.000000] 00bfe00000 - 00bff00000 page 4k
[ 0.000000] kernel direct mapping tables up to bff00000 @ 16000-1b000
[ 0.000000] RAMDISK: 37571000 - 37ff0000
[ 0.000000] ACPI: RSDP 00000000000fe020 00014 (v00 INTEL )
[ 0.000000] ACPI: RSDT 00000000bfefd038 0004C (v01 INTEL D946GZIS 00000057 01000013)
[ 0.000000] ACPI: FACP 00000000bfefc000 00074 (v01 INTEL D946GZIS 00000057 MSFT 01000013)
[ 0.000000] ACPI: DSDT 00000000bfef7000 044D7 (v01 INTEL D946GZIS 00000057 MSFT 01000013)
[ 0.000000] ACPI: FACS 00000000bfeaa000 00040
[ 0.000000] ACPI: APIC 00000000bfef6000 00078 (v01 INTEL D946GZIS 00000057 MSFT 01000013)
[ 0.000000] ACPI: WDDT 00000000bfef5000 00040 (v01 INTEL D946GZIS 00000057 MSFT 01000013)
[ 0.000000] ACPI: MCFG 00000000bfef4000 0003C (v01 INTEL D946GZIS 00000057 MSFT 01000013)
[ 0.000000] ACPI: ASF! 00000000bfef3000 000A6 (v32 INTEL D946GZIS 00000057 MSFT 01000013)
[ 0.000000] ACPI: SSDT 00000000bfef2000 001BC (v01 INTEL CpuPm 00000057 MSFT 01000013)
[ 0.000000] ACPI: SSDT 00000000bfef1000 00175 (v01 INTEL Cpu0Ist 00000057 MSFT 01000013)
[ 0.000000] ACPI: SSDT 00000000bfef0000 00175 (v01 INTEL Cpu1Ist 00000057 MSFT 01000013)
[ 0.000000] ACPI: SSDT 00000000bfeef000 00175 (v01 INTEL Cpu2Ist 00000057 MSFT 01000013)
[ 0.000000] ACPI: SSDT 00000000bfeee000 00175 (v01 INTEL Cpu3Ist 00000057 MSFT 01000013)
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] No NUMA configuration found
[ 0.000000] Faking a node at 0000000000000000-00000000bff00000
[ 0.000000] Initmem setup node 0 0000000000000000-00000000bff00000
[ 0.000000] NODE_DATA [0000000001d18100 - 0000000001d1d0ff]
[ 0.000000] [ffffea0000000000-ffffea00029fffff] PMD -> [ffff880002600000-ffff880004ffffff] on node 0
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0x00000010 -> 0x00001000
[ 0.000000] DMA32 0x00001000 -> 0x00100000
[ 0.000000] Normal empty
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[7] active PFN ranges
[ 0.000000] 0: 0x00000010 -> 0x0000008f
[ 0.000000] 0: 0x00000100 -> 0x000bee8b
[ 0.000000] 0: 0x000bef9f -> 0x000bfd75
[ 0.000000] 0: 0x000bfd7d -> 0x000bfe2d
[ 0.000000] 0: 0x000bfe31 -> 0x000bfeaa
[ 0.000000] 0: 0x000bfee9 -> 0x000bfeee
[ 0.000000] 0: 0x000bfeff -> 0x000bff00
[ 0.000000] On node 0 totalpages: 785679
[ 0.000000] DMA zone: 56 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 3911 pages, LIFO batch:0
[ 0.000000] DMA32 zone: 10693 pages used for memmap
[ 0.000000] DMA32 zone: 771019 pages, LIFO batch:31
[ 0.000000] ACPI: PM-Timer IO Port: 0x408
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x82] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x83] disabled)
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
[ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[ 0.000000] ACPI: IRQ0 used by override.
[ 0.000000] ACPI: IRQ2 used by override.
[ 0.000000] ACPI: IRQ9 used by override.
[ 0.000000] Using ACPI (MADT) for SMP configuration information
[ 0.000000] SMP: Allowing 4 CPUs, 2 hotplug CPUs
[ 0.000000] nr_irqs_gsi: 40
[ 0.000000] early_res array is doubled to 64 at [19000 - 197ff]
[ 0.000000] PM: Registered nosave memory: 000000000008f000 - 00000000000a0000
[ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[ 0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[ 0.000000] PM: Registered nosave memory: 00000000bee8b000 - 00000000bef9f000
[ 0.000000] PM: Registered nosave memory: 00000000bfd75000 - 00000000bfd7d000
[ 0.000000] PM: Registered nosave memory: 00000000bfe2d000 - 00000000bfe31000
[ 0.000000] PM: Registered nosave memory: 00000000bfeaa000 - 00000000bfee9000
[ 0.000000] PM: Registered nosave memory: 00000000bfeee000 - 00000000bfeff000
[ 0.000000] Allocating PCI resources starting at c0000000 (gap: c0000000:3ff80000)
[ 0.000000] Booting paravirtualized kernel on bare hardware
[ 0.000000] setup_percpu: NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:4 nr_node_ids:1
[ 0.000000] PERCPU: Embedded 30 pages/cpu @ffff880001e00000 s91520 r8192 d23168 u524288
[ 0.000000] pcpu-alloc: s91520 r8192 d23168 u524288 alloc=1*2097152
[ 0.000000] pcpu-alloc: [0] 0 1 2 3
[ 0.000000] early_res array is doubled to 128 at [19800 - 1a7ff]
[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 774930
[ 0.000000] Policy zone: DMA32
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.35-24-generic root=/dev/sda1 loop=/ubuntu/disks/root.disk ro quiet splash
[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Checking aperture...
[ 0.000000] No AGP bridge found
[ 0.000000] Calgary: detecting Calgary via BIOS EBDA area
[ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[ 0.000000] Subtract (58 early reservations)
[ 0.000000] #1 [0001000000 - 0001d17114] TEXT DATA BSS
[ 0.000000] #2 [0037571000 - 0037ff0000] RAMDISK
[ 0.000000] #3 [0001d18000 - 0001d180dd] BRK
[ 0.000000] #4 [000009fc00 - 00000fe200] BIOS reserved
[ 0.000000] #5 [00000fe200 - 00000fe210] MP-table mpf
[ 0.000000] #6 [00000fe250 - 0000100000] BIOS reserved
[ 0.000000] #7 [00000fe210 - 00000fe250] MP-table mpc
[ 0.000000] #8 [0000010000 - 0000012000] TRAMPOLINE
[ 0.000000] #9 [0000012000 - 0000016000] ACPI WAKEUP
[ 0.000000] #10 [0000016000 - 0000019000] PGTABLE
[ 0.000000] #11 [0001d18100 - 0001d1d100] NODE_DATA
[ 0.000000] #12 [0001d1d100 - 0001d1e100] BOOTMEM
[ 0.000000] #13 [0001d17140 - 0001d17380] BOOTMEM
[ 0.000000] #14 [000251f000 - 0002520000] BOOTMEM
[ 0.000000] #15 [0002520000 - 0002521000] BOOTMEM
[ 0.000000] #16 [0002600000 - 0005000000] MEMMAP 0
[ 0.000000] #17 [0001d17380 - 0001d17500] BOOTMEM
[ 0.000000] #18 [0001d1e100 - 0001d36100] BOOTMEM
[ 0.000000] #19 [0001d37000 - 0001d38000] BOOTMEM
[ 0.000000] #20 [0001d17500 - 0001d17543] BOOTMEM
[ 0.000000] #21 [0001d17580 - 0001d17938] BOOTMEM
[ 0.000000] #22 [0001d17940 - 0001d179a8] BOOTMEM
[ 0.000000] #23 [0001d179c0 - 0001d17a28] BOOTMEM
[ 0.000000] #24 [0001d17a40 - 0001d17aa8] BOOTMEM
[ 0.000000] #25 [0001d17ac0 - 0001d17b28] BOOTMEM
[ 0.000000] #26 [0001d17b40 - 0001d17ba8] BOOTMEM
[ 0.000000] #27 [0001d17bc0 - 0001d17c28] BOOTMEM
[ 0.000000] #28 [0001d17c40 - 0001d17ca8] BOOTMEM
[ 0.000000] #29 [0001d17cc0 - 0001d17d28] BOOTMEM
[ 0.000000] #30 [0001d17d40 - 0001d17da8] BOOTMEM
[ 0.000000] #31 [0001d17dc0 - 0001d17e28] BOOTMEM
[ 0.000000] #32 [0001d17e40 - 0001d17ea8] BOOTMEM
[ 0.000000] #33 [0001d17ec0 - 0001d17f28] BOOTMEM
[ 0.000000] #34 [0001d17f40 - 0001d17fa8] BOOTMEM
[ 0.000000] #35 [0001d36100 - 0001d36168] BOOTMEM
[ 0.000000] #36 [0001d36180 - 0001d361e8] BOOTMEM
[ 0.000000] #37 [0001d36200 - 0001d36268] BOOTMEM
[ 0.000000] #38 [0001d17fc0 - 0001d17fe0] BOOTMEM
[ 0.000000] #39 [0001d36280 - 0001d362a0] BOOTMEM
[ 0.000000] #40 [0001d362c0 - 0001d362e0] BOOTMEM
[ 0.000000] #41 [0001d36300 - 0001d36320] BOOTMEM
[ 0.000000] #42 [0001d36340 - 0001d36360] BOOTMEM
[ 0.000000] #43 [0001d36380 - 0001d363a0] BOOTMEM
[ 0.000000] #44 [0001d363c0 - 0001d36427] BOOTMEM
[ 0.000000] #45 [0001d36440 - 0001d364a7] BOOTMEM
[ 0.000000] #46 [0001e00000 - 0001e1e000] BOOTMEM
[ 0.000000] #47 [0001e80000 - 0001e9e000] BOOTMEM
[ 0.000000] #48 [0001f00000 - 0001f1e000] BOOTMEM
[ 0.000000] #49 [0001f80000 - 0001f9e000] BOOTMEM
[ 0.000000] #50 [0001d364c0 - 0001d364c8] BOOTMEM
[ 0.000000] #51 [0001d36500 - 0001d36508] BOOTMEM
[ 0.000000] #52 [0001d36540 - 0001d36550] BOOTMEM
[ 0.000000] #53 [0001d36580 - 0001d365a0] BOOTMEM
[ 0.000000] #54 [0001d365c0 - 0001d366f0] BOOTMEM
[ 0.000000] #55 [0001d36700 - 0001d36750] BOOTMEM
[ 0.000000] #56 [0001d36780 - 0001d367d0] BOOTMEM
[ 0.000000] #57 [0001d38000 - 0001d40000] BOOTMEM
[ 0.000000] Memory: 3074868k/3144704k available (5711k kernel code, 1988k absent, 67848k reserved, 5379k data, 908k init)
[ 0.000000] SLUB: Genslabs=14, HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[ 0.000000] RCU-based detection of stalled CPUs is disabled.
[ 0.000000] Verbose stalled-CPUs detection is disabled.
[ 0.000000] NR_IRQS:4352 nr_irqs:712
[ 0.000000] Console: colour VGA+ 80x25
[ 0.000000] console [tty0] enabled
[ 0.000000] allocated 31457280 bytes of page_cgroup
[ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[ 0.000000] Fast TSC calibration failed
[ 0.000000] TSC: PIT calibration matches PMTIMER. 1 loops
[ 0.000000] Detected 2131.198 MHz processor.
[ 0.030012] Calibrating delay loop (skipped), value calculated using timer frequency.. 4262.39 BogoMIPS (lpj=21311980)
[ 0.030017] pid_max: default: 32768 minimum: 301
[ 0.030048] Security Framework initialized
[ 0.030070] AppArmor: AppArmor initialized
[ 0.030072] Yama: becoming mindful.
[ 0.030602] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.034063] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.035739] Mount-cache hash table entries: 256
[ 0.035934] Initializing cgroup subsys ns
[ 0.035940] Initializing cgroup subsys cpuacct
[ 0.035944] Initializing cgroup subsys memory
[ 0.035955] Initializing cgroup subsys devices
[ 0.035958] Initializing cgroup subsys freezer
[ 0.035960] Initializing cgroup subsys net_cls
[ 0.035995] CPU: Physical Processor ID: 0
[ 0.035997] CPU: Processor Core ID: 0
[ 0.035999] mce: CPU supports 6 MCE banks
[ 0.036009] CPU0: Thermal monitoring enabled (TM2)
[ 0.036014] using mwait in idle threads.
[ 0.036017] Performance Events: PEBS fmt0-, Core2 events, Intel PMU driver.
[ 0.036023] PEBS disabled due to CPU errata.
[ 0.036028] ... version: 2
[ 0.036029] ... bit width: 40
[ 0.036031] ... generic registers: 2
[ 0.036033] ... value mask: 000000ffffffffff
[ 0.036035] ... max period: 000000007fffffff
[ 0.036037] ... fixed-purpose events: 3
[ 0.036038] ... event mask: 0000000700000003
[ 0.040782] ACPI: Core revision 20100428
[ 0.047808] ftrace: converting mcount calls to 0f 1f 44 00 00
[ 0.047814] ftrace: allocating 22678 entries in 89 pages
[ 0.050063] Setting APIC routing to flat
[ 0.050374] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 0.158401] CPU0: Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz stepping 02
[ 0.160000] Booting Node 0, Processors #1
[ 0.320018] Brought up 2 CPUs
[ 0.320022] Total of 2 processors activated (8524.94 BogoMIPS).
[ 0.320520] devtmpfs: initialized
[ 0.320716] regulator: core version 0.5
[ 0.320741] Time: 14:06:41 Date: 12/30/10
[ 0.320783] NET: Registered protocol family 16
[ 0.320807] Trying to unpack rootfs image as initramfs...
[ 0.320922] ACPI: bus type pci registered
[ 0.321002] PCI: MMCONFIG for domain 0000 [bus 00-7f] at [mem 0xf0000000-0xf7ffffff] (base 0xf0000000)
[ 0.321005] PCI: not using MMCONFIG
[ 0.321006] PCI: Using configuration type 1 for base access
[ 0.330166] bio: create slab <bio-0> at 0
[ 0.331136] ACPI: EC: Look up EC in DSDT
[ 0.333877] ACPI: Interpreter enabled
[ 0.333880] ACPI: (supports S0 S3 S4 S5)
[ 0.333898] ACPI: Using IOAPIC for interrupt routing
[ 0.333939] PCI: MMCONFIG for domain 0000 [bus 00-7f] at [mem 0xf0000000-0xf7ffffff] (base 0xf0000000)
[ 0.334091] PCI: MMCONFIG at [mem 0xf0000000-0xf7ffffff] reserved in ACPI motherboard resources
[ 0.367964] ACPI: No dock devices found.
[ 0.367969] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
[ 0.368957] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[ 0.370874] pci_root PNP0A03:00: host bridge window [io 0x0000-0x0cf7] (ignored)
[ 0.370877] pci_root PNP0A03:00: host bridge window [io 0x0d00-0xffff] (ignored)
[ 0.370880] pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] (ignored)
[ 0.370883] pci_root PNP0A03:00: host bridge window [mem 0x000e0000-0x000effff] (ignored)
[ 0.370885] pci_root PNP0A03:00: host bridge window [mem 0xf8000000-0xfeafffff] (ignored)
[ 0.370888] pci_root PNP0A03:00: host bridge window [mem 0xc0000000-0xefffffff] (ignored)
[ 0.370968] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[ 0.370972] pci 0000:00:01.0: PME# disabled
[ 0.371026] pci 0000:00:1b.0: reg 10: [mem 0xd0200000-0xd0203fff 64bit]
[ 0.371067] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 0.371070] pci 0000:00:1b.0: PME# disabled
[ 0.371140] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 0.371144] pci 0000:00:1c.0: PME# disabled
[ 0.371213] pci 0000:00:1c.2: PME# supported from D0 D3hot D3cold
[ 0.371216] pci 0000:00:1c.2: PME# disabled
[ 0.371281] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[ 0.371285] pci 0000:00:1c.3: PME# disabled
[ 0.371335] pci 0000:00:1d.0: reg 20: [io 0x3080-0x309f]
[ 0.371382] pci 0000:00:1d.1: reg 20: [io 0x3060-0x307f]
[ 0.371429] pci 0000:00:1d.2: reg 20: [io 0x3040-0x305f]
[ 0.371474] pci 0000:00:1d.3: reg 20: [io 0x3020-0x303f]
[ 0.371519] pci 0000:00:1d.7: reg 10: [mem 0xd0204400-0xd02047ff]
[ 0.371569] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[ 0.371574] pci 0000:00:1d.7: PME# disabled
[ 0.371695] pci 0000:00:1f.0: Force enabled HPET at 0xfed00000
[ 0.371705] pci 0000:00:1f.0: quirk: [io 0x0400-0x047f] claimed by ICH6 ACPI/GPIO/TCO
[ 0.371709] pci 0000:00:1f.0: quirk: [io 0x0500-0x053f] claimed by ICH6 GPIO
[ 0.371713] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0680 (mask 007f)
[ 0.371755] pci 0000:00:1f.1: reg 10: [io 0x0000-0x0007]
[ 0.371761] pci 0000:00:1f.1: reg 14: [io 0x0000-0x0003]
[ 0.371767] pci 0000:00:1f.1: reg 18: [io 0x0000-0x0007]
[ 0.371773] pci 0000:00:1f.1: reg 1c: [io 0x0000-0x0003]
[ 0.371779] pci 0000:00:1f.1: reg 20: [io 0x30b0-0x30bf]
[ 0.371819] pci 0000:00:1f.2: reg 10: [io 0x30c8-0x30cf]
[ 0.371826] pci 0000:00:1f.2: reg 14: [io 0x30e4-0x30e7]
[ 0.371832] pci 0000:00:1f.2: reg 18: [io 0x30c0-0x30c7]
[ 0.371838] pci 0000:00:1f.2: reg 1c: [io 0x30e0-0x30e3]
[ 0.371844] pci 0000:00:1f.2: reg 20: [io 0x30a0-0x30af]
[ 0.371849] pci 0000:00:1f.2: reg 24: [mem 0xd0204000-0xd02043ff]
[ 0.371869] pci 0000:00:1f.2: PME# supported from D3hot
[ 0.371872] pci 0000:00:1f.2: PME# disabled
[ 0.371915] pci 0000:00:1f.3: reg 20: [io 0x3000-0x301f]
[ 0.371984] pci 0000:01:00.0: reg 10: [mem 0xc0000000-0xcfffffff 64bit pref]
[ 0.371993] pci 0000:01:00.0: reg 18: [mem 0xd0100000-0xd010ffff 64bit]
[ 0.371999] pci 0000:01:00.0: reg 20: [io 0x2000-0x20ff]
[ 0.372007] pci 0000:01:00.0: reg 30: [mem 0xfffe0000-0xffffffff pref]
[ 0.372025] pci 0000:01:00.0: supports D1 D2
[ 0.372051] pci 0000:01:00.1: reg 10: [mem 0xd0110000-0xd011ffff 64bit]
[ 0.372083] pci 0000:01:00.1: supports D1 D2
[ 0.372096] pci 0000:01:00.0: disabling ASPM on pre-1.1 PCIe device. You can enable it with 'pcie_aspm=force'
[ 0.372106] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[ 0.372110] pci 0000:00:01.0: bridge window [io 0x2000-0x2fff]
[ 0.372113] pci 0000:00:01.0: bridge window [mem 0xd0100000-0xd01fffff]
[ 0.372118] pci 0000:00:01.0: bridge window [mem 0xc0000000-0xcfffffff 64bit pref]
[ 0.372157] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[ 0.372161] pci 0000:00:1c.0: bridge window [io 0xf000-0x0000] (disabled)
[ 0.372166] pci 0000:00:1c.0: bridge window [mem 0xd0300000-0xd03fffff]
[ 0.372172] pci 0000:00:1c.0: bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[ 0.372215] pci 0000:00:1c.2: PCI bridge to [bus 03-03]
[ 0.372219] pci 0000:00:1c.2: bridge window [io 0xf000-0x0000] (disabled)
[ 0.372223] pci 0000:00:1c.2: bridge window [mem 0xd0400000-0xd04fffff]
[ 0.372229] pci 0000:00:1c.2: bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[ 0.372268] pci 0000:00:1c.3: PCI bridge to [bus 04-04]
[ 0.372272] pci 0000:00:1c.3: bridge window [io 0xf000-0x0000] (disabled)
[ 0.372276] pci 0000:00:1c.3: bridge window [mem 0xd0500000-0xd05fffff]
[ 0.372282] pci 0000:00:1c.3: bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[ 0.372329] pci 0000:05:01.0: reg 10: [io 0x1000-0x10ff]
[ 0.372336] pci 0000:05:01.0: reg 14: [mem 0xd0000000-0xd00000ff]
[ 0.372378] pci 0000:05:01.0: supports D1 D2
[ 0.372381] pci 0000:05:01.0: PME# supported from D1 D2 D3hot D3cold
[ 0.372385] pci 0000:05:01.0: PME# disabled
[ 0.372432] pci 0000:00:1e.0: PCI bridge to [bus 05-05] (subtractive decode)
[ 0.372436] pci 0000:00:1e.0: bridge window [io 0x1000-0x1fff]
[ 0.372440] pci 0000:00:1e.0: bridge window [mem 0xd0000000-0xd00fffff]
[ 0.372446] pci 0000:00:1e.0: bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[ 0.372448] pci 0000:00:1e.0: bridge window [io 0x0000-0xffff] (subtractive decode)
[ 0.372451] pci 0000:00:1e.0: bridge window [mem 0x00000000-0xffffffffffffffff] (subtractive decode)
[ 0.372473] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[ 0.372653] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P32_._PRT]
[ 0.372844] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT]
[ 0.372908] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX2._PRT]
[ 0.372968] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX3._PRT]
[ 0.377067] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 9 10 *11 12)
[ 0.377171] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[ 0.377278] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 9 10 *11 12)
[ 0.377379] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 9 10 *11 12)
[ 0.377478] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[ 0.377578] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 9 10 11 12) *0, disabled.
[ 0.377679] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 *9 10 11 12)
[ 0.377777] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 9 *10 11 12)
[ 0.377824] HEST: Table is not found!
[ 0.377923] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=io+mem,locks=none
[ 0.377926] vgaarb: loaded
[ 0.378089] SCSI subsystem initialized
[ 0.378194] libata version 3.00 loaded.
[ 0.378245] usbcore: registered new interface driver usbfs
[ 0.378258] usbcore: registered new interface driver hub
[ 0.378319] usbcore: registered new device driver usb
[ 0.378425] ACPI: WMI: Mapper loaded
[ 0.378427] PCI: Using ACPI for IRQ routing
[ 0.378430] PCI: pci_cache_line_size set to 64 bytes
[ 0.378515] reserve RAM buffer: 000000000008f000 - 000000000008ffff
[ 0.378518] reserve RAM buffer: 00000000bee8b000 - 00000000bfffffff
[ 0.378521] reserve RAM buffer: 00000000bfd75000 - 00000000bfffffff
[ 0.378525] reserve RAM buffer: 00000000bfe2d000 - 00000000bfffffff
[ 0.378528] reserve RAM buffer: 00000000bfeaa000 - 00000000bfffffff
[ 0.378530] reserve RAM buffer: 00000000bfeee000 - 00000000bfffffff
[ 0.378533] reserve RAM buffer: 00000000bff00000 - 00000000bfffffff
[ 0.378640] NetLabel: Initializing
[ 0.378642] NetLabel: domain hash size = 128
[ 0.378643] NetLabel: protocols = UNLABELED CIPSOv4
[ 0.378659] NetLabel: unlabeled traffic allowed by default
[ 0.378803] hpet clockevent registered
[ 0.378806] HPET: 3 timers in total, 0 timers will be used for per-cpu timer
[ 0.378810] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
[ 0.378815] hpet0: 3 comparators, 64-bit 14.318180 MHz counter
[ 0.400042] Switching to clocksource tsc
[ 0.413909] AppArmor: AppArmor Filesystem Enabled
[ 0.413930] pnp: PnP ACPI init
[ 0.413957] ACPI: bus type pnp registered
[ 0.416773] pnp: PnP ACPI: found 12 devices
[ 0.416775] ACPI: ACPI bus type pnp unregistered
[ 0.416789] system 00:01: [mem 0xf0000000-0xf7ffffff] has been reserved
[ 0.416792] system 00:01: [mem 0xfed00000-0xfed00fff] has been reserved
[ 0.416795] system 00:01: [mem 0xfed13000-0xfed13fff] has been reserved
[ 0.416798] system 00:01: [mem 0xfed14000-0xfed17fff] has been reserved
[ 0.416801] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved
[ 0.416803] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved
[ 0.416806] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 0.416809] system 00:01: [mem 0xfed20000-0xfed9ffff] has been reserved
[ 0.416812] system 00:01: [mem 0x000c0000-0x000dffff] has been reserved
[ 0.416818] system 00:01: [mem 0x000e0000-0x000fffff] could not be reserved
[ 0.416826] system 00:06: [io 0x0500-0x053f] has been reserved
[ 0.416828] system 00:06: [io 0x0400-0x047f] has been reserved
[ 0.416831] system 00:06: [io 0x0680-0x06ff] has been reserved
[ 0.422902] pci 0000:01:00.0: no compatible bridge window for [mem 0xfffe0000-0xffffffff pref]
[ 0.422953] pci 0000:00:1c.0: BAR 15: assigned [mem 0xd0600000-0xd07fffff 64bit pref]
[ 0.422957] pci 0000:00:1c.2: BAR 15: assigned [mem 0xd0800000-0xd09fffff 64bit pref]
[ 0.422960] pci 0000:00:1c.3: BAR 15: assigned [mem 0xd0a00000-0xd0bfffff 64bit pref]
[ 0.422964] pci 0000:00:1c.0: BAR 13: assigned [io 0x4000-0x4fff]
[ 0.422966] pci 0000:00:1c.2: BAR 13: assigned [io 0x5000-0x5fff]
[ 0.422969] pci 0000:00:1c.3: BAR 13: assigned [io 0x6000-0x6fff]
[ 0.422973] pci 0000:01:00.0: BAR 6: assigned [mem 0xd0120000-0xd013ffff pref]
[ 0.422977] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[ 0.422980] pci 0000:00:01.0: bridge window [io 0x2000-0x2fff]
[ 0.422984] pci 0000:00:01.0: bridge window [mem 0xd0100000-0xd01fffff]
[ 0.422987] pci 0000:00:01.0: bridge window [mem 0xc0000000-0xcfffffff 64bit pref]
[ 0.422992] pci 0000:00:1c.0: PCI bridge to [bus 02-02]
[ 0.422995] pci 0000:00:1c.0: bridge window [io 0x4000-0x4fff]
[ 0.423000] pci 0000:00:1c.0: bridge window [mem 0xd0300000-0xd03fffff]
[ 0.423004] pci 0000:00:1c.0: bridge window [mem 0xd0600000-0xd07fffff 64bit pref]
[ 0.423010] pci 0000:00:1c.2: PCI bridge to [bus 03-03]
[ 0.423013] pci 0000:00:1c.2: bridge window [io 0x5000-0x5fff]
[ 0.423018] pci 0000:00:1c.2: bridge window [mem 0xd0400000-0xd04fffff]
[ 0.423022] pci 0000:00:1c.2: bridge window [mem 0xd0800000-0xd09fffff 64bit pref]
[ 0.423028] pci 0000:00:1c.3: PCI bridge to [bus 04-04]
[ 0.423031] pci 0000:00:1c.3: bridge window [io 0x6000-0x6fff]
[ 0.423037] pci 0000:00:1c.3: bridge window [mem 0xd0500000-0xd05fffff]
[ 0.423042] pci 0000:00:1c.3: bridge window [mem 0xd0a00000-0xd0bfffff 64bit pref]
[ 0.423049] pci 0000:00:1e.0: PCI bridge to [bus 05-05]
[ 0.423052] pci 0000:00:1e.0: bridge window [io 0x1000-0x1fff]
[ 0.423058] pci 0000:00:1e.0: bridge window [mem 0xd0000000-0xd00fffff]
[ 0.423062] pci 0000:00:1e.0: bridge window [mem pref disabled]
[ 0.423078] alloc irq_desc for 16 on node -1
[ 0.423080] alloc kstat_irqs on node -1
[ 0.423088] pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 0.423092] pci 0000:00:01.0: setting latency timer to 64
[ 0.423101] alloc irq_desc for 17 on node -1
[ 0.423103] alloc kstat_irqs on node -1
[ 0.423106] pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[ 0.423110] pci 0000:00:1c.0: setting latency timer to 64
[ 0.423118] alloc irq_desc for 18 on node -1
[ 0.423120] alloc kstat_irqs on node -1
[ 0.423123] pci 0000:00:1c.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[ 0.423127] pci 0000:00:1c.2: setting latency timer to 64
[ 0.423135] alloc irq_desc for 19 on node -1
[ 0.423137] alloc kstat_irqs on node -1
[ 0.423140] pci 0000:00:1c.3: PCI INT D -> GSI 19 (level, low) -> IRQ 19
[ 0.423144] pci 0000:00:1c.3: setting latency timer to 64
[ 0.423150] pci 0000:00:1e.0: setting latency timer to 64
[ 0.423155] pci_bus 0000:00: resource 0 [io 0x0000-0xffff]
[ 0.423157] pci_bus 0000:00: resource 1 [mem 0x00000000-0xffffffffffffffff]
[ 0.423160] pci_bus 0000:01: resource 0 [io 0x2000-0x2fff]
[ 0.423163] pci_bus 0000:01: resource 1 [mem 0xd0100000-0xd01fffff]
[ 0.423165] pci_bus 0000:01: resource 2 [mem 0xc0000000-0xcfffffff 64bit pref]
[ 0.423168] pci_bus 0000:02: resource 0 [io 0x4000-0x4fff]
[ 0.423170] pci_bus 0000:02: resource 1 [mem 0xd0300000-0xd03fffff]
[ 0.423172] pci_bus 0000:02: resource 2 [mem 0xd0600000-0xd07fffff 64bit pref]
[ 0.423175] pci_bus 0000:03: resource 0 [io 0x5000-0x5fff]
[ 0.423177] pci_bus 0000:03: resource 1 [mem 0xd0400000-0xd04fffff]
[ 0.423179] pci_bus 0000:03: resource 2 [mem 0xd0800000-0xd09fffff 64bit pref]
[ 0.423182] pci_bus 0000:04: resource 0 [io 0x6000-0x6fff]
[ 0.423184] pci_bus 0000:04: resource 1 [mem 0xd0500000-0xd05fffff]
[ 0.423186] pci_bus 0000:04: resource 2 [mem 0xd0a00000-0xd0bfffff 64bit pref]
[ 0.423189] pci_bus 0000:05: resource 0 [io 0x1000-0x1fff]
[ 0.423191] pci_bus 0000:05: resource 1 [mem 0xd0000000-0xd00fffff]
[ 0.423194] pci_bus 0000:05: resource 4 [io 0x0000-0xffff]
[ 0.423196] pci_bus 0000:05: resource 5 [mem 0x00000000-0xffffffffffffffff]
[ 0.423241] NET: Registered protocol family 2
[ 0.423420] IP route cache hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.424956] TCP established hash table entries: 524288 (order: 11, 8388608 bytes)
[ 0.432268] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[ 0.433180] TCP: Hash tables configured (established 524288 bind 65536)
[ 0.433183] TCP reno registered
[ 0.433197] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[ 0.433277] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[ 0.433474] NET: Registered protocol family 1
[ 0.433719] pci 0000:01:00.0: Boot video device
[ 0.433729] PCI: CLS 64 bytes, default 64
[ 0.434004] Scanning for low memory corruption every 60 seconds
[ 0.434224] audit: initializing netlink socket (disabled)
[ 0.434236] type=2000 audit(1293718001.420:1): initialized
[ 0.448762] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 0.450257] VFS: Disk quotas dquot_6.5.2
[ 0.450321] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 0.450916] fuse init (API version 7.14)
[ 0.451007] msgmni has been set to 6005
[ 0.451300] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 0.451303] io scheduler noop registered
[ 0.451305] io scheduler deadline registered
[ 0.451341] io scheduler cfq registered (default)
[ 0.451457] pcieport 0000:00:01.0: setting latency timer to 64
[ 0.451482] alloc irq_desc for 40 on node -1
[ 0.451485] alloc kstat_irqs on node -1
[ 0.451494] pcieport 0000:00:01.0: irq 40 for MSI/MSI-X
[ 0.451550] pcieport 0000:00:1c.0: setting latency timer to 64
[ 0.451585] alloc irq_desc for 41 on node -1
[ 0.451587] alloc kstat_irqs on node -1
[ 0.451593] pcieport 0000:00:1c.0: irq 41 for MSI/MSI-X
[ 0.451670] pcieport 0000:00:1c.2: setting latency timer to 64
[ 0.451699] alloc irq_desc for 42 on node -1
[ 0.451701] alloc kstat_irqs on node -1
[ 0.451708] pcieport 0000:00:1c.2: irq 42 for MSI/MSI-X
[ 0.451788] pcieport 0000:00:1c.3: setting latency timer to 64
[ 0.451817] alloc irq_desc for 43 on node -1
[ 0.451819] alloc kstat_irqs on node -1
[ 0.451826] pcieport 0000:00:1c.3: irq 43 for MSI/MSI-X
[ 0.451929] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 0.452007] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[ 0.452093] intel_idle: MWAIT substates: 0x20
[ 0.452095] intel_idle: does not run on family 6 model 15
[ 0.452192] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input0
[ 0.452204] ACPI: Sleep Button [SLPB]
[ 0.452257] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
[ 0.452260] ACPI: Power Button [PWRF]
[ 0.452416] ACPI: acpi_idle registered with cpuidle
[ 0.454028] ERST: Table is not found!
[ 0.454169] Linux agpgart interface v0.103
[ 0.454190] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.454288] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.454655] 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[ 0.455765] brd: module loaded
[ 0.456276] loop: module loaded
[ 0.456474] ata_piix 0000:00:1f.1: version 2.13
[ 0.456488] ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
[ 0.456528] ata_piix 0000:00:1f.1: setting latency timer to 64
[ 0.456635] scsi0 : ata_piix
[ 0.456710] scsi1 : ata_piix
[ 0.457158] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x30b0 irq 14
[ 0.457161] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x30b8 irq 15
[ 0.457181] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[ 0.457186] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]
[ 0.457221] ata_piix 0000:00:1f.2: setting latency timer to 64
[ 0.457271] scsi2 : ata_piix
[ 0.457328] scsi3 : ata_piix
[ 0.457462] ata3: SATA max UDMA/133 cmd 0x30c8 ctl 0x30e4 bmdma 0x30a0 irq 19
[ 0.457465] ata4: SATA max UDMA/133 cmd 0x30c0 ctl 0x30e0 bmdma 0x30a8 irq 19
[ 0.457763] Fixed MDIO Bus: probed
[ 0.457793] PPP generic driver version 2.4.2
[ 0.457833] tun: Universal TUN/TAP device driver, 1.6
[ 0.457835] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[ 0.457929] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.457948] alloc irq_desc for 23 on node -1
[ 0.457950] alloc kstat_irqs on node -1
[ 0.457957] ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[ 0.457977] ehci_hcd 0000:00:1d.7: setting latency timer to 64
[ 0.457981] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[ 0.458017] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
[ 0.458041] ehci_hcd 0000:00:1d.7: using broken periodic workaround
[ 0.458051] ehci_hcd 0000:00:1d.7: debug port 1
[ 0.461938] ehci_hcd 0000:00:1d.7: cache line size of 64 is not supported
[ 0.461957] ehci_hcd 0000:00:1d.7: irq 23, io mem 0xd0204400
[ 0.466073] ata2: port disabled. ignoring.
[ 0.479833] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[ 0.480009] hub 1-0:1.0: USB hub found
[ 0.480015] hub 1-0:1.0: 8 ports detected
[ 0.480106] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.480125] uhci_hcd: USB Universal Host Controller Interface driver
[ 0.480214] uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[ 0.480224] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[ 0.480228] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[ 0.480283] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[ 0.480310] uhci_hcd 0000:00:1d.0: irq 23, io base 0x00003080
[ 0.480426] hub 2-0:1.0: USB hub found
[ 0.480430] hub 2-0:1.0: 2 ports detected
[ 0.480489] uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
[ 0.480495] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[ 0.480498] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[ 0.480530] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
[ 0.480552] uhci_hcd 0000:00:1d.1: irq 19, io base 0x00003060
[ 0.480673] hub 3-0:1.0: USB hub found
[ 0.480677] hub 3-0:1.0: 2 ports detected
[ 0.480735] uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
[ 0.480742] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[ 0.480745] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[ 0.480778] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
[ 0.480812] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00003040
[ 0.480924] hub 4-0:1.0: USB hub found
[ 0.480928] hub 4-0:1.0: 2 ports detected
[ 0.480981] uhci_hcd 0000:00:1d.3: PCI INT D -> GSI 16 (level, low) -> IRQ 16
[ 0.480987] uhci_hcd 0000:00:1d.3: setting latency timer to 64
[ 0.480990] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[ 0.481030] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 5
[ 0.481060] uhci_hcd 0000:00:1d.3: irq 16, io base 0x00003020
[ 0.481174] hub 5-0:1.0: USB hub found
[ 0.481178] hub 5-0:1.0: 2 ports detected
[ 0.481293] PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12
[ 0.484343] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 0.484350] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 0.484476] mice: PS/2 mouse device common for all mice
[ 0.484596] rtc_cmos 00:03: RTC can wake from S4
[ 0.484640] rtc_cmos 00:03: rtc core: registered rtc_cmos as rtc0
[ 0.484664] rtc0: alarms up to one month, 114 bytes nvram, hpet irqs
[ 0.484772] device-mapper: uevent: version 1.0.3
[ 0.484871] device-mapper: ioctl: 4.17.0-ioctl (2010-03-05) initialised: dm-devel@redhat.com
[ 0.484936] device-mapper: multipath: version 1.1.1 loaded
[ 0.484938] device-mapper: multipath round-robin: version 1.0.0 loaded
[ 0.485094] cpuidle: using governor ladder
[ 0.485097] cpuidle: using governor menu
[ 0.485378] TCP cubic registered
[ 0.485503] NET: Registered protocol family 10
[ 0.485871] lo: Disabled Privacy Extensions
[ 0.486064] NET: Registered protocol family 17
[ 0.486526] PM: Resume from disk failed.
[ 0.486540] registered taskstats version 1
[ 0.486779] Magic number: 6:840:132
[ 0.486857] acpi device:07: hash matches
[ 0.486896] rtc_cmos 00:03: setting system clock to 2010-12-30 14:06:42 UTC (1293718002)
[ 0.486899] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[ 0.486901] EDD information not available.
[ 0.513615] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2
[ 0.577713] Freeing initrd memory: 10748k freed
[ 0.659975] ata4.01: ATAPI: PIONEER DVD-RW DVR-216, 1.07, max UDMA/66
[ 0.665366] ata3.00: ATA-7: WDC WD3200AAKS-00SBA0, 12.01B01, max UDMA/133
[ 0.665371] ata3.00: 625142448 sectors, multi 16: LBA48 NCQ (depth 0/32)
[ 0.700084] ata4.01: configured for UDMA/66
[ 0.700475] ata3.00: configured for UDMA/133
[ 0.700675] scsi 2:0:0:0: Direct-Access ATA WDC WD3200AAKS-0 12.0 PQ: 0 ANSI: 5
[ 0.700838] sd 2:0:0:0: [sda] 625142448 512-byte logical blocks: (320 GB/298 GiB)
[ 0.700889] sd 2:0:0:0: Attached scsi generic sg0 type 0
[ 0.700897] sd 2:0:0:0: [sda] Write Protect is off
[ 0.700901] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 0.700926] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 0.701187] sda:
[ 0.702307] scsi 3:0:1:0: CD-ROM PIONEER DVD-RW DVR-216 1.07 PQ: 0 ANSI: 5
[ 0.703230] sr0: scsi3-mmc drive: 40x/40x writer dvd-ram cd/rw xa/form2 cdda tray
[ 0.703234] Uniform CD-ROM driver Revision: 3.20
[ 0.703341] sr 3:0:1:0: Attached scsi CD-ROM sr0
[ 0.703400] sr 3:0:1:0: Attached scsi generic sg1 type 5
[ 0.704215] sda1 sda2 < sda5 >
[ 0.715776] sd 2:0:0:0: [sda] Attached SCSI disk
[ 0.715800] Freeing unused kernel memory: 908k freed
[ 0.716170] Write protecting the kernel read-only data: 10240k
[ 0.716349] Freeing unused kernel memory: 412k freed
[ 0.716627] Freeing unused kernel memory: 1644k freed
[ 0.732532] udev[82]: starting version 163
[ 0.800322] usb 1-1: new high speed USB device using ehci_hcd and address 2
[ 0.834984] 8139too: 8139too Fast Ethernet driver 0.9.28
[ 0.835030] alloc irq_desc for 22 on node -1
[ 0.835032] alloc kstat_irqs on node -1
[ 0.835042] 8139too 0000:05:01.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[ 0.835994] 8139too 0000:05:01.0: eth0: RealTek RTL8139 at 0x1000, 00:1e:58:31:b4:7a, IRQ 22
[ 1.142309] usb 1-4: new high speed USB device using ehci_hcd and address 3
[ 1.254382] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
[ 1.294541] hub 1-4:1.0: USB hub found
[ 1.294882] hub 1-4:1.0: 4 ports detected
[ 1.411461] usb 1-6: new high speed USB device using ehci_hcd and address 4
[ 1.644152] usb 1-4.1: new high speed USB device using ehci_hcd and address 5
[ 1.751947] hub 1-4.1:1.0: USB hub found
[ 1.752261] hub 1-4.1:1.0: 4 ports detected
[ 1.830402] usb 1-4.2: new full speed USB device using ehci_hcd and address 6
[ 12.276075] udev[344]: starting version 163
[ 12.358189] lp: driver loaded but no devices found
[ 12.426723] intel_rng: Firmware space is locked read-only. If you can't or
[ 12.426724] intel_rng: don't want to disable this in firmware setup, and if
[ 12.426726] intel_rng: you are certain that your system has a functional
[ 12.426727] intel_rng: RNG, try using the 'no_fwh_detect' option.
[ 12.520210] leds_ss4200: no LED devices found
[ 12.549663] parport_pc 00:07: reported by Plug and Play ACPI
[ 12.549744] parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
[ 12.578369] Disabling lock debugging due to kernel taint
[ 12.593718] Initializing USB Mass Storage driver...
[ 12.604891] type=1400 audit(1293689214.607:2): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient3" pid=603 comm="apparmor_parser"
[ 12.605561] type=1400 audit(1293689214.607:3): apparmor="STATUS" operation="profile_load" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=603 comm="apparmor_parser"
[ 12.605920] type=1400 audit(1293689214.607:4): apparmor="STATUS" operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" pid=603 comm="apparmor_parser"
[ 12.611440] [drm] Initialized drm 1.1.0 20060810
[ 12.624122] ppdev: user-space parallel port driver
[ 12.625886] type=1400 audit(1293689214.627:5): apparmor="STATUS" operation="profile_load" name="/usr/sbin/ntpd" pid=634 comm="apparmor_parser"
[ 12.627148] scsi4 : usb-storage 1-6:1.0
[ 12.631518] lp0: using parport0 (interrupt-driven).
[ 12.639002] ndiswrapper version 1.56 loaded (smp=yes, preempt=no)
[ 12.648127] usbcore: registered new interface driver usb-storage
[ 12.648131] USB Mass Storage support registered.
[ 12.660773] usbcore: registered new interface driver hiddev
[ 12.662909] input: USB AUDIO as /devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4.2/1-4.2:1.2/input/input3
[ 12.663045] generic-usb 0003:1130:1620.0001: input,hidraw0: USB HID v1.10 Device [USB AUDIO ] on usb-0000:00:1d.7-4.2/input2
[ 12.663069] usbcore: registered new interface driver usbhid
[ 12.663071] usbhid: USB HID core driver
[ 12.719395] [drm] radeon defaulting to kernel modesetting.
[ 12.719400] [drm] radeon kernel modesetting enabled.
[ 12.719467] radeon 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 12.719472] radeon 0000:01:00.0: setting latency timer to 64
[ 12.722718] [drm] initializing kernel modesetting (RV530 0x1002:0x71C1).
[ 12.725406] [drm] register mmio base: 0xD0100000
[ 12.725409] [drm] register mmio size: 65536
[ 12.726413] ATOM BIOS: RX165PG3
[ 12.726439] [drm] Generation 2 PCI interface, using max accessible memory
[ 12.726444] radeon 0000:01:00.0: VRAM: 256M 0x00000000 - 0x0FFFFFFF (256M used)
[ 12.726448] radeon 0000:01:00.0: GTT: 512M 0x10000000 - 0x2FFFFFFF
[ 12.726537] alloc irq_desc for 44 on node -1
[ 12.726540] alloc kstat_irqs on node -1
[ 12.726554] radeon 0000:01:00.0: irq 44 for MSI/MSI-X
[ 12.726559] radeon 0000:01:00.0: radeon: using MSI.
[ 12.726584] [drm] radeon: irq initialized.
[ 12.727104] [drm] Detected VRAM RAM=256M, BAR=256M
[ 12.727108] [drm] RAM width 128bits DDR
[ 12.731482] [TTM] Zone kernel: Available graphics memory: 1544290 kiB.
[ 12.731485] [TTM] Initializing pool allocator.
[ 12.731507] [drm] radeon: 256M of VRAM memory ready
[ 12.731509] [drm] radeon: 512M of GTT memory ready.
[ 12.731531] [drm] GART: num cpu pages 131072, num gpu pages 131072
[ 12.733447] [drm] radeon: 1 quad pipes, 2 z pipes initialized.
[ 12.734356] [drm] PCIE GART of 512M enabled (table at 0x00040000).
[ 12.734981] [drm] Loading R500 Microcode
[ 12.748746] [drm] radeon: ring at 0x0000000010000000
[ 12.748778] [drm] ring test succeeded in 7 usecs
[ 12.748902] [drm] radeon: ib pool ready.
[ 12.749123] [drm] ib test succeeded in 0 usecs
[ 12.749133] failed to evaluate ATIF got AE_BAD_PARAMETER
[ 12.749136] radeon 0000:01:00.0: Error during ACPI methods call
[ 12.749197] [drm] Default TV standard: NTSC
[ 12.749199] [drm] Default TV standard: NTSC
[ 12.749284] [drm] Default TV standard: NTSC
[ 12.749360] [drm] Radeon Display Connectors
[ 12.749362] [drm] Connector 0:
[ 12.749363] [drm] DVI-I
[ 12.749365] [drm] HPD1
[ 12.749367] [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[ 12.749369] [drm] Encoders:
[ 12.749371] [drm] CRT1: INTERNAL_KLDSCP_DAC1
[ 12.749372] [drm] DFP1: INTERNAL_KLDSCP_TMDS1
[ 12.749374] [drm] Connector 1:
[ 12.749375] [drm] S-video
[ 12.749377] [drm] Encoders:
[ 12.749378] [drm] TV1: INTERNAL_KLDSCP_DAC2
[ 12.749380] [drm] Connector 2:
[ 12.749381] [drm] DVI-I
[ 12.749383] [drm] HPD2
[ 12.749385] [drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[ 12.749387] [drm] Encoders:
[ 12.749388] [drm] CRT2: INTERNAL_KLDSCP_DAC2
[ 12.749390] [drm] DFP3: INTERNAL_LVTM1
[ 12.781572] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 12.784185] usbcore: registered new interface driver snd-usb-audio
[ 12.956666] [drm] fb mappable at 0xC00C0000
[ 12.956669] [drm] vram apper at 0xC0000000
[ 12.956671] [drm] size 5300224
[ 12.956673] [drm] fb depth is 24
[ 12.956675] [drm] pitch is 5888
[ 12.974933] Console: switching to colour frame buffer device 180x56
[ 12.978329] fb0: radeondrmfb frame buffer device
[ 12.978330] drm: registered panic notifier
[ 12.978334] Slow work thread pool: Starting up
[ 12.978401] Slow work thread pool: Ready
[ 12.978408] [drm] Initialized radeon 2.5.0 20080528 for 0000:01:00.0 on minor 0
[ 12.990396] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[ 12.990444] alloc irq_desc for 45 on node -1
[ 12.990447] alloc kstat_irqs on node -1
[ 12.990459] HDA Intel 0000:00:1b.0: irq 45 for MSI/MSI-X
[ 12.990484] HDA Intel 0000:00:1b.0: setting latency timer to 64
[ 13.110021] usb 1-1: reset high speed USB device using ehci_hcd and address 2
[ 13.262764] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/input/input4
[ 13.363096] ndiswrapper (link_pe_images:565): fixing KI_USER_SHARED_DATA address in the driver
[ 13.364770] ndiswrapper: driver arusb_xp (,02/25/2010,3.0.0.165) loaded
[ 13.581435] input: HDA Intel Mic at Ext Front Jack as /devices/pci0000:00/0000:00:1b.0/sound/card0/input5
[ 13.581541] input: HDA Intel Speaker at Ext Rear Jack as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[ 13.581604] input: HDA Intel Speaker at Ext Rear Jack as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[ 13.581686] input: HDA Intel Speaker at Ext Rear Jack as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[ 13.581750] input: HDA Intel HP Out at Ext Front Jack as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[ 13.608127] Adding 261116k swap on /host/ubuntu/disks/swap.disk. Priority:-1 extents:1 across:261116k
[ 13.642944] EXT4-fs (loop0): re-mounted. Opts: errors=remount-ro
[ 13.651824] scsi 4:0:0:0: Direct-Access StoreJet Transcend PQ: 0 ANSI: 2 CCS
[ 13.653341] sd 4:0:0:0: Attached scsi generic sg2 type 0
[ 13.654060] sd 4:0:0:0: [sdb] 625142448 512-byte logical blocks: (320 GB/298 GiB)
[ 13.654936] sd 4:0:0:0: [sdb] Write Protect is off
[ 13.654940] sd 4:0:0:0: [sdb] Mode Sense: 34 00 00 00
[ 13.654943] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 13.657933] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 13.657946] sdb:
[ 13.767809] eth0: link down
[ 13.768289] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 13.812706] type=1400 audit(1293689215.817:6): apparmor="STATUS" operation="profile_load" name="/usr/share/gdm/guest-session/Xsession" pid=967 comm="apparmor_parser"
[ 13.816020] type=1400 audit(1293689215.817:7): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient3" pid=968 comm="apparmor_parser"
[ 13.816693] type=1400 audit(1293689215.817:8): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=968 comm="apparmor_parser"
[ 13.817058] type=1400 audit(1293689215.817:9): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=968 comm="apparmor_parser"
[ 13.825655] type=1400 audit(1293689215.827:10): apparmor="STATUS" operation="profile_load" name="/usr/lib/cups/backend/cups-pdf" pid=973 comm="apparmor_parser"
[ 13.826183] type=1400 audit(1293689215.827:11): apparmor="STATUS" operation="profile_load" name="/usr/bin/evince" pid=970 comm="apparmor_parser"
[ 14.013462] sdb1
[ 14.015840] sd 4:0:0:0: [sdb] Assuming drive cache: write through
[ 14.015845] sd 4:0:0:0: [sdb] Attached SCSI disk
[ 14.222033] wlan0: ethernet device d8:5d:4c:93:59:8e using NDIS driver: arusb_xp, version: 0x40700, NDIS version: 0x501, vendor: 'Atheros OTUS Wireless Network Adapter', 0CF3:1002.F.conf
[ 14.222100] wlan0: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK
[ 14.222168] usbcore: registered new interface driver ndiswrapper
[ 14.223273] EXT4-fs (loop0): re-mounted. Opts: errors=remount-ro,commit=0
[ 14.251743] ndiswrapper: changing interface name from 'wlan0' to 'wlan1'
[ 14.251787] udev[354]: renamed network interface wlan0 to wlan1
[ 14.255140] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 15.488187] EXT4-fs (loop0): re-mounted. Opts: errors=remount-ro,commit=0
[ 16.721551] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 16.795533] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 16.846543] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 25.832431] ISO 9660 Extensions: Microsoft Joliet Level 3
[ 25.838685] ISOFS: changing to secondary root
[ 25.870759] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 25.957397] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 26.010111] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 30.019233] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 40.372358] wlan1: no IPv6 routers present
[ 79.123241] usb 1-1: USB disconnect, address 2
[ 79.341795] ndiswrapper: device wlan1 removed
[ 112.840018] usb 1-1: new high speed USB device using ehci_hcd and address 7
[ 127.292180] cfg80211: Calling CRDA to update world regulatory domain
[ 127.354021] cfg80211: World regulatory domain updated:
[ 127.354025] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 127.354028] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 127.354031] (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 127.354034] (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 127.354037] (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 127.354039] (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 127.491268] usb 1-1: reset high speed USB device using ehci_hcd and address 7
[ 128.670770] usbcore: registered new interface driver ar9170usb
[ 129.026986] ath: EEPROM regdomain: 0x809c
[ 129.026991] ath: EEPROM indicates we should expect a country code
[ 129.026994] ath: doing EEPROM country->regdmn map search
[ 129.026996] ath: country maps to regdmn code: 0x52
[ 129.026999] ath: Country alpha2 being used: CN
[ 129.027002] ath: Regpair used: 0x52
[ 129.043118] phy0: Selected rate control algorithm 'minstrel'
[ 129.043917] cfg80211: Calling CRDA for country: CN
[ 129.044891] Registered led device: ar9170-phy0::tx
[ 129.044914] Registered led device: ar9170-phy0::assoc
[ 129.044916] usb 1-1: Atheros AR9170 is registered as 'phy0'
[ 129.048882] cfg80211: Regulatory domain changed to country: CN
[ 129.048886] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 129.048889] (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[ 129.048891] (5735000 KHz - 5835000 KHz @ 40000 KHz), (N/A, 3000 mBm)
[ 129.071857] udev[549]: renamed network interface wlan0 to wlan1
[ 130.301540] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 133.407475] wlan1: authenticate with d8:5d:4c:f8:52:bf (try 1)
[ 133.409098] wlan1: authenticated
[ 133.409114] wlan1: associate with d8:5d:4c:f8:52:bf (try 1)
[ 133.412851] wlan1: RX AssocResp from d8:5d:4c:f8:52:bf (capab=0x411 status=0 aid=1)
[ 133.412855] wlan1: associated
[ 133.455383] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 133.979131] Intel AES-NI instructions are not detected.
[ 134.014106] padlock: VIA PadLock not detected.
[ 143.751262] wlan1: no IPv6 routers present
[ 369.073341] wlan1: deauthenticating from d8:5d:4c:f8:52:bf by local choice (reason=3)
[ 369.131838] cfg80211: All devices are disconnected, going to restore regulatory settings
[ 369.131845] cfg80211: Restoring regulatory settings
[ 369.131850] cfg80211: Calling CRDA to update world regulatory domain
[ 369.140954] cfg80211: World regulatory domain updated:
[ 369.140958] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 369.140963] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 369.140967] (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 369.140970] (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 369.140974] (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 369.140978] (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 380.924205] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 383.937577] wlan1: authenticate with d8:5d:4c:f8:52:bf (try 1)
[ 383.939444] wlan1: authenticated
[ 383.939464] wlan1: associate with d8:5d:4c:f8:52:bf (try 1)
[ 383.943445] wlan1: RX AssocResp from d8:5d:4c:f8:52:bf (capab=0x411 status=0 aid=1)
[ 383.943449] wlan1: associated
[ 383.985237] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 394.091260] wlan1: no IPv6 routers present
[ 404.323854] wlan1: deauthenticating from d8:5d:4c:f8:52:bf by local choice (reason=3)
[ 404.381418] cfg80211: All devices are disconnected, going to restore regulatory settings
[ 404.381425] cfg80211: Restoring regulatory settings
[ 404.381430] cfg80211: Calling CRDA to update world regulatory domain
[ 404.387391] cfg80211: World regulatory domain updated:
[ 404.387396] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 404.387401] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 404.387404] (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 404.387408] (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 404.387412] (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 404.387416] (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 425.184099] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 428.218096] wlan1: authenticate with d8:5d:4c:f8:52:bf (try 1)
[ 428.219713] wlan1: authenticated
[ 428.219733] wlan1: associate with d8:5d:4c:f8:52:bf (try 1)
[ 428.223716] wlan1: RX AssocResp from d8:5d:4c:f8:52:bf (capab=0x411 status=0 aid=1)
[ 428.223720] wlan1: associated
[ 428.277628] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 438.421262] wlan1: no IPv6 routers present
[ 579.280317] wlan1: deauthenticating from d8:5d:4c:f8:52:bf by local choice (reason=3)
[ 579.352324] cfg80211: All devices are disconnected, going to restore regulatory settings
[ 579.352330] cfg80211: Restoring regulatory settings
[ 579.352334] cfg80211: Calling CRDA to update world regulatory domain
[ 579.360661] cfg80211: World regulatory domain updated:
[ 579.360665] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 579.360668] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 579.360671] (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 579.360674] (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 579.360677] (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 579.360680] (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 596.042027] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 599.059206] wlan1: authenticate with d8:5d:4c:f8:52:bf (try 1)
[ 599.063569] wlan1: authenticated
[ 599.063591] wlan1: associate with d8:5d:4c:f8:52:bf (try 1)
[ 599.068700] wlan1: RX AssocResp from d8:5d:4c:f8:52:bf (capab=0x411 status=0 aid=1)
[ 599.068704] wlan1: associated
[ 599.115111] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 609.181387] wlan1: no IPv6 routers present
[ 613.113818] wlan1: deauthenticating from d8:5d:4c:f8:52:bf by local choice (reason=3)
[ 613.161856] cfg80211: All devices are disconnected, going to restore regulatory settings
[ 613.161863] cfg80211: Restoring regulatory settings
[ 613.161867] cfg80211: Calling CRDA to update world regulatory domain
[ 613.165194] cfg80211: World regulatory domain updated:
[ 613.165197] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 613.165200] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 613.165203] (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 613.165206] (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 613.165209] (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 613.165212] (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 625.334288] ADDRCONF(NETDEV_UP): wlan1: link is not ready
[ 628.351614] wlan1: authenticate with d8:5d:4c:f8:52:bf (try 1)
[ 628.353458] wlan1: authenticated
[ 628.353485] wlan1: associate with d8:5d:4c:f8:52:bf (try 1)
[ 628.357457] wlan1: RX AssocResp from d8:5d:4c:f8:52:bf (capab=0x411 status=0 aid=1)
[ 628.357461] wlan1: associated
[ 628.405065] ADDRCONF(NETDEV_CHANGE): wlan1: link becomes ready
[ 638.601258] wlan1: no IPv6 routers present
[ 838.813699] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[ 1493.281765] 6:1:1: endpoint lacks sample rate attribute bit, cannot set.
[-- Attachment #3: Screenshot-Connection Information-1.png --]
[-- Type: image/png, Size: 48702 bytes --]
[-- Attachment #4: iwevent.txt --]
[-- Type: text/plain, Size: 840 bytes --]
1293689828.017120: wlan1 (phy #0): scan started
1293689829.455946: wlan1 (phy #0): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472, ""
1293689829.492975: wlan1 (phy #0): scan started
1293689830.925943: wlan1 (phy #0): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472, "CHIN_WIRELESS"
1293689831.008101: wlan1 (phy #0): auth d8:5d:4c:f8:52:bf -> d8:5d:4c:93:59:8e status: 0: Successful
1293689831.012430: wlan1: new station d8:5d:4c:f8:52:bf
1293689831.059803: wlan1 (phy #0): assoc d8:5d:4c:f8:52:bf -> d8:5d:4c:93:59:8e status: 0: Successful
1293689831.059885: wlan1 (phy #0): connected to d8:5d:4c:f8:52:bf
1293689848.003408: wlan1 (phy #0): scan started
1293689850.105933: wlan1 (phy #0): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472, ""
^ permalink raw reply
* [PATCH 2/2] Revert "mac80211: temporarily disable reorder release timer"
From: Christian Lamparter @ 2010-12-30 16:29 UTC (permalink / raw)
To: linux-wireless; +Cc: johannes, linville
In-Reply-To: <3f6f7ecee0ecea67238627fb1a60611087ce0ee3.1293727387.git.chunkeey@googlemail.com>
This reverts enables the reorder release timer once again.
The issues laid out in:
<http://www.spinics.net/lists/linux-wireless/msg57214.html>
Have been addressed by:
mac80211: serialize rx path workers
mac80211: ignore PSM bit of reordered frames
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
net/mac80211/rx.c | 24 ------------------------
1 files changed, 0 insertions(+), 24 deletions(-)
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 62a82ec..56f8adb 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -625,26 +625,6 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
tid_agg_rx->buf_size;
}
- /*
- * Disable the reorder release timer for now.
- *
- * The current implementation lacks a proper locking scheme
- * which would protect vital statistic and debug counters
- * from being updated by two different but concurrent BHs.
- *
- * More information about the topic is available from:
- * - thread: http://marc.info/?t=128635927000001
- *
- * What was wrong:
- * => http://marc.info/?l=linux-wireless&m=128636170811964
- * "Basically the thing is that until your patch, the data
- * in the struct didn't actually need locking because it
- * was accessed by the RX path only which is not concurrent."
- *
- * List of what needs to be fixed:
- * => http://marc.info/?l=linux-wireless&m=128656352920957
- *
-
if (tid_agg_rx->stored_mpdu_num) {
j = index = seq_sub(tid_agg_rx->head_seq_num,
tid_agg_rx->ssn) % tid_agg_rx->buf_size;
@@ -663,10 +643,6 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
} else {
del_timer(&tid_agg_rx->reorder_timer);
}
- */
-
-set_release_timer:
- return;
}
/*
--
1.7.2.3
^ permalink raw reply related
* [PATCH 1/2] mac80211: serialize rx path workers
From: Christian Lamparter @ 2010-12-30 16:25 UTC (permalink / raw)
To: linux-wireless; +Cc: johannes, linville
This patch addresses the issue of serialization between
the main rx path and various reorder release timers.
<http://www.spinics.net/lists/linux-wireless/msg57214.html>
It converts the previously local "frames" queue into
a global rx queue [rx_skb_queue]. This way, everyone
(be it the main rx-path or some reorder release timeout)
can add frames to it.
Only one active rx handler worker [ieee80211_rx_handlers]
is needed. All other threads which have lost the race of
"runnning_rx_handler" can now simply "return", knowing that
the thread who had the "edge" will also take care of their
workload.
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
net/mac80211/ieee80211_i.h | 9 +++++
net/mac80211/main.c | 3 ++
net/mac80211/rx.c | 80 ++++++++++++++++++++-----------------------
3 files changed, 49 insertions(+), 43 deletions(-)
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index a0cf5ab..acc1299 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -774,6 +774,15 @@ struct ieee80211_local {
struct sk_buff_head skb_queue;
struct sk_buff_head skb_queue_unreliable;
+ /*
+ * Internal FIFO queue which is shared between multiple rx path
+ * stages. Its main task is to provide a serialization mechanism,
+ * so all rx handlers can enjoy having exclusive access to their
+ * private data structures.
+ */
+ struct sk_buff_head rx_skb_queue;
+ bool running_rx_handler; /* protected by rx_skb_queue.lock */
+
/* Station data */
/*
* The mutex only protects the list and counter,
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 32e58ee..485d36b 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -569,6 +569,8 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
spin_lock_init(&local->filter_lock);
spin_lock_init(&local->queue_stop_reason_lock);
+ skb_queue_head_init(&local->rx_skb_queue);
+
INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work);
ieee80211_work_init(local);
@@ -917,6 +919,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
wiphy_warn(local->hw.wiphy, "skb_queue not empty\n");
skb_queue_purge(&local->skb_queue);
skb_queue_purge(&local->skb_queue_unreliable);
+ skb_queue_purge(&local->rx_skb_queue);
destroy_workqueue(local->workqueue);
wiphy_unregister(local->hw.wiphy);
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 5e9d3bc..62a82ec 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -533,9 +533,9 @@ static inline u16 seq_sub(u16 sq1, u16 sq2)
static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
struct tid_ampdu_rx *tid_agg_rx,
- int index,
- struct sk_buff_head *frames)
+ int index)
{
+ struct ieee80211_local *local = hw_to_local(hw);
struct sk_buff *skb = tid_agg_rx->reorder_buf[index];
lockdep_assert_held(&tid_agg_rx->reorder_lock);
@@ -546,7 +546,7 @@ static void ieee80211_release_reorder_frame(struct ieee80211_hw *hw,
/* release the frame from the reorder ring buffer */
tid_agg_rx->stored_mpdu_num--;
tid_agg_rx->reorder_buf[index] = NULL;
- __skb_queue_tail(frames, skb);
+ skb_queue_tail(&local->rx_skb_queue, skb);
no_frame:
tid_agg_rx->head_seq_num = seq_inc(tid_agg_rx->head_seq_num);
@@ -554,8 +554,7 @@ no_frame:
static void ieee80211_release_reorder_frames(struct ieee80211_hw *hw,
struct tid_ampdu_rx *tid_agg_rx,
- u16 head_seq_num,
- struct sk_buff_head *frames)
+ u16 head_seq_num)
{
int index;
@@ -564,7 +563,7 @@ static void ieee80211_release_reorder_frames(struct ieee80211_hw *hw,
while (seq_less(tid_agg_rx->head_seq_num, head_seq_num)) {
index = seq_sub(tid_agg_rx->head_seq_num, tid_agg_rx->ssn) %
tid_agg_rx->buf_size;
- ieee80211_release_reorder_frame(hw, tid_agg_rx, index, frames);
+ ieee80211_release_reorder_frame(hw, tid_agg_rx, index);
}
}
@@ -580,8 +579,7 @@ static void ieee80211_release_reorder_frames(struct ieee80211_hw *hw,
#define HT_RX_REORDER_BUF_TIMEOUT (HZ / 10)
static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
- struct tid_ampdu_rx *tid_agg_rx,
- struct sk_buff_head *frames)
+ struct tid_ampdu_rx *tid_agg_rx)
{
int index, j;
@@ -612,8 +610,7 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
wiphy_debug(hw->wiphy,
"release an RX reorder frame due to timeout on earlier frames\n");
#endif
- ieee80211_release_reorder_frame(hw, tid_agg_rx,
- j, frames);
+ ieee80211_release_reorder_frame(hw, tid_agg_rx, j);
/*
* Increment the head seq# also for the skipped slots.
@@ -623,7 +620,7 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
skipped = 0;
}
} else while (tid_agg_rx->reorder_buf[index]) {
- ieee80211_release_reorder_frame(hw, tid_agg_rx, index, frames);
+ ieee80211_release_reorder_frame(hw, tid_agg_rx, index);
index = seq_sub(tid_agg_rx->head_seq_num, tid_agg_rx->ssn) %
tid_agg_rx->buf_size;
}
@@ -679,8 +676,7 @@ set_release_timer:
*/
static bool ieee80211_sta_manage_reorder_buf(struct ieee80211_hw *hw,
struct tid_ampdu_rx *tid_agg_rx,
- struct sk_buff *skb,
- struct sk_buff_head *frames)
+ struct sk_buff *skb)
{
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
u16 sc = le16_to_cpu(hdr->seq_ctrl);
@@ -707,8 +703,7 @@ static bool ieee80211_sta_manage_reorder_buf(struct ieee80211_hw *hw,
if (!seq_less(mpdu_seq_num, head_seq_num + buf_size)) {
head_seq_num = seq_inc(seq_sub(mpdu_seq_num, buf_size));
/* release stored frames up to new head to stack */
- ieee80211_release_reorder_frames(hw, tid_agg_rx, head_seq_num,
- frames);
+ ieee80211_release_reorder_frames(hw, tid_agg_rx, head_seq_num);
}
/* Now the new frame is always in the range of the reordering buffer */
@@ -736,7 +731,7 @@ static bool ieee80211_sta_manage_reorder_buf(struct ieee80211_hw *hw,
tid_agg_rx->reorder_buf[index] = skb;
tid_agg_rx->reorder_time[index] = jiffies;
tid_agg_rx->stored_mpdu_num++;
- ieee80211_sta_reorder_release(hw, tid_agg_rx, frames);
+ ieee80211_sta_reorder_release(hw, tid_agg_rx);
out:
spin_unlock(&tid_agg_rx->reorder_lock);
@@ -747,8 +742,7 @@ static bool ieee80211_sta_manage_reorder_buf(struct ieee80211_hw *hw,
* Reorder MPDUs from A-MPDUs, keeping them on a buffer. Returns
* true if the MPDU was buffered, false if it should be processed.
*/
-static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx,
- struct sk_buff_head *frames)
+static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx)
{
struct sk_buff *skb = rx->skb;
struct ieee80211_local *local = rx->local;
@@ -803,11 +797,11 @@ static void ieee80211_rx_reorder_ampdu(struct ieee80211_rx_data *rx,
* sure that we cannot get to it any more before doing
* anything with it.
*/
- if (ieee80211_sta_manage_reorder_buf(hw, tid_agg_rx, skb, frames))
+ if (ieee80211_sta_manage_reorder_buf(hw, tid_agg_rx, skb))
return;
dont_reorder:
- __skb_queue_tail(frames, skb);
+ skb_queue_tail(&local->rx_skb_queue, skb);
}
static ieee80211_rx_result debug_noinline
@@ -1930,7 +1924,7 @@ ieee80211_rx_h_data(struct ieee80211_rx_data *rx)
}
static ieee80211_rx_result debug_noinline
-ieee80211_rx_h_ctrl(struct ieee80211_rx_data *rx, struct sk_buff_head *frames)
+ieee80211_rx_h_ctrl(struct ieee80211_rx_data *rx)
{
struct ieee80211_local *local = rx->local;
struct ieee80211_hw *hw = &local->hw;
@@ -1970,8 +1964,7 @@ ieee80211_rx_h_ctrl(struct ieee80211_rx_data *rx, struct sk_buff_head *frames)
spin_lock(&tid_agg_rx->reorder_lock);
/* release stored frames up to start of BAR */
- ieee80211_release_reorder_frames(hw, tid_agg_rx, start_seq_num,
- frames);
+ ieee80211_release_reorder_frames(hw, tid_agg_rx, start_seq_num);
spin_unlock(&tid_agg_rx->reorder_lock);
kfree_skb(skb);
@@ -2488,8 +2481,7 @@ static void ieee80211_rx_handlers_result(struct ieee80211_rx_data *rx,
}
}
-static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx,
- struct sk_buff_head *frames)
+static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx)
{
ieee80211_rx_result res = RX_DROP_MONITOR;
struct sk_buff *skb;
@@ -2501,7 +2493,15 @@ static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx,
goto rxh_next; \
} while (0);
- while ((skb = __skb_dequeue(frames))) {
+ spin_lock(&rx->local->rx_skb_queue.lock);
+ if (rx->local->running_rx_handler)
+ goto unlock;
+
+ rx->local->running_rx_handler = true;
+
+ while ((skb = __skb_dequeue(&rx->local->rx_skb_queue))) {
+ spin_unlock(&rx->local->rx_skb_queue.lock);
+
/*
* all the other fields are valid across frames
* that belong to an aMPDU since they are on the
@@ -2524,12 +2524,7 @@ static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx,
CALL_RXH(ieee80211_rx_h_mesh_fwding);
#endif
CALL_RXH(ieee80211_rx_h_data)
-
- /* special treatment -- needs the queue */
- res = ieee80211_rx_h_ctrl(rx, frames);
- if (res != RX_CONTINUE)
- goto rxh_next;
-
+ CALL_RXH(ieee80211_rx_h_ctrl);
CALL_RXH(ieee80211_rx_h_mgmt_check)
CALL_RXH(ieee80211_rx_h_action)
CALL_RXH(ieee80211_rx_h_userspace_mgmt)
@@ -2538,18 +2533,20 @@ static void ieee80211_rx_handlers(struct ieee80211_rx_data *rx,
rxh_next:
ieee80211_rx_handlers_result(rx, res);
-
+ spin_lock(&rx->local->rx_skb_queue.lock);
#undef CALL_RXH
}
+
+ rx->local->running_rx_handler = false;
+
+ unlock:
+ spin_unlock(&rx->local->rx_skb_queue.lock);
}
static void ieee80211_invoke_rx_handlers(struct ieee80211_rx_data *rx)
{
- struct sk_buff_head reorder_release;
ieee80211_rx_result res = RX_DROP_MONITOR;
- __skb_queue_head_init(&reorder_release);
-
#define CALL_RXH(rxh) \
do { \
res = rxh(rx); \
@@ -2560,9 +2557,9 @@ static void ieee80211_invoke_rx_handlers(struct ieee80211_rx_data *rx)
CALL_RXH(ieee80211_rx_h_passive_scan)
CALL_RXH(ieee80211_rx_h_check)
- ieee80211_rx_reorder_ampdu(rx, &reorder_release);
+ ieee80211_rx_reorder_ampdu(rx);
- ieee80211_rx_handlers(rx, &reorder_release);
+ ieee80211_rx_handlers(rx);
return;
rxh_next:
@@ -2577,7 +2574,6 @@ static void ieee80211_invoke_rx_handlers(struct ieee80211_rx_data *rx)
*/
void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid)
{
- struct sk_buff_head frames;
struct ieee80211_rx_data rx = {
.sta = sta,
.sdata = sta->sdata,
@@ -2590,13 +2586,11 @@ void ieee80211_release_reorder_timeout(struct sta_info *sta, int tid)
if (!tid_agg_rx)
return;
- __skb_queue_head_init(&frames);
-
spin_lock(&tid_agg_rx->reorder_lock);
- ieee80211_sta_reorder_release(&sta->local->hw, tid_agg_rx, &frames);
+ ieee80211_sta_reorder_release(&sta->local->hw, tid_agg_rx);
spin_unlock(&tid_agg_rx->reorder_lock);
- ieee80211_rx_handlers(&rx, &frames);
+ ieee80211_rx_handlers(&rx);
}
/* main receive path */
--
1.7.2.3
^ permalink raw reply related
* Re: 2.6.37-rc7: Regression: b43: crashes in hwrng_register()
From: Larry Finger @ 2010-12-30 18:37 UTC (permalink / raw)
To: Mario 'BitKoenig' Holbe, LKML, wireless, b43-dev
In-Reply-To: <20101230143406.GA23219@darkside.kls.lan>
[-- Attachment #1: Type: text/plain, Size: 3281 bytes --]
On 12/30/2010 08:34 AM, Mario 'BitKoenig' Holbe wrote:
> On Wed, Dec 29, 2010 at 08:37:10PM -0600, Larry Finger wrote:
>> No, don't bother. I do have a different request. The byte counts for my 32-bit
>> system do not match yours. Could you please use the following command to find
>> the instructions that are failing?
>>
>> objdump -l -d drivers/char/hw_random/core.o | less
>>
>> Use the search to find the start of hwrng_register, then add 0x4c to the
>> starting address. Once I see hte instruction that is failing, I should be able
>> to find where the failure occurs.
>
> Alright, here we go...
>
> [ 30.012695] BUG: unable to handle kernel paging request at 4b28f458
> [ 30.012708] IP: [<f90703cc>] hwrng_register+0x4c/0x139 [rng_core]
>
> 00000380 <hwrng_register>:
> hwrng_register():
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:299
> 380: 56 push %esi
> 381: 53 push %ebx
> ...
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:312
> 3c6: 8b 76 1c mov 0x1c(%esi),%esi
> 3c9: 83 ee 1c sub $0x1c,%esi
> prefetch():
> /tmp/1/linux-source-2.6.37-rc7/arch/x86/include/asm/processor.h:837
> 3cc: 8b 46 1c mov 0x1c(%esi),%eax
> 3cf: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
> hwrng_register():
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:312
> 3d3: 81 fe f8 ff ff ff cmp $0xfffffff8,%esi
> 3d9: 75 d4 jne 3af <hwrng_register+0x2f>
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:319
>
> 312 list_for_each_entry(tmp, &rng_list, list) {
> 313 if (strcmp(tmp->name, rng->name) == 0)
> 314 goto out_unlock;
> 315 }
>
> This is btw. the same data that is accessed in the cat rng_available
> crash via hwrng_attr_available_show():
>
> [ 389.303538] BUG: unable to handle kernel paging request at 288dcb5b
> [ 389.303553] IP: [<f8dda34c>] hwrng_attr_available_show+0x5c/0x90 [rng_core]
>
> 000002f0 <hwrng_attr_available_show>:
> hwrng_attr_available_show():
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:236
> 2f0: 55 push %ebp
> ...
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:245
> 346: 8b 5b 1c mov 0x1c(%ebx),%ebx
> 349: 83 eb 1c sub $0x1c,%ebx
> prefetch():
> /tmp/1/linux-source-2.6.37-rc7/arch/x86/include/asm/processor.h:837
> 34c: 8b 43 1c mov 0x1c(%ebx),%eax
> 34f: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi
> hwrng_attr_available_show():
> /tmp/1/linux-source-2.6.37-rc7/drivers/char/hw_random/core.c:245
>
> 245 list_for_each_entry(rng, &rng_list, list) {
> 246 strncat(buf, rng->name, PAGE_SIZE - ret - 1);
> 247 ret += strlen(rng->name);
> 248 strncat(buf, " ", PAGE_SIZE - ret - 1);
> 249 ret++;
> 250 }
The head of the rng_list is damaged. It is initialized at compile time and
should be OK. To help discover the order in which hwrng_register() is called,
apply the attached patch. Run it once with commit 84c164a34ffe67908a installed,
and once with it reverted.
Thanks,
Larry
[-- Attachment #2: hwrng_debug --]
[-- Type: text/plain, Size: 822 bytes --]
Index: wireless-testing/drivers/char/hw_random/core.c
===================================================================
--- wireless-testing.orig/drivers/char/hw_random/core.c
+++ wireless-testing/drivers/char/hw_random/core.c
@@ -49,11 +49,11 @@
static struct hwrng *current_rng;
-static LIST_HEAD(rng_list);
static DEFINE_MUTEX(rng_mutex);
static int data_avail;
static u8 rng_buffer[SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES]
__cacheline_aligned;
+static LIST_HEAD(rng_list);
static inline int hwrng_init(struct hwrng *rng)
{
@@ -305,6 +305,9 @@ int hwrng_register(struct hwrng *rng)
(rng->data_read == NULL && rng->read == NULL))
goto out;
+ printk(KERN_INFO "Calling hwrng_register\n");
+ dump_stack();
+
mutex_lock(&rng_mutex);
/* Must not register two RNGs with the same name. */
^ permalink raw reply
* Re: [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged skbs
From: Stephen Hemminger @ 2010-12-30 18:46 UTC (permalink / raw)
To: Tomas Winkler; +Cc: davem, netdev, linux-wireless, Johannes Berg
In-Reply-To: <1293708753-17728-1-git-send-email-tomas.winkler@intel.com>
On Thu, 30 Dec 2010 13:32:33 +0200
Tomas Winkler <tomas.winkler@intel.com> wrote:
> use pskb_may_pull to access header correctly for paged skbs
>
> the pskb_may_pull ideom is used ipv6 heder parsing
> but omitted int the bridge code
>
> this fixes bug https://bugzilla.kernel.org/show_bug.cgi?id=25202
>
> Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: authenticated
> Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 IEEE 802.11: associated (aid 2)
> Dec 15 14:36:40 User-PC hostapd: wlan0: STA 00:15:00:60:5d:34 RADIUS: starting accounting session 4D0608A3-00000005
> Dec 15 14:36:41 User-PC kernel: [175576.120287] ------------[ cut here ]------------
> Dec 15 14:36:41 User-PC kernel: [175576.120452] kernel BUG at include/linux/skbuff.h:1178!
> Dec 15 14:36:41 User-PC kernel: [175576.120609] invalid opcode: 0000 [#1] SMP
> Dec 15 14:36:41 User-PC kernel: [175576.120749] last sysfs file: /sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda/uevent
> Dec 15 14:36:41 User-PC kernel: [175576.121035] Modules linked in: oprofile binfmt_misc bridge stp llc parport_pc ppdev arc4 iwlagn snd_hda_codec_realtek iwlcore i915 snd_hda_intel mac80211 joydev snd_hda_codec snd_hwdep snd_pcm snd_seq_midi drm_kms_helper snd_rawmidi drm snd_seq_midi_event snd_seq snd_timer snd_seq_device cfg80211 eeepc_wmi usbhid psmouse intel_agp i2c_algo_bit intel_gtt uvcvideo agpgart videodev sparse_keymap snd shpchp v4l1_compat lp hid video serio_raw soundcore output snd_page_alloc ahci libahci atl1c
> Dec 15 14:36:41 User-PC kernel: [175576.122712]
> Dec 15 14:36:41 User-PC kernel: [175576.122769] Pid: 0, comm: kworker/0:0 Tainted: G W 2.6.37-rc5-wl+ #3 1015PE/1016P
> Dec 15 14:36:41 User-PC kernel: [175576.123012] EIP: 0060:[<f83edd65>] EFLAGS: 00010283 CPU: 1
> Dec 15 14:36:41 User-PC kernel: [175576.123193] EIP is at br_multicast_rcv+0xc95/0xe1c [bridge]
> Dec 15 14:36:41 User-PC kernel: [175576.123362] EAX: 0000001c EBX: f5626318 ECX: 00000000 EDX: 00000000
> Dec 15 14:36:41 User-PC kernel: [175576.123550] ESI: ec512262 EDI: f5626180 EBP: f60b5ca0 ESP: f60b5bd8
> Dec 15 14:36:41 User-PC kernel: [175576.123737] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
> Dec 15 14:36:41 User-PC kernel: [175576.123902] Process kworker/0:0 (pid: 0, ti=f60b4000 task=f60a8000 task.ti=f60b0000)
> Dec 15 14:36:41 User-PC kernel: [175576.124137] Stack:
> Dec 15 14:36:41 User-PC kernel: [175576.124181] ec556500 f6d06800 f60b5be8 c01087d8 ec512262 00000030 00000024 f5626180
> Dec 15 14:36:41 User-PC kernel: [175576.124181] f572c200 ef463440 f5626300 3affffff f6d06dd0 e60766a4 000000c4 f6d06860
> Dec 15 14:36:41 User-PC kernel: [175576.124181] ffffffff ec55652c 00000001 f6d06844 f60b5c64 c0138264 c016e451 c013e47d
> Dec 15 14:36:41 User-PC kernel: [175576.124181] Call Trace:
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01087d8>] ? sched_clock+0x8/0x10
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0138264>] ? enqueue_entity+0x174/0x440
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c016e451>] ? sched_clock_cpu+0x131/0x190
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c013e47d>] ? select_task_rq_fair+0x2ad/0x730
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0524fc1>] ? nf_iterate+0x71/0x90
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4914>] ? br_handle_frame_finish+0x184/0x220 [bridge]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4790>] ? br_handle_frame_finish+0x0/0x220 [bridge]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e46e9>] ? br_handle_frame+0x189/0x230 [bridge]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4790>] ? br_handle_frame_finish+0x0/0x220 [bridge]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f83e4560>] ? br_handle_frame+0x0/0x230 [bridge]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04ff026>] ? __netif_receive_skb+0x1b6/0x5b0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04f7a30>] ? skb_copy_bits+0x110/0x210
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0503a7f>] ? netif_receive_skb+0x6f/0x80
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82cb74c>] ? ieee80211_deliver_skb+0x8c/0x1a0 [mac80211]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82cc836>] ? ieee80211_rx_handlers+0xeb6/0x1aa0 [mac80211]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04ff1f0>] ? __netif_receive_skb+0x380/0x5b0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c016e242>] ? sched_clock_local+0xb2/0x190
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c012b688>] ? default_spin_lock_flags+0x8/0x10
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d83df>] ? _raw_spin_lock_irqsave+0x2f/0x50
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82cd621>] ? ieee80211_prepare_and_rx_handle+0x201/0xa90 [mac80211]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f82ce154>] ? ieee80211_rx+0x2a4/0x830 [mac80211]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f815a8d6>] ? iwl_update_stats+0xa6/0x2a0 [iwlcore]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f8499212>] ? iwlagn_rx_reply_rx+0x292/0x3b0 [iwlagn]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d83df>] ? _raw_spin_lock_irqsave+0x2f/0x50
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f8483697>] ? iwl_rx_handle+0xe7/0x350 [iwlagn]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<f8486ab7>] ? iwl_irq_tasklet+0xf7/0x5c0 [iwlagn]
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01aece1>] ? __rcu_process_callbacks+0x201/0x2d0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0150d05>] ? tasklet_action+0xc5/0x100
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0150a07>] ? __do_softirq+0x97/0x1d0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d910c>] ? nmi_stack_correct+0x2f/0x34
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0150970>] ? __do_softirq+0x0/0x1d0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] <IRQ>
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01508f5>] ? irq_exit+0x65/0x70
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05df062>] ? do_IRQ+0x52/0xc0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c01036b0>] ? common_interrupt+0x30/0x38
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c03a1fc2>] ? intel_idle+0xc2/0x160
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c04daebb>] ? cpuidle_idle_call+0x6b/0x100
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c0101dea>] ? cpu_idle+0x8a/0xf0
> Dec 15 14:36:41 User-PC kernel: [175576.124181] [<c05d2702>] ? start_secondary+0x1e8/0x1ee
>
> Cc:YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
> Cc: Johannes Berg <johannes@sipsolutions.net>
> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
> ---
> net/bridge/br_multicast.c | 4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
> index f19e347..074c478 100644
> --- a/net/bridge/br_multicast.c
> +++ b/net/bridge/br_multicast.c
> @@ -1464,6 +1464,10 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br,
> if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
> return 0;
>
> + if (!pskb_may_pull(skb,
> + (skb_network_header(skb) + offset + 1 - skb->data)))
> + return 0;
> +
> /* Okay, we found ICMPv6 header */
> skb2 = skb_clone(skb, GFP_ATOMIC);
> if (!skb2)
This doesn't look correct. The calculation of the offset doesn't look correct.
Just following the skb_clone(), the skb_pull value is "offset".
Also, the other checks return -EINVAL for incorrectly formed packet.
--- a/net/bridge/br_multicast.c 2010-12-30 10:29:58.579510488 -0800
+++ b/net/bridge/br_multicast.c 2010-12-30 10:43:27.273386691 -0800
@@ -1464,6 +1464,9 @@ static int br_multicast_ipv6_rcv(struct
if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
return 0;
+ if (!pskb_may_pull(skb, offset))
+ return -EINVAL;
+
/* Okay, we found ICMPv6 header */
skb2 = skb_clone(skb, GFP_ATOMIC);
if (!skb2)
--
^ permalink raw reply
* Re: [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged skbs
From: Johannes Berg @ 2010-12-30 18:52 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Tomas Winkler, davem, netdev, linux-wireless
In-Reply-To: <20101230104656.6c5a4b4e@nehalam>
On Thu, 2010-12-30 at 10:46 -0800, Stephen Hemminger wrote:
> This doesn't look correct. The calculation of the offset doesn't look correct.
> Just following the skb_clone(), the skb_pull value is "offset".
> Also, the other checks return -EINVAL for incorrectly formed packet.
>
> --- a/net/bridge/br_multicast.c 2010-12-30 10:29:58.579510488 -0800
> +++ b/net/bridge/br_multicast.c 2010-12-30 10:43:27.273386691 -0800
> @@ -1464,6 +1464,9 @@ static int br_multicast_ipv6_rcv(struct
> if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
> return 0;
>
> + if (!pskb_may_pull(skb, offset))
> + return -EINVAL;
> +
> /* Okay, we found ICMPv6 header */
> skb2 = skb_clone(skb, GFP_ATOMIC);
> if (!skb2)
Wouldn't that make more sense after the clone anyway? But if you look at
my email, you'll find that there's potentially, and conditionally, more
stuff that will be read from the skb's header, which hasn't necessarily
been pulled in, so I think this still won't fix all the issues.
Seeing how this only affects some ICMPv6 packets, maybe we should just
use skb_copy() instead?
johannes
^ permalink raw reply
* Re: [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged skbs
From: Stephen Hemminger @ 2010-12-30 19:06 UTC (permalink / raw)
To: Johannes Berg; +Cc: Tomas Winkler, davem, netdev, linux-wireless
In-Reply-To: <1293735134.21956.1.camel@jlt3.sipsolutions.net>
On Thu, 30 Dec 2010 19:52:14 +0100
Johannes Berg <johannes@sipsolutions.net> wrote:
> On Thu, 2010-12-30 at 10:46 -0800, Stephen Hemminger wrote:
>
> > This doesn't look correct. The calculation of the offset doesn't look correct.
> > Just following the skb_clone(), the skb_pull value is "offset".
> > Also, the other checks return -EINVAL for incorrectly formed packet.
> >
> > --- a/net/bridge/br_multicast.c 2010-12-30 10:29:58.579510488 -0800
> > +++ b/net/bridge/br_multicast.c 2010-12-30 10:43:27.273386691 -0800
> > @@ -1464,6 +1464,9 @@ static int br_multicast_ipv6_rcv(struct
> > if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
> > return 0;
> >
> > + if (!pskb_may_pull(skb, offset))
> > + return -EINVAL;
> > +
> > /* Okay, we found ICMPv6 header */
> > skb2 = skb_clone(skb, GFP_ATOMIC);
> > if (!skb2)
>
> Wouldn't that make more sense after the clone anyway? But if you look at
> my email, you'll find that there's potentially, and conditionally, more
> stuff that will be read from the skb's header, which hasn't necessarily
> been pulled in, so I think this still won't fix all the issues.
>
> Seeing how this only affects some ICMPv6 packets, maybe we should just
> use skb_copy() instead?
It comes out cleaner, and the check can be simplified.
--- a/net/bridge/br_multicast.c 2010-12-30 10:47:12.031733855 -0800
+++ b/net/bridge/br_multicast.c 2010-12-30 11:00:12.135801266 -0800
@@ -1465,19 +1465,19 @@ static int br_multicast_ipv6_rcv(struct
return 0;
/* Okay, we found ICMPv6 header */
- skb2 = skb_clone(skb, GFP_ATOMIC);
+ skb2 = skb_copy(skb, GFP_ATOMIC);
if (!skb2)
return -ENOMEM;
+ err = -EINVAL;
+ if (skb2->len < offset + sizeof(*icmp6h))
+ goto out;
+
len -= offset - skb_network_offset(skb2);
__skb_pull(skb2, offset);
skb_reset_transport_header(skb2);
- err = -EINVAL;
- if (!pskb_may_pull(skb2, sizeof(*icmp6h)))
- goto out;
-
icmp6h = icmp6_hdr(skb2);
switch (icmp6h->icmp6_type) {
--
^ permalink raw reply
* [PATCH 1/4 V2] mwl8k: Modify add_dma_header to include pad parameters
From: Thomas Pedersen @ 2010-12-30 19:23 UTC (permalink / raw)
To: linux-wireless
Cc: buytenh, mwl8k-devel, Nishant Sarmukadam, Pradeep Nemavat,
Thomas Pedersen
From: Nishant Sarmukadam <nishants@marvell.com>
Add capability to add_dma_header to support padding at tail of the data
packet to be transmitted when crypto is enabled. Padding is required for
adding crypto information in data packets for supporting 802.11 security
modes.
V2:
- made padding tail-only as we will tell mac80211 to do head padding
in next patch (Johannes)
Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: Pradeep Nemavat <pnemavat@marvell.com>
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
---
drivers/net/wireless/mwl8k.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 9ecf840..1798b7e 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -715,10 +715,12 @@ static inline void mwl8k_remove_dma_header(struct sk_buff *skb, __le16 qos)
skb_pull(skb, sizeof(*tr) - hdrlen);
}
-static inline void mwl8k_add_dma_header(struct sk_buff *skb)
+static void
+mwl8k_add_dma_header(struct sk_buff *skb, int tail_pad)
{
struct ieee80211_hdr *wh;
int hdrlen;
+ int reqd_hdrlen;
struct mwl8k_dma_data *tr;
/*
@@ -730,11 +732,13 @@ static inline void mwl8k_add_dma_header(struct sk_buff *skb)
wh = (struct ieee80211_hdr *)skb->data;
hdrlen = ieee80211_hdrlen(wh->frame_control);
- if (hdrlen != sizeof(*tr))
- skb_push(skb, sizeof(*tr) - hdrlen);
+ reqd_hdrlen = sizeof(*tr);
+
+ if (hdrlen != reqd_hdrlen)
+ skb_push(skb, reqd_hdrlen - hdrlen);
if (ieee80211_is_data_qos(wh->frame_control))
- hdrlen -= 2;
+ hdrlen -= IEEE80211_QOS_CTL_LEN;
tr = (struct mwl8k_dma_data *)skb->data;
if (wh != &tr->wh)
@@ -747,7 +751,7 @@ static inline void mwl8k_add_dma_header(struct sk_buff *skb)
* payload". That is, everything except for the 802.11 header.
* This includes all crypto material including the MIC.
*/
- tr->fwlen = cpu_to_le16(skb->len - sizeof(*tr));
+ tr->fwlen = cpu_to_le16(skb->len - sizeof(*tr) + tail_pad);
}
@@ -1443,7 +1447,7 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb)
else
qos = 0;
- mwl8k_add_dma_header(skb);
+ mwl8k_add_dma_header(skb, 0);
wh = &((struct mwl8k_dma_data *)skb->data)->wh;
tx_info = IEEE80211_SKB_CB(skb);
--
1.7.0.4
^ permalink raw reply related
* [PATCH 2/4 V2] mwl8k: Add encapsulation of data packet for crypto
From: Thomas Pedersen @ 2010-12-30 19:23 UTC (permalink / raw)
To: linux-wireless
Cc: buytenh, mwl8k-devel, Nishant Sarmukadam, Pradeep Nemavat,
Thomas Pedersen
In-Reply-To: <1293737014-11718-1-git-send-email-thomas@cozybit.com>
From: Nishant Sarmukadam <nishants@marvell.com>
Different tail pads will be needed for crypto depending on the crypto
mode. Add support to encapsulate the packets with appropriate pad
value.
V2:
- Remove unneeded fill_ccmp_header() and CCMP header data
structures (Johannes, Yogesh)
- Use new cipher definitions earlier in patchset (Johannes)
Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: Pradeep Nemavat <pnemavat@marvell.com>
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
---
drivers/net/wireless/mwl8k.c | 54 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 53 insertions(+), 1 deletions(-)
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 1798b7e..95bbdca 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -232,6 +232,9 @@ struct mwl8k_priv {
struct completion firmware_loading_complete;
};
+#define MAX_WEP_KEY_LEN 13
+#define NUM_WEP_KEYS 4
+
/* Per interface specific private data */
struct mwl8k_vif {
struct list_head list;
@@ -242,6 +245,12 @@ struct mwl8k_vif {
/* Non AMPDU sequence number assigned by driver. */
u16 seqno;
+
+ /* Saved WEP keys */
+ struct {
+ u8 enabled;
+ u8 key[sizeof(struct ieee80211_key_conf) + MAX_WEP_KEY_LEN];
+ } wep_key_conf[NUM_WEP_KEYS];
};
#define MWL8K_VIF(_vif) ((struct mwl8k_vif *)&((_vif)->drv_priv))
@@ -754,6 +763,49 @@ mwl8k_add_dma_header(struct sk_buff *skb, int tail_pad)
tr->fwlen = cpu_to_le16(skb->len - sizeof(*tr) + tail_pad);
}
+static void mwl8k_encapsulate_tx_frame(struct sk_buff *skb)
+{
+ struct ieee80211_hdr *wh;
+ struct ieee80211_tx_info *tx_info;
+ struct ieee80211_key_conf *key_conf;
+ int data_pad;
+
+ wh = (struct ieee80211_hdr *)skb->data;
+
+ tx_info = IEEE80211_SKB_CB(skb);
+
+ key_conf = NULL;
+ if (ieee80211_is_data(wh->frame_control))
+ key_conf = tx_info->control.hw_key;
+
+ /*
+ * Make sure the packet header is in the DMA header format (4-address
+ * without QoS), the necessary crypto padding between the header and the
+ * payload has already been provided by mac80211, but it doesn't add tail
+ * padding when HW crypto is enabled.
+ *
+ * We have the following trailer padding requirements:
+ * - WEP: 4 trailer bytes (ICV)
+ * - TKIP: 12 trailer bytes (8 MIC + 4 ICV)
+ * - CCMP: 8 trailer bytes (MIC)
+ */
+ data_pad = 0;
+ if (key_conf != NULL) {
+ switch (key_conf->cipher) {
+ case WLAN_CIPHER_SUITE_WEP40:
+ case WLAN_CIPHER_SUITE_WEP104:
+ data_pad = 4;
+ break;
+ case WLAN_CIPHER_SUITE_TKIP:
+ data_pad = 12;
+ break;
+ case WLAN_CIPHER_SUITE_CCMP:
+ data_pad = 8;
+ break;
+ }
+ }
+ mwl8k_add_dma_header(skb, data_pad);
+}
/*
* Packet reception for 88w8366 AP firmware.
@@ -1447,7 +1499,7 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb)
else
qos = 0;
- mwl8k_add_dma_header(skb, 0);
+ mwl8k_encapsulate_tx_frame(skb);
wh = &((struct mwl8k_dma_data *)skb->data)->wh;
tx_info = IEEE80211_SKB_CB(skb);
--
1.7.0.4
^ permalink raw reply related
* [PATCH 3/4 V2] mwl8k: Set mac80211 rx status flags appropriately when hw crypto is enabled
From: Thomas Pedersen @ 2010-12-30 19:23 UTC (permalink / raw)
To: linux-wireless
Cc: buytenh, mwl8k-devel, Nishant Sarmukadam, yogesh powar,
Thomas Pedersen
In-Reply-To: <1293737014-11718-1-git-send-email-thomas@cozybit.com>
From: Nishant Sarmukadam <nishants@marvell.com>
When hw crypto is enabled, set rx status flags appropriately depending on
whether hw crypto is enabled for a particular bss.
Also report MIC errors to mac80211, so that counter measures can be
initiated
V2:
- formatting and make patch cleanly apply
Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: yogesh powar <yogeshp@marvell.com>
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
---
drivers/net/wireless/mwl8k.c | 101 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 98 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 95bbdca..2b76bbc 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -251,6 +251,12 @@ struct mwl8k_vif {
u8 enabled;
u8 key[sizeof(struct ieee80211_key_conf) + MAX_WEP_KEY_LEN];
} wep_key_conf[NUM_WEP_KEYS];
+
+ /* BSSID */
+ u8 bssid[ETH_ALEN];
+
+ /* A flag to indicate is HW crypto is enabled for this bssid */
+ bool is_hw_crypto_enabled;
};
#define MWL8K_VIF(_vif) ((struct mwl8k_vif *)&((_vif)->drv_priv))
@@ -834,6 +840,13 @@ struct mwl8k_rxd_8366_ap {
#define MWL8K_8366_AP_RX_CTRL_OWNED_BY_HOST 0x80
+/* 8366 AP rx_status bits */
+#define MWL8K_8366_AP_RXSTAT_DECRYPT_ERR_MASK 0x80
+#define MWL8K_8366_AP_RXSTAT_GENERAL_DECRYPT_ERR 0xFF
+#define MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_MIC_ERR 0x02
+#define MWL8K_8366_AP_RXSTAT_WEP_DECRYPT_ICV_ERR 0x04
+#define MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_ICV_ERR 0x08
+
static void mwl8k_rxd_8366_ap_init(void *_rxd, dma_addr_t next_dma_addr)
{
struct mwl8k_rxd_8366_ap *rxd = _rxd;
@@ -894,6 +907,11 @@ mwl8k_rxd_8366_ap_process(void *_rxd, struct ieee80211_rx_status *status,
*qos = rxd->qos_control;
+ if ((rxd->rx_status != MWL8K_8366_AP_RXSTAT_GENERAL_DECRYPT_ERR) &&
+ (rxd->rx_status & MWL8K_8366_AP_RXSTAT_DECRYPT_ERR_MASK) &&
+ (rxd->rx_status & MWL8K_8366_AP_RXSTAT_TKIP_DECRYPT_MIC_ERR))
+ status->flag |= RX_FLAG_MMIC_ERROR;
+
return le16_to_cpu(rxd->pkt_len);
}
@@ -932,6 +950,11 @@ struct mwl8k_rxd_sta {
#define MWL8K_STA_RATE_INFO_MCS_FORMAT 0x0001
#define MWL8K_STA_RX_CTRL_OWNED_BY_HOST 0x02
+#define MWL8K_STA_RX_CTRL_DECRYPT_ERROR 0x04
+/* ICV=0 or MIC=1 */
+#define MWL8K_STA_RX_CTRL_DEC_ERR_TYPE 0x08
+/* Key is uploaded only in failure case */
+#define MWL8K_STA_RX_CTRL_KEY_INDEX 0x30
static void mwl8k_rxd_sta_init(void *_rxd, dma_addr_t next_dma_addr)
{
@@ -990,6 +1013,9 @@ mwl8k_rxd_sta_process(void *_rxd, struct ieee80211_rx_status *status,
status->freq = ieee80211_channel_to_frequency(rxd->channel);
*qos = rxd->qos_control;
+ if ((rxd->rx_ctrl & MWL8K_STA_RX_CTRL_DECRYPT_ERROR) &&
+ (rxd->rx_ctrl & MWL8K_STA_RX_CTRL_DEC_ERR_TYPE))
+ status->flag |= RX_FLAG_MMIC_ERROR;
return le16_to_cpu(rxd->pkt_len);
}
@@ -1148,9 +1174,25 @@ static inline void mwl8k_save_beacon(struct ieee80211_hw *hw,
ieee80211_queue_work(hw, &priv->finalize_join_worker);
}
+static inline struct mwl8k_vif *mwl8k_find_vif_bss(struct list_head *vif_list,
+ u8 *bssid)
+{
+ struct mwl8k_vif *mwl8k_vif;
+
+ list_for_each_entry(mwl8k_vif,
+ vif_list, list) {
+ if (memcmp(bssid, mwl8k_vif->bssid,
+ ETH_ALEN) == 0)
+ return mwl8k_vif;
+ }
+
+ return NULL;
+}
+
static int rxq_process(struct ieee80211_hw *hw, int index, int limit)
{
struct mwl8k_priv *priv = hw->priv;
+ struct mwl8k_vif *mwl8k_vif = NULL;
struct mwl8k_rx_queue *rxq = priv->rxq + index;
int processed;
@@ -1160,6 +1202,7 @@ static int rxq_process(struct ieee80211_hw *hw, int index, int limit)
void *rxd;
int pkt_len;
struct ieee80211_rx_status status;
+ struct ieee80211_hdr *wh;
__le16 qos;
skb = rxq->buf[rxq->head].skb;
@@ -1186,8 +1229,7 @@ static int rxq_process(struct ieee80211_hw *hw, int index, int limit)
rxq->rxd_count--;
- skb_put(skb, pkt_len);
- mwl8k_remove_dma_header(skb, qos);
+ wh = &((struct mwl8k_dma_data *)skb->data)->wh;
/*
* Check for a pending join operation. Save a
@@ -1197,6 +1239,46 @@ static int rxq_process(struct ieee80211_hw *hw, int index, int limit)
if (mwl8k_capture_bssid(priv, (void *)skb->data))
mwl8k_save_beacon(hw, skb);
+ if (ieee80211_has_protected(wh->frame_control)) {
+
+ /* Check if hw crypto has been enabled for
+ * this bss. If yes, set the status flags
+ * accordingly
+ */
+ mwl8k_vif = mwl8k_find_vif_bss(&priv->vif_list,
+ wh->addr1);
+
+ if (mwl8k_vif != NULL &&
+ mwl8k_vif->is_hw_crypto_enabled == true) {
+ /*
+ * When MMIC ERROR is encountered
+ * by the firmware, payload is
+ * dropped and only 32 bytes of
+ * mwl8k Firmware header is sent
+ * to the host.
+ *
+ * We need to add four bytes of
+ * key information. In it
+ * MAC80211 expects keyidx set to
+ * 0 for triggering Counter
+ * Measure of MMIC failure.
+ */
+ if (status.flag & RX_FLAG_MMIC_ERROR) {
+ struct mwl8k_dma_data *tr;
+ tr = (struct mwl8k_dma_data *)skb->data;
+ memset((void *)&(tr->data), 0, 4);
+ pkt_len += 4;
+ }
+
+ if (!ieee80211_is_auth(wh->frame_control))
+ status.flag |= RX_FLAG_IV_STRIPPED |
+ RX_FLAG_DECRYPTED |
+ RX_FLAG_MMIC_STRIPPED;
+ }
+ }
+
+ skb_put(skb, pkt_len);
+ mwl8k_remove_dma_header(skb, qos);
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
ieee80211_rx_irqsafe(hw, skb);
@@ -1499,7 +1581,11 @@ mwl8k_txq_xmit(struct ieee80211_hw *hw, int index, struct sk_buff *skb)
else
qos = 0;
- mwl8k_encapsulate_tx_frame(skb);
+ if (priv->ap_fw)
+ mwl8k_encapsulate_tx_frame(skb);
+ else
+ mwl8k_add_dma_header(skb, 0);
+
wh = &((struct mwl8k_dma_data *)skb->data)->wh;
tx_info = IEEE80211_SKB_CB(skb);
@@ -3525,6 +3611,8 @@ static int mwl8k_add_interface(struct ieee80211_hw *hw,
mwl8k_vif->vif = vif;
mwl8k_vif->macid = macid;
mwl8k_vif->seqno = 0;
+ memcpy(mwl8k_vif->bssid, vif->addr, ETH_ALEN);
+ mwl8k_vif->is_hw_crypto_enabled = false;
/* Set the mac address. */
mwl8k_cmd_set_mac_addr(hw, vif, vif->addr);
@@ -3930,9 +4018,16 @@ static int mwl8k_sta_add(struct ieee80211_hw *hw,
return 0;
}
+ } else {
+ ret = mwl8k_cmd_set_new_stn_add(hw, vif, sta);
return ret;
}
+ for (i = 0; i < NUM_WEP_KEYS; i++) {
+ key = IEEE80211_KEY_CONF(mwl8k_vif->wep_key_conf[i].key);
+ if (mwl8k_vif->wep_key_conf[i].enabled)
+ mwl8k_set_key(hw, SET_KEY, vif, sta, key);
+ }
return mwl8k_cmd_set_new_stn_add(hw, vif, sta);
}
--
1.7.0.4
^ permalink raw reply related
* [PATCH 4/4 V2] mwl8k: Enable HW encryption for AP mode
From: Thomas Pedersen @ 2010-12-30 19:23 UTC (permalink / raw)
To: linux-wireless
Cc: buytenh, mwl8k-devel, Nishant Sarmukadam, Pradeep Nemavat,
Thomas Pedersen
In-Reply-To: <1293737014-11718-1-git-send-email-thomas@cozybit.com>
From: Nishant Sarmukadam <nishants@marvell.com>
set_key callback is defined for mac80211 to install keys for HW crypto in AP
mode. Driver currently falls back to SW crypto in STA mode. Add support to
configure the keys appropriately in the hardware after the set_key routine is
called.
V2:
- Tell mac80211 to provide crypto padding in mwl8k_set_key() (Yogesh)
Signed-off-by: Nishant Sarmukadam <nishants@marvell.com>
Signed-off-by: Pradeep Nemavat <pnemavat@marvell.com>
Signed-off-by: Thomas Pedersen <thomas@cozybit.com>
---
drivers/net/wireless/mwl8k.c | 280 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 277 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 2b76bbc..809f2bf 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -259,6 +259,7 @@ struct mwl8k_vif {
bool is_hw_crypto_enabled;
};
#define MWL8K_VIF(_vif) ((struct mwl8k_vif *)&((_vif)->drv_priv))
+#define IEEE80211_KEY_CONF(_u8) ((struct ieee80211_key_conf *)(_u8))
struct mwl8k_sta {
/* Index into station database. Returned by UPDATE_STADB. */
@@ -352,6 +353,7 @@ static const struct ieee80211_rate mwl8k_rates_50[] = {
#define MWL8K_CMD_SET_RATEADAPT_MODE 0x0203
#define MWL8K_CMD_BSS_START 0x1100 /* per-vif */
#define MWL8K_CMD_SET_NEW_STN 0x1111 /* per-vif */
+#define MWL8K_CMD_UPDATE_ENCRYPTION 0x1122 /* per-vif */
#define MWL8K_CMD_UPDATE_STADB 0x1123
static const char *mwl8k_cmd_name(__le16 cmd, char *buf, int bufsize)
@@ -390,6 +392,7 @@ static const char *mwl8k_cmd_name(__le16 cmd, char *buf, int bufsize)
MWL8K_CMDNAME(SET_RATEADAPT_MODE);
MWL8K_CMDNAME(BSS_START);
MWL8K_CMDNAME(SET_NEW_STN);
+ MWL8K_CMDNAME(UPDATE_ENCRYPTION);
MWL8K_CMDNAME(UPDATE_STADB);
default:
snprintf(buf, bufsize, "0x%x", cmd);
@@ -3241,6 +3244,274 @@ static int mwl8k_cmd_set_new_stn_del(struct ieee80211_hw *hw,
}
/*
+ * CMD_UPDATE_ENCRYPTION.
+ */
+
+#define MAX_ENCR_KEY_LENGTH 16
+#define MIC_KEY_LENGTH 8
+
+struct mwl8k_cmd_update_encryption {
+ struct mwl8k_cmd_pkt header;
+
+ __le32 action;
+ __le32 reserved;
+ __u8 mac_addr[6];
+ __u8 encr_type;
+
+} __attribute__((packed));
+
+struct mwl8k_cmd_set_key {
+ struct mwl8k_cmd_pkt header;
+
+ __le32 action;
+ __le32 reserved;
+ __le16 length;
+ __le16 key_type_id;
+ __le32 key_info;
+ __le32 key_id;
+ __le16 key_len;
+ __u8 key_material[MAX_ENCR_KEY_LENGTH];
+ __u8 tkip_tx_mic_key[MIC_KEY_LENGTH];
+ __u8 tkip_rx_mic_key[MIC_KEY_LENGTH];
+ __le16 tkip_rsc_low;
+ __le32 tkip_rsc_high;
+ __le16 tkip_tsc_low;
+ __le32 tkip_tsc_high;
+ __u8 mac_addr[6];
+} __attribute__((packed));
+
+enum {
+ MWL8K_ENCR_ENABLE,
+ MWL8K_ENCR_SET_KEY,
+ MWL8K_ENCR_REMOVE_KEY,
+ MWL8K_ENCR_SET_GROUP_KEY,
+};
+
+#define MWL8K_UPDATE_ENCRYPTION_TYPE_WEP 0
+#define MWL8K_UPDATE_ENCRYPTION_TYPE_DISABLE 1
+#define MWL8K_UPDATE_ENCRYPTION_TYPE_TKIP 4
+#define MWL8K_UPDATE_ENCRYPTION_TYPE_MIXED 7
+#define MWL8K_UPDATE_ENCRYPTION_TYPE_AES 8
+
+enum {
+ MWL8K_ALG_WEP,
+ MWL8K_ALG_TKIP,
+ MWL8K_ALG_CCMP,
+};
+
+#define MWL8K_KEY_FLAG_TXGROUPKEY 0x00000004
+#define MWL8K_KEY_FLAG_PAIRWISE 0x00000008
+#define MWL8K_KEY_FLAG_TSC_VALID 0x00000040
+#define MWL8K_KEY_FLAG_WEP_TXKEY 0x01000000
+#define MWL8K_KEY_FLAG_MICKEY_VALID 0x02000000
+
+static int mwl8k_cmd_update_encryption_enable(struct ieee80211_hw *hw,
+ struct ieee80211_vif *vif,
+ u8 *addr,
+ u8 encr_type)
+{
+ struct mwl8k_cmd_update_encryption *cmd;
+ int rc;
+
+ cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ if (cmd == NULL)
+ return -ENOMEM;
+
+ cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION);
+ cmd->header.length = cpu_to_le16(sizeof(*cmd));
+ cmd->action = cpu_to_le32(MWL8K_ENCR_ENABLE);
+ memcpy(cmd->mac_addr, addr, ETH_ALEN);
+ cmd->encr_type = encr_type;
+
+ rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header);
+ kfree(cmd);
+
+ return rc;
+}
+
+static int mwl8k_encryption_set_cmd_info(struct mwl8k_cmd_set_key *cmd,
+ u8 *addr,
+ struct ieee80211_key_conf *key)
+{
+ cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION);
+ cmd->header.length = cpu_to_le16(sizeof(*cmd));
+ cmd->length = cpu_to_le16(sizeof(*cmd) -
+ offsetof(struct mwl8k_cmd_set_key, length));
+ cmd->key_id = cpu_to_le32(key->keyidx);
+ cmd->key_len = cpu_to_le16(key->keylen);
+ memcpy(cmd->mac_addr, addr, ETH_ALEN);
+
+ switch (key->cipher) {
+ case WLAN_CIPHER_SUITE_WEP40:
+ case WLAN_CIPHER_SUITE_WEP104:
+ cmd->key_type_id = cpu_to_le16(MWL8K_ALG_WEP);
+ if (key->keyidx == 0)
+ cmd->key_info = cpu_to_le32(MWL8K_KEY_FLAG_WEP_TXKEY);
+
+ break;
+ case WLAN_CIPHER_SUITE_TKIP:
+ cmd->key_type_id = cpu_to_le16(MWL8K_ALG_TKIP);
+ cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
+ ? cpu_to_le32(MWL8K_KEY_FLAG_PAIRWISE)
+ : cpu_to_le32(MWL8K_KEY_FLAG_TXGROUPKEY);
+ cmd->key_info |= cpu_to_le32(MWL8K_KEY_FLAG_MICKEY_VALID
+ | MWL8K_KEY_FLAG_TSC_VALID);
+ break;
+ case WLAN_CIPHER_SUITE_CCMP:
+ cmd->key_type_id = cpu_to_le16(MWL8K_ALG_CCMP);
+ cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
+ ? cpu_to_le32(MWL8K_KEY_FLAG_PAIRWISE)
+ : cpu_to_le32(MWL8K_KEY_FLAG_TXGROUPKEY);
+ break;
+ default:
+ return -ENOTSUPP;
+ }
+
+ return 0;
+}
+
+static int mwl8k_cmd_encryption_set_key(struct ieee80211_hw *hw,
+ struct ieee80211_vif *vif,
+ u8 *addr,
+ struct ieee80211_key_conf *key)
+{
+ struct mwl8k_cmd_set_key *cmd;
+ int rc;
+ int keymlen;
+ u32 action;
+ u8 idx;
+ struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif);
+
+ cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ if (cmd == NULL)
+ return -ENOMEM;
+
+ rc = mwl8k_encryption_set_cmd_info(cmd, addr, key);
+ if (rc < 0)
+ goto done;
+
+ idx = key->keyidx;
+
+ if (key->flags & IEEE80211_KEY_FLAG_PAIRWISE)
+ action = MWL8K_ENCR_SET_KEY;
+ else
+ action = MWL8K_ENCR_SET_GROUP_KEY;
+
+ switch (key->cipher) {
+ case WLAN_CIPHER_SUITE_WEP40:
+ case WLAN_CIPHER_SUITE_WEP104:
+ if (!mwl8k_vif->wep_key_conf[idx].enabled) {
+ memcpy(mwl8k_vif->wep_key_conf[idx].key, key,
+ sizeof(*key) + key->keylen);
+ mwl8k_vif->wep_key_conf[idx].enabled = 1;
+ }
+
+ keymlen = 0;
+ action = MWL8K_ENCR_SET_KEY;
+ break;
+ case WLAN_CIPHER_SUITE_TKIP:
+ keymlen = MAX_ENCR_KEY_LENGTH + 2 * MIC_KEY_LENGTH;
+ break;
+ case WLAN_CIPHER_SUITE_CCMP:
+ keymlen = key->keylen;
+ break;
+ default:
+ rc = -ENOTSUPP;
+ goto done;
+ }
+
+ memcpy(cmd->key_material, key->key, keymlen);
+ cmd->action = cpu_to_le32(action);
+
+ rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header);
+done:
+ kfree(cmd);
+
+ return rc;
+}
+
+static int mwl8k_cmd_encryption_remove_key(struct ieee80211_hw *hw,
+ struct ieee80211_vif *vif,
+ u8 *addr,
+ struct ieee80211_key_conf *key)
+{
+ struct mwl8k_cmd_set_key *cmd;
+ int rc;
+ struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif);
+
+ cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
+ if (cmd == NULL)
+ return -ENOMEM;
+
+ rc = mwl8k_encryption_set_cmd_info(cmd, addr, key);
+ if (rc < 0)
+ goto done;
+
+ if (key->cipher == WLAN_CIPHER_SUITE_WEP40 ||
+ WLAN_CIPHER_SUITE_WEP104)
+ mwl8k_vif->wep_key_conf[key->keyidx].enabled = 0;
+
+ cmd->action = cpu_to_le32(MWL8K_ENCR_REMOVE_KEY);
+
+ rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header);
+done:
+ kfree(cmd);
+
+ return rc;
+}
+
+static int mwl8k_set_key(struct ieee80211_hw *hw,
+ enum set_key_cmd cmd_param,
+ struct ieee80211_vif *vif,
+ struct ieee80211_sta *sta,
+ struct ieee80211_key_conf *key)
+{
+ int rc = 0;
+ u8 encr_type;
+ u8 *addr;
+ struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif);
+
+ if (vif->type == NL80211_IFTYPE_STATION)
+ return -EOPNOTSUPP;
+
+ if (sta == NULL)
+ addr = hw->wiphy->perm_addr;
+ else
+ addr = sta->addr;
+
+ if (cmd_param == SET_KEY) {
+ key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
+ rc = mwl8k_cmd_encryption_set_key(hw, vif, addr, key);
+ if (rc)
+ goto out;
+
+ if ((key->cipher == WLAN_CIPHER_SUITE_WEP40)
+ || (key->cipher == WLAN_CIPHER_SUITE_WEP104))
+ encr_type = MWL8K_UPDATE_ENCRYPTION_TYPE_WEP;
+ else
+ encr_type = MWL8K_UPDATE_ENCRYPTION_TYPE_MIXED;
+
+ rc = mwl8k_cmd_update_encryption_enable(hw, vif, addr,
+ encr_type);
+ if (rc)
+ goto out;
+
+ mwl8k_vif->is_hw_crypto_enabled = true;
+
+ } else {
+ rc = mwl8k_cmd_encryption_remove_key(hw, vif, addr, key);
+
+ if (rc)
+ goto out;
+
+ mwl8k_vif->is_hw_crypto_enabled = false;
+
+ }
+out:
+ return rc;
+}
+
+/*
* CMD_UPDATE_STADB.
*/
struct ewc_ht_info {
@@ -4010,17 +4281,19 @@ static int mwl8k_sta_add(struct ieee80211_hw *hw,
{
struct mwl8k_priv *priv = hw->priv;
int ret;
+ int i;
+ struct mwl8k_vif *mwl8k_vif = MWL8K_VIF(vif);
+ struct ieee80211_key_conf *key;
if (!priv->ap_fw) {
ret = mwl8k_cmd_update_stadb_add(hw, vif, sta);
if (ret >= 0) {
MWL8K_STA(sta)->peer_id = ret;
- return 0;
+ ret = 0;
}
} else {
ret = mwl8k_cmd_set_new_stn_add(hw, vif, sta);
- return ret;
}
for (i = 0; i < NUM_WEP_KEYS; i++) {
@@ -4028,7 +4301,7 @@ static int mwl8k_sta_add(struct ieee80211_hw *hw,
if (mwl8k_vif->wep_key_conf[i].enabled)
mwl8k_set_key(hw, SET_KEY, vif, sta, key);
}
- return mwl8k_cmd_set_new_stn_add(hw, vif, sta);
+ return ret;
}
static int mwl8k_conf_tx(struct ieee80211_hw *hw, u16 queue,
@@ -4106,6 +4379,7 @@ static const struct ieee80211_ops mwl8k_ops = {
.bss_info_changed = mwl8k_bss_info_changed,
.prepare_multicast = mwl8k_prepare_multicast,
.configure_filter = mwl8k_configure_filter,
+ .set_key = mwl8k_set_key,
.set_rts_threshold = mwl8k_set_rts_threshold,
.sta_add = mwl8k_sta_add,
.sta_remove = mwl8k_sta_remove,
--
1.7.0.4
^ permalink raw reply related
* Compat-wireless release for 2010-12-30 is baked
From: Compat-wireless cronjob account @ 2010-12-30 20:04 UTC (permalink / raw)
To: linux-wireless
>From git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next
2c4665a..dc86c6c history -> origin/history
+ fd9ae9b...e635401 master -> origin/master (forced update)
b52e2a6..387c31c stable -> origin/stable
* [new tag] next-20101230 -> next-20101230
* [new tag] v2.6.37-rc8 -> v2.6.37-rc8
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
774936 - Total upstream lines of code being pulled
^ permalink raw reply
* Re: 2.6.37-rc7: Regression: b43: crashes in hwrng_register()
From: Mario 'BitKoenig' Holbe @ 2010-12-30 20:45 UTC (permalink / raw)
To: Larry Finger; +Cc: LKML, wireless, b43-dev
In-Reply-To: <4D1CD161.4040107@lwfinger.net>
[-- Attachment #1.1: Type: text/plain, Size: 1207 bytes --]
On Thu, Dec 30, 2010 at 12:37:21PM -0600, Larry Finger wrote:
> The head of the rng_list is damaged. It is initialized at compile time and
> should be OK. To help discover the order in which hwrng_register() is called,
> apply the attached patch. Run it once with commit 84c164a34ffe67908a installed,
> and once with it reverted.
All right, 3 dmesg excerpts attached...
2.6.37-rc7-vanilla.dmesg:
2.6.37-rc7 vanilla (i.e. with 84c164a34ffe67908a), crashing
via-rng is registered first, b43-rng second
2.6.37-rc7-without.dmesg:
2.6.37-rc7 with 84c164a34ffe67908a reverted, not crashing
b43-rng is registered first, via-rng second
2.6.37-rc7-without+modprobe.dmesg:
2.6.37-rc7 with 84c164a34ffe67908a reverted, b43 blacklisted and
manually modprobed after via-rng, crashing
via-rng is registered first, b43-rng second
Seems like the crash shows up when b43-rng is registered second, but not
when via-rng is registered second.
Btw.: `cat rng_available' does also not crash when via-rng is registered
second.
regards
Mario
--
> As Luke Leighton said once on samba-ntdom, "now, what was that about
> rebooting? that was so long ago, i had to look it up with man -k."
[-- Attachment #1.2: 2.6.37-rc7-vanilla.dmesg --]
[-- Type: text/plain, Size: 8087 bytes --]
[ 2.048695] b43-pci-bridge 0000:02:00.0: PCI INT A -> GSI 28 (level, low) -> IRQ 28
[ 2.048713] b43-pci-bridge 0000:02:00.0: setting latency timer to 64
...
[ 8.626419] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
[ 8.805909] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 8.806815] Registered led device: b43-phy0::tx
[ 8.806853] Registered led device: b43-phy0::rx
[ 8.806894] Registered led device: b43-phy0::radio
[ 8.806915] Broadcom 43xx driver loaded [ Features: PMLS, Firmware-ID: FW13 ]
[ 11.977267] VIA RNG detected
[ 11.977272] Calling hwrng_register
[ 11.977278] Pid: 889, comm: modprobe Not tainted 2.6.37-rc7-self #3
[ 11.977282] Call Trace:
[ 11.977295] [<f8f4e3ac>] ? hwrng_register+0x2c/0x14d [rng_core]
[ 11.977303] [<f9246023>] ? mod_init+0x23/0x3b [via_rng]
[ 11.977312] [<c1003069>] ? do_one_initcall+0x68/0x10f
[ 11.977323] [<c105f0d3>] ? sys_init_module+0xca5/0xe36
[ 11.977354] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
...
[ 24.752102] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
...
[ 30.292235] b43-pci-bridge 0000:02:00.0: PCI: Disallowing DAC for device
[ 30.292246] b43-phy0: DMA mask fallback from 64-bit to 32-bit
[ 30.312705] Calling hwrng_register
[ 30.312719] Pid: 1742, comm: NetworkManager Not tainted 2.6.37-rc7-self #3
[ 30.312727] Call Trace:
[ 30.312756] [<f8f4e3ac>] ? hwrng_register+0x2c/0x14d [rng_core]
[ 30.312799] [<f8fab870>] ? b43_wireless_core_init+0xd0c/0xdd6 [b43]
[ 30.312827] [<f8fabd67>] ? b43_op_start+0xf8/0x142 [b43]
[ 30.312866] [<f8c273da>] ? cfg80211_netdev_notifier_call+0x342/0x355 [cfg80211]
[ 30.312924] [<f8e8e889>] ? ieee80211_do_open+0xed/0x45f [mac80211]
[ 30.312956] [<f8e8de7a>] ? ieee80211_check_concurrent_iface+0x1c/0x135 [mac80211]
[ 30.312978] [<c1203247>] ? __dev_open+0x7d/0xa7
[ 30.312992] [<c1201c10>] ? __dev_change_flags+0x9a/0x10d
[ 30.313004] [<c120319f>] ? dev_change_flags+0x10/0x3b
[ 30.313020] [<c120d207>] ? do_setlink+0x23e/0x532
[ 30.313041] [<c129ced6>] ? schedule+0x579/0x5b6
[ 30.313052] [<c120d5cb>] ? rtnl_setlink+0xd0/0xe1
[ 30.313073] [<c114f000>] ? clear_user+0x2b/0x43
[ 30.313084] [<c120d4fb>] ? rtnl_setlink+0x0/0xe1
[ 30.313096] [<c120cd32>] ? rtnetlink_rcv_msg+0x186/0x19c
[ 30.313108] [<c120cbac>] ? rtnetlink_rcv_msg+0x0/0x19c
[ 30.313123] [<c121bda8>] ? netlink_rcv_skb+0x2d/0x72
[ 30.313134] [<c120cba6>] ? rtnetlink_rcv+0x18/0x1e
[ 30.313145] [<c121bbfc>] ? netlink_unicast+0xba/0x10e
[ 30.313156] [<c121c700>] ? netlink_sendmsg+0x23d/0x256
[ 30.313171] [<c11f53a6>] ? __sock_sendmsg+0x48/0x4e
[ 30.313181] [<c11f560f>] ? sock_sendmsg+0x78/0x8f
[ 30.313193] [<c11f560f>] ? sock_sendmsg+0x78/0x8f
[ 30.313207] [<c10cf5dd>] ? d_kill+0x38/0x3d
[ 30.313225] [<c11fd48c>] ? verify_iovec+0x3d/0x79
[ 30.313235] [<c11f5e0d>] ? sys_sendmsg+0x15f/0x1c1
[ 30.313247] [<c11f5a44>] ? sockfd_lookup_light+0x13/0x3f
[ 30.313258] [<c11f60a5>] ? sys_sendto+0xfd/0x121
[ 30.313273] [<c10079ee>] ? __switch_to+0x6f/0xe2
[ 30.313285] [<c129ced6>] ? schedule+0x579/0x5b6
[ 30.313296] [<c11f5ca3>] ? sys_recvmsg+0x3c/0x47
[ 30.313308] [<c11f707d>] ? sys_socketcall+0x17f/0x1cb
[ 30.313321] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
[ 30.313362] BUG: unable to handle kernel paging request at 60870667
[ 30.313372] IP: [<f8f4e3df>] hwrng_register+0x5f/0x14d [rng_core]
[ 30.313391] *pdpt = 0000000036c34001 *pde = 0000000000000000
[ 30.313403] Oops: 0000 [#1] SMP
[ 30.313411] last sysfs file: /sys/module/bluetooth/initstate
[ 30.313420] Modules linked in: l2cap crc16 parport_pc ppdev lp parport sbs sbshc power_meter pci_slot hed fan container acpi_cpufreq mperf cpufreq_conservative cpufreq_userspace cpufreq_stats cpufreq_powersave dm_crypt fuse loop eeprom via_cputemp i2c_dev nvram padlock_aes aes_i586 aes_generic padlock_sha sha256_generic sha1_generic via_rng msr cpuid snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss arc4 snd_pcm ecb snd_seq_midi snd_rawmidi snd_seq_midi_event b43 snd_seq snd_timer rng_core uvcvideo video snd_seq_device joydev mac80211 videodev ideapad_laptop output btusb battery processor bluetooth tpm_tis snd v4l1_compat ac tpm wmi power_supply cfg80211 soundcore snd_page_alloc tpm_bios rfkill button shpchp pcspkr i2c_viapro evdev i2c_core psmouse serio_raw pci_hotplug ext3 jbd mbcache raid10 raid456 async_raid6_recov async_pq raid6_pq async_xor xor async_memcpy async_tx raid1 raid0 multipath linear md_mod dm_mirror dm_region_hash dm_log dm_mod btrfs zlib_deflate crc32c libcrc32c sd_mod crc_t10dif ata_generic pata_via libata uhci_hcd ssb ehci_hcd tg3 via_sdmmc usbcore scsi_mod pcmcia thermal mmc_core pcmcia_core libphy thermal_sys nls_base [last unloaded: scsi_wait_scan]
[ 30.313670]
[ 30.313681] Pid: 1742, comm: NetworkManager Not tainted 2.6.37-rc7-self #3 MoutCook/20021,2959
[ 30.313692] EIP: 0060:[<f8f4e3df>] EFLAGS: 00010216 CPU: 0
[ 30.313706] EIP is at hwrng_register+0x5f/0x14d [rng_core]
[ 30.313715] EAX: 00000001 EBX: f4f13010 ECX: f8f4e589 EDX: f4f13035
[ 30.313725] ESI: 6087064b EDI: 00000000 EBP: 00000036 ESP: f4fe7b54
[ 30.313735] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 30.313745] Process NetworkManager (pid: 1742, ti=f4fe6000 task=f6d2e8a0 task.ti=f4fe6000)
[ 30.313753] Stack:
[ 30.313757] f4f12fc0 f4f13035 f8fab870 f4f13035 0000001f f8fc10bb f8fc09f0 f6dcce20
[ 30.313775] 0000000f f6dcac00 f6dcac00 f6f27400 f4f122c0 f4f10240 f4f12fc8 f8fabd67
[ 30.313793] f8c273da f4f122c0 f6ec0400 f8e9ee48 f6ec0000 f8e8e889 f8e8de7a 00000000
[ 30.313810] Call Trace:
[ 30.313835] [<f8fab870>] ? b43_wireless_core_init+0xd0c/0xdd6 [b43]
[ 30.313863] [<f8fabd67>] ? b43_op_start+0xf8/0x142 [b43]
[ 30.313889] [<f8c273da>] ? cfg80211_netdev_notifier_call+0x342/0x355 [cfg80211]
[ 30.313926] [<f8e8e889>] ? ieee80211_do_open+0xed/0x45f [mac80211]
[ 30.313958] [<f8e8de7a>] ? ieee80211_check_concurrent_iface+0x1c/0x135 [mac80211]
[ 30.313975] [<c1203247>] ? __dev_open+0x7d/0xa7
[ 30.313986] [<c1201c10>] ? __dev_change_flags+0x9a/0x10d
[ 30.313998] [<c120319f>] ? dev_change_flags+0x10/0x3b
[ 30.314011] [<c120d207>] ? do_setlink+0x23e/0x532
[ 30.314026] [<c129ced6>] ? schedule+0x579/0x5b6
[ 30.314037] [<c120d5cb>] ? rtnl_setlink+0xd0/0xe1
[ 30.314052] [<c114f000>] ? clear_user+0x2b/0x43
[ 30.314063] [<c120d4fb>] ? rtnl_setlink+0x0/0xe1
[ 30.314074] [<c120cd32>] ? rtnetlink_rcv_msg+0x186/0x19c
[ 30.314086] [<c120cbac>] ? rtnetlink_rcv_msg+0x0/0x19c
[ 30.314098] [<c121bda8>] ? netlink_rcv_skb+0x2d/0x72
[ 30.314109] [<c120cba6>] ? rtnetlink_rcv+0x18/0x1e
[ 30.314120] [<c121bbfc>] ? netlink_unicast+0xba/0x10e
[ 30.314132] [<c121c700>] ? netlink_sendmsg+0x23d/0x256
[ 30.314145] [<c11f53a6>] ? __sock_sendmsg+0x48/0x4e
[ 30.314155] [<c11f560f>] ? sock_sendmsg+0x78/0x8f
[ 30.314167] [<c11f560f>] ? sock_sendmsg+0x78/0x8f
[ 30.314179] [<c10cf5dd>] ? d_kill+0x38/0x3d
[ 30.314192] [<c11fd48c>] ? verify_iovec+0x3d/0x79
[ 30.314203] [<c11f5e0d>] ? sys_sendmsg+0x15f/0x1c1
[ 30.314214] [<c11f5a44>] ? sockfd_lookup_light+0x13/0x3f
[ 30.314225] [<c11f60a5>] ? sys_sendto+0xfd/0x121
[ 30.314237] [<c10079ee>] ? __switch_to+0x6f/0xe2
[ 30.314250] [<c129ced6>] ? schedule+0x579/0x5b6
[ 30.314261] [<c11f5ca3>] ? sys_recvmsg+0x3c/0x47
[ 30.314272] [<c11f707d>] ? sys_socketcall+0x17f/0x1cb
[ 30.314284] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
[ 30.314292] Code: 34 c8 8b 35 1c e6 f4 f8 59 83 ee 1c eb 1d 8b 13 8b 06 e8 84 06 20 c8 85 c0 75 0a be ef ff ff ff e9 d3 00 00 00 8b 76 1c 83 ee 1c <8b> 46 1c 0f 18 00 90 81 fe 00 e6 f4 f8 75 d4 83 3d 2c e8 f4 f8
[ 30.314376] EIP: [<f8f4e3df>] hwrng_register+0x5f/0x14d [rng_core] SS:ESP 0068:f4fe7b54
[ 30.314395] CR2: 0000000060870667
[ 30.314404] ---[ end trace f498f4a4e1f00415 ]---
[-- Attachment #1.3: 2.6.37-rc7-without.dmesg --]
[-- Type: text/plain, Size: 2834 bytes --]
[ 2.034921] b43-pci-bridge 0000:02:00.0: PCI INT A -> GSI 28 (level, low) -> IRQ 28
[ 2.034939] b43-pci-bridge 0000:02:00.0: setting latency timer to 64
...
[ 8.363363] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
[ 8.377768] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio2/input/input7
[ 8.563088] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 8.564034] Registered led device: b43-phy0::tx
[ 8.564073] Registered led device: b43-phy0::rx
[ 8.564111] Registered led device: b43-phy0::radio
[ 8.564115] Calling hwrng_register
[ 8.564121] Pid: 471, comm: modprobe Not tainted 2.6.37-rc7-self #4
[ 8.564124] Call Trace:
[ 8.564137] [<f8fa83ac>] ? hwrng_register+0x2c/0x14d [rng_core]
[ 8.564176] [<f8fe0b23>] ? b43_probe+0x9e5/0xa85 [b43]
[ 8.564189] [<c11047aa>] ? sysfs_find_dirent+0x25/0x36
[ 8.564195] [<c11049dc>] ? __sysfs_add_one+0x25/0x72
[ 8.564202] [<c1104fb5>] ? sysfs_addrm_finish+0x13/0x8f
[ 8.564208] [<c11050e6>] ? sysfs_add_one+0x10/0xc7
[ 8.564215] [<c1105506>] ? sysfs_do_create_link+0x34/0x150
[ 8.564246] [<f859948d>] ? ssb_device_probe+0x2c/0x47 [ssb]
[ 8.564258] [<c11d9954>] ? driver_probe_device+0x8c/0x110
[ 8.564264] [<c11d9a18>] ? __driver_attach+0x40/0x5b
[ 8.564273] [<c11d91b5>] ? bus_for_each_dev+0x37/0x5f
[ 8.564281] [<c11d980a>] ? driver_attach+0x11/0x13
[ 8.564287] [<c11d99d8>] ? __driver_attach+0x0/0x5b
[ 8.564293] [<c11d9530>] ? bus_add_driver+0x87/0x1bb
[ 8.564299] [<c1148c2a>] ? kset_find_obj_hinted+0x12/0x7d
[ 8.564317] [<f9000000>] ? b43_init+0x0/0x62 [b43]
[ 8.564323] [<c11d9c34>] ? driver_register+0x7a/0xd9
[ 8.564339] [<f9000000>] ? b43_init+0x0/0x62 [b43]
[ 8.564355] [<f9000026>] ? b43_init+0x26/0x62 [b43]
[ 8.564362] [<c1003069>] ? do_one_initcall+0x68/0x10f
[ 8.564372] [<c105f0d3>] ? sys_init_module+0xca5/0xe36
[ 8.564392] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
[ 8.564502] Broadcom 43xx driver loaded [ Features: PMLS, Firmware-ID: FW13 ]
...
[ 11.786812] VIA RNG detected
[ 11.786817] Calling hwrng_register
[ 11.786823] Pid: 776, comm: modprobe Not tainted 2.6.37-rc7-self #4
[ 11.786827] Call Trace:
[ 11.786840] [<f8fa83ac>] ? hwrng_register+0x2c/0x14d [rng_core]
[ 11.786848] [<f9202023>] ? mod_init+0x23/0x3b [via_rng]
[ 11.786858] [<c1003069>] ? do_one_initcall+0x68/0x10f
[ 11.786868] [<c105f0d3>] ? sys_init_module+0xca5/0xe36
[ 11.786899] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
...
[ 24.596098] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
...
[ 30.136244] b43-pci-bridge 0000:02:00.0: PCI: Disallowing DAC for device
[ 30.136257] b43-phy0: DMA mask fallback from 64-bit to 32-bit
[ 30.158623] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[-- Attachment #1.4: 2.6.37-rc7-without+modprobe.dmesg --]
[-- Type: text/plain, Size: 6817 bytes --]
[ 2.032560] b43-pci-bridge 0000:02:00.0: PCI INT A -> GSI 28 (level, low) -> IRQ 28
[ 2.032577] b43-pci-bridge 0000:02:00.0: setting latency timer to 64
...
[ 11.649390] VIA RNG detected
[ 11.649395] Calling hwrng_register
[ 11.649401] Pid: 745, comm: modprobe Not tainted 2.6.37-rc7-self #4
[ 11.649405] Call Trace:
[ 11.649415] [<f90b13ac>] ? hwrng_register+0x2c/0x14d [rng_core]
[ 11.649423] [<f90be023>] ? mod_init+0x23/0x3b [via_rng]
[ 11.649433] [<c1003069>] ? do_one_initcall+0x68/0x10f
[ 11.649443] [<c105f0d3>] ? sys_init_module+0xca5/0xe36
[ 11.649470] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
...
[ 92.861343] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
[ 92.986756] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 92.993027] Registered led device: b43-phy0::tx
[ 92.993696] Registered led device: b43-phy0::rx
[ 92.994271] Registered led device: b43-phy0::radio
[ 92.994278] Calling hwrng_register
[ 92.994284] Pid: 2622, comm: modprobe Not tainted 2.6.37-rc7-self #4
[ 92.994287] Call Trace:
[ 92.994312] [<f90b13ac>] ? hwrng_register+0x2c/0x14d [rng_core]
[ 92.994351] [<f84b4b23>] ? b43_probe+0x9e5/0xa85 [b43]
[ 92.994364] [<c11047aa>] ? sysfs_find_dirent+0x25/0x36
[ 92.994370] [<c11049dc>] ? __sysfs_add_one+0x25/0x72
[ 92.994377] [<c1104fb5>] ? sysfs_addrm_finish+0x13/0x8f
[ 92.994383] [<c11050e6>] ? sysfs_add_one+0x10/0xc7
[ 92.994390] [<c1105506>] ? sysfs_do_create_link+0x34/0x150
[ 92.994432] [<f850348d>] ? ssb_device_probe+0x2c/0x47 [ssb]
[ 92.994445] [<c11d9954>] ? driver_probe_device+0x8c/0x110
[ 92.994451] [<c11d9a18>] ? __driver_attach+0x40/0x5b
[ 92.994464] [<c11d91b5>] ? bus_for_each_dev+0x37/0x5f
[ 92.994476] [<c11d980a>] ? driver_attach+0x11/0x13
[ 92.994482] [<c11d99d8>] ? __driver_attach+0x0/0x5b
[ 92.994488] [<c11d9530>] ? bus_add_driver+0x87/0x1bb
[ 92.994495] [<c1148c2a>] ? kset_find_obj_hinted+0x12/0x7d
[ 92.994512] [<f8393000>] ? b43_init+0x0/0x62 [b43]
[ 92.994518] [<c11d9c34>] ? driver_register+0x7a/0xd9
[ 92.994534] [<f8393000>] ? b43_init+0x0/0x62 [b43]
[ 92.994549] [<f8393026>] ? b43_init+0x26/0x62 [b43]
[ 92.994556] [<c1003069>] ? do_one_initcall+0x68/0x10f
[ 92.994565] [<c105f0d3>] ? sys_init_module+0xca5/0xe36
[ 92.994608] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
[ 92.994627] BUG: unable to handle kernel paging request at 44b3442d
[ 92.994632] IP: [<f90b13df>] hwrng_register+0x5f/0x14d [rng_core]
[ 92.994642] *pdpt = 0000000033c0e001 *pde = 0000000000000000
[ 92.994648] Oops: 0000 [#1] SMP
[ 92.994652] last sysfs file: /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.0/ssb0:0/leds/b43-phy0::radio/uevent
[ 92.994658] Modules linked in: arc4 ecb b43(+) mac80211 cfg80211 uinput sco bnep rfcomm l2cap crc16 via drm parport_pc ppdev lp parport sbs sbshc power_meter pci_slot hed fan container acpi_cpufreq mperf cpufreq_conservative cpufreq_userspace cpufreq_stats cpufreq_powersave dm_crypt fuse loop eeprom via_cputemp i2c_dev nvram padlock_aes aes_i586 aes_generic padlock_sha sha256_generic sha1_generic via_rng rng_core msr cpuid snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_midi snd_rawmidi snd_seq_midi_event joydev uvcvideo snd_seq btusb videodev snd_timer bluetooth tpm_tis tpm snd_seq_device v4l1_compat ideapad_laptop tpm_bios battery ac i2c_viapro snd rfkill power_supply soundcore snd_page_alloc processor psmouse evdev video i2c_core serio_raw pcspkr shpchp wmi output button pci_hotplug ext3 jbd mbcache raid10 raid456 async_raid6_recov async_pq raid6_pq async_xor xor async_memcpy async_tx raid1 raid0 multipath linear md_mod dm_mirror dm_region_hash dm_log dm_mod btrfs zlib_deflate crc32c libcrc32c sd_mod crc_t10dif ata_generic uhci_hcd pata_via ehci_hcd libata ssb tg3 usbcore scsi_mod via_sdmmc pcmcia mmc_core pcmcia_core libphy thermal thermal_sys nls_base [last unloaded: scsi_wait_scan]
[ 92.994792]
[ 92.994798] Pid: 2622, comm: modprobe Not tainted 2.6.37-rc7-self #4 MoutCook/20021,2959
[ 92.994803] EIP: 0060:[<f90b13df>] EFLAGS: 00010206 CPU: 0
[ 92.994810] EIP is at hwrng_register+0x5f/0x14d [rng_core]
[ 92.994815] EAX: 00000001 EBX: f7143010 ECX: f90b1589 EDX: f7143035
[ 92.994819] ESI: 44b34411 EDI: f7142fc0 EBP: 00000000 ESP: f3c17e04
[ 92.994824] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[ 92.994829] Process modprobe (pid: 2622, ti=f3c16000 task=f3cba080 task.ti=f3c16000)
[ 92.994833] Stack:
[ 92.994836] f7143035 f3caec00 f84b4b23 f7143035 0000001f f84cae30 f84ca9f0 f3ced0d8
[ 92.994844] 2206017f f6d31c64 6161d6ee f4fa9f01 f3ced0d0 c11047aa f3d21210 f3c17e05
[ 92.994853] f3d21210 c11049dc c1104fb5 f4fa9e00 c11050e6 00000000 0000461c f6d31c00
[ 92.994862] Call Trace:
[ 92.994879] [<f84b4b23>] ? b43_probe+0x9e5/0xa85 [b43]
[ 92.994886] [<c11047aa>] ? sysfs_find_dirent+0x25/0x36
[ 92.994892] [<c11049dc>] ? __sysfs_add_one+0x25/0x72
[ 92.994898] [<c1104fb5>] ? sysfs_addrm_finish+0x13/0x8f
[ 92.994904] [<c11050e6>] ? sysfs_add_one+0x10/0xc7
[ 92.994910] [<c1105506>] ? sysfs_do_create_link+0x34/0x150
[ 92.994929] [<f850348d>] ? ssb_device_probe+0x2c/0x47 [ssb]
[ 92.994936] [<c11d9954>] ? driver_probe_device+0x8c/0x110
[ 92.994942] [<c11d9a18>] ? __driver_attach+0x40/0x5b
[ 92.994954] [<c11d91b5>] ? bus_for_each_dev+0x37/0x5f
[ 92.994967] [<c11d980a>] ? driver_attach+0x11/0x13
[ 92.994972] [<c11d99d8>] ? __driver_attach+0x0/0x5b
[ 92.994978] [<c11d9530>] ? bus_add_driver+0x87/0x1bb
[ 92.994984] [<c1148c2a>] ? kset_find_obj_hinted+0x12/0x7d
[ 92.995000] [<f8393000>] ? b43_init+0x0/0x62 [b43]
[ 92.995005] [<c11d9c34>] ? driver_register+0x7a/0xd9
[ 92.995021] [<f8393000>] ? b43_init+0x0/0x62 [b43]
[ 92.995036] [<f8393026>] ? b43_init+0x26/0x62 [b43]
[ 92.995042] [<c1003069>] ? do_one_initcall+0x68/0x10f
[ 92.995048] [<c105f0d3>] ? sys_init_module+0xca5/0xe36
[ 92.995086] [<c1008b1f>] ? sysenter_do_call+0x12/0x28
[ 92.995090] Code: 1e c8 8b 35 1c 16 0b f9 59 83 ee 1c eb 1d 8b 13 8b 06 e8 84 d6 09 c8 85 c0 75 0a be ef ff ff ff e9 d3 00 00 00 8b 76 1c 83 ee 1c <8b> 46 1c 0f 18 00 90 81 fe 00 16 0b f9 75 d4 83 3d 2c 18 0b f9
[ 92.995132] EIP: [<f90b13df>] hwrng_register+0x5f/0x14d [rng_core] SS:ESP 0068:f3c17e04
[ 92.995143] CR2: 0000000044b3442d
[ 92.995148] ---[ end trace 66162330d52e4fa4 ]---
[ 93.444122] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
[ 98.960305] b43-pci-bridge 0000:02:00.0: PCI: Disallowing DAC for device
[ 98.960316] b43-phy0: DMA mask fallback from 64-bit to 32-bit
[ 98.990133] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 482 bytes --]
^ permalink raw reply
* RE: [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged skbs
From: Winkler, Tomas @ 2010-12-30 21:00 UTC (permalink / raw)
To: Stephen Hemminger, Johannes Berg
Cc: davem@davemloft.net, netdev@vger.kernel.org,
linux-wireless@vger.kernel.org
In-Reply-To: <20101230110609.08b7ee38@nehalam>
> -----Original Message-----
> From: Stephen Hemminger [mailto:shemminger@vyatta.com]
> Sent: Thursday, December 30, 2010 9:06 PM
> To: Johannes Berg
> Cc: Winkler, Tomas; davem@davemloft.net; netdev@vger.kernel.org; linux-
> wireless@vger.kernel.org
> Subject: Re: [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged
> skbs
>
> On Thu, 30 Dec 2010 19:52:14 +0100
> Johannes Berg <johannes@sipsolutions.net> wrote:
>
> > On Thu, 2010-12-30 at 10:46 -0800, Stephen Hemminger wrote:
> >
> > > This doesn't look correct. The calculation of the offset doesn't look
> correct.
> > > Just following the skb_clone(), the skb_pull value is "offset".
> > > Also, the other checks return -EINVAL for incorrectly formed packet.
> > >
> > > --- a/net/bridge/br_multicast.c 2010-12-30 10:29:58.579510488 -0800
> > > +++ b/net/bridge/br_multicast.c 2010-12-30 10:43:27.273386691 -0800
> > > @@ -1464,6 +1464,9 @@ static int br_multicast_ipv6_rcv(struct
> > > if (offset < 0 || nexthdr != IPPROTO_ICMPV6)
> > > return 0;
> > >
> > > + if (!pskb_may_pull(skb, offset))
> > > + return -EINVAL;
> > > +
> > > /* Okay, we found ICMPv6 header */
> > > skb2 = skb_clone(skb, GFP_ATOMIC);
> > > if (!skb2)
> >
> > Wouldn't that make more sense after the clone anyway? But if you look at
> > my email, you'll find that there's potentially, and conditionally, more
> > stuff that will be read from the skb's header, which hasn't necessarily
> > been pulled in, so I think this still won't fix all the issues.
> >
> > Seeing how this only affects some ICMPv6 packets, maybe we should just
> > use skb_copy() instead?
>
> It comes out cleaner, and the check can be simplified.
>
> --- a/net/bridge/br_multicast.c 2010-12-30 10:47:12.031733855 -0800
> +++ b/net/bridge/br_multicast.c 2010-12-30 11:00:12.135801266 -0800
> @@ -1465,19 +1465,19 @@ static int br_multicast_ipv6_rcv(struct
> return 0;
>
> /* Okay, we found ICMPv6 header */
> - skb2 = skb_clone(skb, GFP_ATOMIC);
> + skb2 = skb_copy(skb, GFP_ATOMIC);
> if (!skb2)
> return -ENOMEM;
>
> + err = -EINVAL;
> + if (skb2->len < offset + sizeof(*icmp6h))
> + goto out;
> +
> len -= offset - skb_network_offset(skb2);
>
> __skb_pull(skb2, offset);
> skb_reset_transport_header(skb2);
>
> - err = -EINVAL;
> - if (!pskb_may_pull(skb2, sizeof(*icmp6h)))
> - goto out;
> -
> icmp6h = icmp6_hdr(skb2);
>
> switch (icmp6h->icmp6_type) {
>
>
Sorry for dump question but isn't there performance penalty on using skb_copy vs. skb_clone?
Anyhow Below is a code snippet from ip6_input.c so you probably would want to fix it all over.
BTW offset and the pointer arithmetic really gives the same number +1, I'm not surly why the original author would thought it be safer than just using offset.
offset = ipv6_skip_exthdr(skb, sizeof(*hdr),
&nexthdr);
if (offset < 0)
goto out;
if (nexthdr != IPPROTO_ICMPV6)
goto out;
if (!pskb_may_pull(skb, (skb_network_header(skb) +
offset + 1 - skb->data)))
goto out;
icmp6 = (struct icmp6hdr *)(skb_network_header(skb) + offset);
Thanks
Tomas
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
^ permalink raw reply
* [PATCH] compat-wireless: fix driver-select for iwl3945/iwlagn
From: David Ward @ 2010-12-30 21:42 UTC (permalink / raw)
To: linux-wireless
The iwl3945/iwlagn drivers were never built when choosing the "intel"
or "iwlwifi" options with the driver-select script. (Note that this
currently affects all stable releases of compat-wireless as well.)
Signed-off-by: David Ward <david.ward@ll.mit.edu>
---
scripts/driver-select | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/driver-select b/scripts/driver-select
index 3989b9f..0d5a38b 100755
--- a/scripts/driver-select
+++ b/scripts/driver-select
@@ -318,13 +318,13 @@ case $1 in
disable_var_01
;;
intel)
- select_drivers CONFIG_IWLWIFI \
+ select_drivers CONFIG_COMPAT_IWLWIFI \
CONFIG_IPW
disable_staging
disable_var
;;
iwlwifi)
- select_driver CONFIG_IWLWIFI
+ select_driver CONFIG_COMPAT_IWLWIFI
disable_staging
disable_var_01
;;
--
1.7.1
^ permalink raw reply related
* Re: wl1271: how to use without runtime pm
From: Sergey Matyukevich @ 2010-12-30 22:08 UTC (permalink / raw)
To: Ohad Ben-Cohen; +Cc: Luciano Coelho, linux-wireless
In-Reply-To: <AANLkTim55FJ_cBE1M7HmhVagfphntZZBLSs9NjTmK_F+@mail.gmail.com>
On Wed, 29 Dec 2010 23:22:05 +0200
Ohad Ben-Cohen <ohad@wizery.com> wrote:
> On Wed, Dec 29, 2010 at 11:07 PM, Sergey Matyukevich
> <geomatsi@gmail.com> wrote:
> > So the question is: what is the proper use of wl1271 driver in the
> > case when wl1271 card is powered all the time ?
>
> The wl1271 driver assumes it can control the power of the card.
>
> If your card's power is always on, you will not be able to toggle the
> interface down and up (as you have experienced).
>
> It might be possible to change the driver around this "limitation",
> but I'm not sure anyone has ever really tried.
A simple solution which comes to mind would be to perform some kind of
'complete soft reset procedure' for wl1271 card in the beginning of the
function 'wl1271_op_add_interface'. But I guess such a feature is not
available for this card. Qtherwise it would be already implemented by
Luciano and his colleagues.
Thanks,
Sergey
^ permalink raw reply
* RE: [PATCH net-2.6] bridge: fix br_multicast_ipv6_rcv for paged skbs
From: Stephen Hemminger @ 2010-12-30 23:06 UTC (permalink / raw)
To: Winkler, Tomas, Stephen Hemminger, Johannes Berg
Cc: davem@davemloft.net, netdev@vger.kernel.org ,
linux-wireless@vger.kernel.org
QWx0aG91Z2ggY29weSBpcyBzbG93ZXIgZm9yIGxhcmdlIHBhY2tldHMsIHRoaXMgaXMgYSBub24g
cGVyZm9ybWFuY2UgcGF0aC4gVGhlIGNvZGUgaW4gcXVlc3Rpb24gaXMgZm9yIGJyaWRnZWQgbXVs
dGljYXN0IElwdjYgSUNNUCBwYWNrZXRzLiBUaGlzIGNhc2UgaXMgc28gdW5jcml0aWNhbCBpdCBj
b3VsZCBiZSBkb25lIGluIEJBU0lDIGFuZCBubyBvbmUgY291bGQgcG9zc2libHkgY2FyZSEKCiJX
aW5rbGVyLCBUb21hcyIgPHRvbWFzLndpbmtsZXJAaW50ZWwuY29tPiB3cm90ZToKCj4KPgo+PiAt
LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBTdGVwaGVuIEhlbW1pbmdlciBbbWFp
bHRvOnNoZW1taW5nZXJAdnlhdHRhLmNvbV0KPj4gU2VudDogVGh1cnNkYXksIERlY2VtYmVyIDMw
LCAyMDEwIDk6MDYgUE0KPj4gVG86IEpvaGFubmVzIEJlcmcKPj4gQ2M6IFdpbmtsZXIsIFRvbWFz
OyBkYXZlbUBkYXZlbWxvZnQubmV0OyBuZXRkZXZAdmdlci5rZXJuZWwub3JnOyBsaW51eC0KPj4g
d2lyZWxlc3NAdmdlci5rZXJuZWwub3JnCj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggbmV0LTIuNl0g
YnJpZGdlOiBmaXggYnJfbXVsdGljYXN0X2lwdjZfcmN2IGZvciBwYWdlZAo+PiBza2JzCj4+IAo+
PiBPbiBUaHUsIDMwIERlYyAyMDEwIDE5OjUyOjE0ICswMTAwCj4+IEpvaGFubmVzIEJlcmcgPGpv
aGFubmVzQHNpcHNvbHV0aW9ucy5uZXQ+IHdyb3RlOgo+PiAKPj4gPiBPbiBUaHUsIDIwMTAtMTIt
MzAgYXQgMTA6NDYgLTA4MDAsIFN0ZXBoZW4gSGVtbWluZ2VyIHdyb3RlOgo+PiA+Cj4+ID4gPiBU
aGlzIGRvZXNuJ3QgbG9vayBjb3JyZWN0LiBUaGUgY2FsY3VsYXRpb24gb2YgdGhlIG9mZnNldCBk
b2Vzbid0IGxvb2sKPj4gY29ycmVjdC4KPj4gPiA+IEp1c3QgZm9sbG93aW5nIHRoZSBza2JfY2xv
bmUoKSwgdGhlIHNrYl9wdWxsIHZhbHVlIGlzICJvZmZzZXQiLgo+PiA+ID4gQWxzbywgdGhlIG90
aGVyIGNoZWNrcyByZXR1cm4gLUVJTlZBTCBmb3IgaW5jb3JyZWN0bHkgZm9ybWVkIHBhY2tldC4K
Pj4gPiA+Cj4+ID4gPiAtLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCTIwMTAtMTItMzAg
MTA6Mjk6NTguNTc5NTEwNDg4IC0wODAwCj4+ID4gPiArKysgYi9uZXQvYnJpZGdlL2JyX211bHRp
Y2FzdC5jCTIwMTAtMTItMzAgMTA6NDM6MjcuMjczMzg2NjkxIC0wODAwCj4+ID4gPiBAQCAtMTQ2
NCw2ICsxNDY0LDkgQEAgc3RhdGljIGludCBicl9tdWx0aWNhc3RfaXB2Nl9yY3Yoc3RydWN0Cj4+
ID4gPiAgCWlmIChvZmZzZXQgPCAwIHx8IG5leHRoZHIgIT0gSVBQUk9UT19JQ01QVjYpCj4+ID4g
PiAgCQlyZXR1cm4gMDsKPj4gPiA+Cj4+ID4gPiArCWlmICghcHNrYl9tYXlfcHVsbChza2IsIG9m
ZnNldCkpCj4+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPj4gPiA+ICsKPj4gPiA+ICAJLyogT2th
eSwgd2UgZm91bmQgSUNNUHY2IGhlYWRlciAqLwo+PiA+ID4gIAlza2IyID0gc2tiX2Nsb25lKHNr
YiwgR0ZQX0FUT01JQyk7Cj4+ID4gPiAgCWlmICghc2tiMikKPj4gPgo+PiA+IFdvdWxkbid0IHRo
YXQgbWFrZSBtb3JlIHNlbnNlIGFmdGVyIHRoZSBjbG9uZSBhbnl3YXk/IEJ1dCBpZiB5b3UgbG9v
ayBhdAo+PiA+IG15IGVtYWlsLCB5b3UnbGwgZmluZCB0aGF0IHRoZXJlJ3MgcG90ZW50aWFsbHks
IGFuZCBjb25kaXRpb25hbGx5LCBtb3JlCj4+ID4gc3R1ZmYgdGhhdCB3aWxsIGJlIHJlYWQgZnJv
bSB0aGUgc2tiJ3MgaGVhZGVyLCB3aGljaCBoYXNuJ3QgbmVjZXNzYXJpbHkKPj4gPiBiZWVuIHB1
bGxlZCBpbiwgc28gSSB0aGluayB0aGlzIHN0aWxsIHdvbid0IGZpeCBhbGwgdGhlIGlzc3Vlcy4K
Pj4gPgo+PiA+IFNlZWluZyBob3cgdGhpcyBvbmx5IGFmZmVjdHMgc29tZSBJQ01QdjYgcGFja2V0
cywgbWF5YmUgd2Ugc2hvdWxkIGp1c3QKPj4gPiB1c2Ugc2tiX2NvcHkoKSBpbnN0ZWFkPwo+PiAK
Pj4gSXQgY29tZXMgb3V0IGNsZWFuZXIsIGFuZCB0aGUgY2hlY2sgY2FuIGJlIHNpbXBsaWZpZWQu
Cj4+IAo+PiAtLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jCTIwMTAtMTItMzAgMTA6NDc6
MTIuMDMxNzMzODU1IC0wODAwCj4+ICsrKyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMJMjAx
MC0xMi0zMCAxMTowMDoxMi4xMzU4MDEyNjYgLTA4MDAKPj4gQEAgLTE0NjUsMTkgKzE0NjUsMTkg
QEAgc3RhdGljIGludCBicl9tdWx0aWNhc3RfaXB2Nl9yY3Yoc3RydWN0Cj4+ICAJCXJldHVybiAw
Owo+PiAKPj4gIAkvKiBPa2F5LCB3ZSBmb3VuZCBJQ01QdjYgaGVhZGVyICovCj4+IC0Jc2tiMiA9
IHNrYl9jbG9uZShza2IsIEdGUF9BVE9NSUMpOwo+PiArCXNrYjIgPSBza2JfY29weShza2IsIEdG
UF9BVE9NSUMpOwo+PiAgCWlmICghc2tiMikKPj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4+IAo+PiAr
CWVyciA9IC1FSU5WQUw7Cj4+ICsJaWYgKHNrYjItPmxlbiA8IG9mZnNldCArIHNpemVvZigqaWNt
cDZoKSkKPj4gKwkJZ290byBvdXQ7Cj4+ICsKPj4gIAlsZW4gLT0gb2Zmc2V0IC0gc2tiX25ldHdv
cmtfb2Zmc2V0KHNrYjIpOwo+PiAKPj4gIAlfX3NrYl9wdWxsKHNrYjIsIG9mZnNldCk7Cj4+ICAJ
c2tiX3Jlc2V0X3RyYW5zcG9ydF9oZWFkZXIoc2tiMik7Cj4+IAo+PiAtCWVyciA9IC1FSU5WQUw7
Cj4+IC0JaWYgKCFwc2tiX21heV9wdWxsKHNrYjIsIHNpemVvZigqaWNtcDZoKSkpCj4+IC0JCWdv
dG8gb3V0Owo+PiAtCj4+ICAJaWNtcDZoID0gaWNtcDZfaGRyKHNrYjIpOwo+PiAKPj4gIAlzd2l0
Y2ggKGljbXA2aC0+aWNtcDZfdHlwZSkgewo+PiAKPj4KPlNvcnJ5IGZvciBkdW1wIHF1ZXN0aW9u
IGJ1dCBpc24ndCB0aGVyZSBwZXJmb3JtYW5jZSBwZW5hbHR5IG9uIHVzaW5nIHNrYl9jb3B5IHZz
LiBza2JfY2xvbmU/Cj4KPkFueWhvdyBCZWxvdyBpcyBhIGNvZGUgc25pcHBldCBmcm9tIGlwNl9p
bnB1dC5jIHNvIHlvdSBwcm9iYWJseSB3b3VsZCB3YW50IHRvIGZpeCBpdCBhbGwgb3Zlci4gCj5C
VFcgb2Zmc2V0IGFuZCB0aGUgcG9pbnRlciBhcml0aG1ldGljIHJlYWxseSBnaXZlcyB0aGUgc2Ft
ZSBudW1iZXIgKzEsIEknbSBub3Qgc3VybHkgd2h5IHRoZSBvcmlnaW5hbCBhdXRob3Igd291bGQg
dGhvdWdodCBpdCBiZSBzYWZlciB0aGFuIGp1c3QgdXNpbmcgb2Zmc2V0Lgo+Cj4JCQkJCW9mZnNl
dCA9IGlwdjZfc2tpcF9leHRoZHIoc2tiLCBzaXplb2YoKmhkciksCj4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5leHRoZHIpOwo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgMCkKPiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPiAKPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKG5leHRoZHIgIT0gSVBQUk9UT19JQ01QVjYpCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gCj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghcHNrYl9tYXlfcHVsbChza2IsIChza2JfbmV0d29y
a19oZWFkZXIoc2tiKSArCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvZmZzZXQgKyAxIC0gc2tiLT5kYXRhKSkpCj4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gCj4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGljbXA2ID0gKHN0cnVjdCBpY21wNmhkciAqKShza2JfbmV0d29ya19oZWFkZXIo
c2tiKSArIG9mZnNldCk7Cj4KPgo+Cj5UaGFua3MKPlRvbWFzCj4KPgo+LS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj5J
bnRlbCBJc3JhZWwgKDc0KSBMaW1pdGVkCj4KPlRoaXMgZS1tYWlsIGFuZCBhbnkgYXR0YWNobWVu
dHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvcgo+dGhlIHNvbGUgdXNlIG9m
IHRoZSBpbnRlbmRlZCByZWNpcGllbnQocykuIEFueSByZXZpZXcgb3IgZGlzdHJpYnV0aW9uCj5i
eSBvdGhlcnMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4gSWYgeW91IGFyZSBub3QgdGhlIGludGVu
ZGVkCj5yZWNpcGllbnQsIHBsZWFzZSBjb250YWN0IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBhbGwg
Y29waWVzLgo+Cg==
^ permalink raw reply
* [PATCH 01/15]arch:m68k:ifpsp060:src:fpsp.S Typo change diable to disable.
From: Justin P. Mattock @ 2010-12-30 23:07 UTC (permalink / raw)
To: trivial
Cc: linux-m68k, linux-kernel, netdev, ivtv-devel, linux-media,
linux-wireless, linux-scsi, spi-devel-general, devel, linux-usb,
Justin P. Mattock
The below patch fixes a typo "diable" to "disable". Please let me know if this
is correct or not.
Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
---
arch/m68k/ifpsp060/src/fpsp.S | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/m68k/ifpsp060/src/fpsp.S b/arch/m68k/ifpsp060/src/fpsp.S
index 73613b5..26e85e2 100644
--- a/arch/m68k/ifpsp060/src/fpsp.S
+++ b/arch/m68k/ifpsp060/src/fpsp.S
@@ -3881,7 +3881,7 @@ _fpsp_fline:
# FP Unimplemented Instruction stack frame and jump to that entry
# point.
#
-# but, if the FPU is disabled, then we need to jump to the FPU diabled
+# but, if the FPU is disabled, then we need to jump to the FPU disabled
# entry point.
movc %pcr,%d0
btst &0x1,%d0
--
1.6.5.2.180.gc5b3e
^ permalink raw reply related
* [PATCH 02/15]drivers:spi:dw_spi.c Typo change diable to disable.
From: Justin P. Mattock @ 2010-12-30 23:07 UTC (permalink / raw)
To: trivial
Cc: linux-m68k, linux-kernel, netdev, ivtv-devel, linux-media,
linux-wireless, linux-scsi, spi-devel-general, devel, linux-usb,
Justin P. Mattock
In-Reply-To: <1293750484-1161-1-git-send-email-justinmattock@gmail.com>
The below patch fixes a typo "diable" to "disable". Please let me know if this
is correct or not.
Signed-off-by: Justin P. Mattock <justinmattock@gmail.com>
---
drivers/spi/dw_spi.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/spi/dw_spi.c b/drivers/spi/dw_spi.c
index 0838c79..7c3cf21 100644
--- a/drivers/spi/dw_spi.c
+++ b/drivers/spi/dw_spi.c
@@ -592,7 +592,7 @@ static void pump_transfers(unsigned long data)
spi_set_clk(dws, clk_div ? clk_div : chip->clk_div);
spi_chip_sel(dws, spi->chip_select);
- /* Set the interrupt mask, for poll mode just diable all int */
+ /* Set the interrupt mask, for poll mode just disable all int */
spi_mask_intr(dws, 0xff);
if (imask)
spi_umask_intr(dws, imask);
--
1.6.5.2.180.gc5b3e
^ 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