* [PATCH 12/12] wireless: rtl818x: remove unnecessary pci_set_drvdata()
From: Jingoo Han @ 2013-09-10 11:32 UTC (permalink / raw)
To: 'John W. Linville'; +Cc: linux-wireless, 'Jingoo Han'
In-Reply-To: <00b101ceae16$ecb87c30$c6297490$%han@samsung.com>
The driver core clears the driver data to NULL after device_release
or on probe failure. Thus, it is not needed to manually clear the
device driver data to NULL.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
drivers/net/wireless/rtl818x/rtl8180/dev.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/net/wireless/rtl818x/rtl8180/dev.c b/drivers/net/wireless/rtl818x/rtl8180/dev.c
index fc207b2..a91506b 100644
--- a/drivers/net/wireless/rtl818x/rtl8180/dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c
@@ -1122,7 +1122,6 @@ static int rtl8180_probe(struct pci_dev *pdev,
iounmap(priv->map);
err_free_dev:
- pci_set_drvdata(pdev, NULL);
ieee80211_free_hw(dev);
err_free_reg:
--
1.7.10.4
^ permalink raw reply related
* Fwd: brcmsmac follow up
From: Arend van Spriel @ 2013-09-10 13:02 UTC (permalink / raw)
To: Rafał Miłecki, Hauke Mehrtens; +Cc: Tod Jackson, linux-wireless
In-Reply-To: <CAHgOGU1jPZraWeS2gvhBumL494Z0dEmN=xwvAXfvM9Rs6rKJhg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1336 bytes --]
Hi Rafał, Hauke,
I got a report of another issue, which was introduced by your commit
commit aa51e598d04c6acf5477934cd6383f5a17ce9029
Author: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat Aug 24 00:32:31 2013 +0200
brcmsmac: use bcma PCIe up and down functions
replace the calls to bcma_core_pci_extend_L1timer() by calls to the
newly introduced bcma_core_pci_ip() and bcma_core_pci_down()
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
The call to bcma_core_pci_up() ends up in bcma_pcie_mdio_read() which
does a usleep_range(). However, brcmsmac is in atomic context during
this call so we get a warning. I am in doubt on how to resolve this.
Should we require drivers to call this (low-level) function from
non-atomic context or not?
Regards,
Arend
-------- Original Message --------
Subject: brcmsmac follow up
Date: Mon, 9 Sep 2013 13:06:16 -0700
From: Tod Jackson <tod.jackson@gmail.com>
To: brcm80211-dev-list <brcm80211-dev-list@broadcom.com>
This is a follow-up to my brcmsmac bug report from just a bit ago.
I tested the wireless-testing tree that has a bcma commit about half
an hour ago, and internet works, but there are a bunch of backtraces.
I've attached the full dmesg.
[-- Attachment #2: dmesg-wireless-testing.txt --]
[-- Type: text/plain, Size: 80162 bytes --]
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.11.0-wl (root@graveyard) (gcc version 4.7.3 (exherbo gcc-4.7.3) ) #1 SMP PREEMPT Mon Sep 9 12:44:14 PDT 2013
[ 0.000000] Command line: BOOT_IMAGE=/boot/linux-wireless-testing root=/dev/sda1 ro loglevel=3
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009cfff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009d000-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007b63efff] usable
[ 0.000000] BIOS-e820: [mem 0x000000007b63f000-0x000000007b6befff] reserved
[ 0.000000] BIOS-e820: [mem 0x000000007b6bf000-0x000000007b7befff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x000000007b7bf000-0x000000007b7fefff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x000000007b7ff000-0x000000007b7fffff] usable
[ 0.000000] BIOS-e820: [mem 0x000000007b800000-0x000000007fffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000feb00000-0x00000000feb03fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed13fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed18000-0x00000000fed19fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed1b000-0x00000000fed1ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ffe00000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x0000000177ffffff] usable
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.6 present.
[ 0.000000] DMI: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] No AGP bridge found
[ 0.000000] e820: last_pfn = 0x178000 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-BFFFF uncachable
[ 0.000000] C0000-EFFFF write-through
[ 0.000000] F0000-FFFFF write-combining
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] 0 base 000000000 mask FC0000000 write-back
[ 0.000000] 1 base 0FFE00000 mask FFFE00000 write-protect
[ 0.000000] 2 base 040000000 mask FC0000000 write-back
[ 0.000000] 3 base 07C000000 mask FFC000000 uncachable
[ 0.000000] 4 base 07B800000 mask FFF800000 uncachable
[ 0.000000] 5 base 100000000 mask F80000000 write-back
[ 0.000000] 6 base 178000000 mask FF8000000 uncachable
[ 0.000000] 7 disabled
[ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[ 0.000000] e820: last_pfn = 0x7b800 max_arch_pfn = 0x400000000
[ 0.000000] Scanning 1 areas for low memory corruption
[ 0.000000] Base memory trampoline at [ffff880000097000] 97000 size 24576
[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[ 0.000000] [mem 0x00000000-0x000fffff] page 4k
[ 0.000000] BRK [0x01ea6000, 0x01ea6fff] PGTABLE
[ 0.000000] BRK [0x01ea7000, 0x01ea7fff] PGTABLE
[ 0.000000] BRK [0x01ea8000, 0x01ea8fff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0x177e00000-0x177ffffff]
[ 0.000000] [mem 0x177e00000-0x177ffffff] page 2M
[ 0.000000] BRK [0x01ea9000, 0x01ea9fff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0x174000000-0x177dfffff]
[ 0.000000] [mem 0x174000000-0x177dfffff] page 2M
[ 0.000000] init_memory_mapping: [mem 0x100000000-0x173ffffff]
[ 0.000000] [mem 0x100000000-0x173ffffff] page 2M
[ 0.000000] BRK [0x01eaa000, 0x01eaafff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0x00100000-0x7b63efff]
[ 0.000000] [mem 0x00100000-0x001fffff] page 4k
[ 0.000000] [mem 0x00200000-0x7b5fffff] page 2M
[ 0.000000] [mem 0x7b600000-0x7b63efff] page 4k
[ 0.000000] init_memory_mapping: [mem 0x7b7ff000-0x7b7fffff]
[ 0.000000] [mem 0x7b7ff000-0x7b7fffff] page 4k
[ 0.000000] ACPI: RSDP 00000000000fe020 00024 (v02 ALWARE)
[ 0.000000] ACPI: XSDT 000000007b7fe120 0008C (v01 ALWARE ALIENWRE 00000001 01000013)
[ 0.000000] ACPI: FACP 000000007b7fc000 000F4 (v04 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: DSDT 000000007b7ee000 0A137 (v02 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: FACS 000000007b75d000 00040
[ 0.000000] ACPI: ASF! 000000007b7fd000 000A5 (v32 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: HPET 000000007b7fb000 00038 (v01 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: APIC 000000007b7fa000 0008C (v02 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: MCFG 000000007b7f9000 0003C (v01 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: SLIC 000000007b7ed000 00176 (v01 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: BOOT 000000007b7e9000 00028 (v01 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: ASPT 000000007b7e6000 00034 (v04 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: WDAT 000000007b7e5000 00224 (v01 ALWARE ALIENWRE 00000001 ASL 01000013)
[ 0.000000] ACPI: OSFR 000000007b7e4000 00074 (v01 ALWARE ALIENWRE 27D60B15 ASL 01000013)
[ 0.000000] ACPI: DMAR 000000007b7e3000 000B8 (v01 INTEL CP_DALE 00000001 INTL 00000001)
[ 0.000000] ACPI: SSDT 000000007b7e2000 009F1 (v01 PmRef CpuPm 00003000 INTL 20051117)
[ 0.000000] ACPI: SSDT 000000007b7df000 0238A (v01 NvdRef NvdTabl 00001000 INTL 20051117)
[ 0.000000] ACPI: Local APIC address 0xfee00000
[ 0.000000] No NUMA configuration found
[ 0.000000] Faking a node at [mem 0x0000000000000000-0x0000000177ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x177ffffff]
[ 0.000000] NODE_DATA [mem 0x177ffa000-0x177ffdfff]
[ 0.000000] [ffffea0000000000-ffffea0005dfffff] PMD -> [ffff880173800000-ffff8801775fffff] on node 0
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
[ 0.000000] DMA32 [mem 0x01000000-0xffffffff]
[ 0.000000] Normal [mem 0x100000000-0x177ffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00001000-0x0009cfff]
[ 0.000000] node 0: [mem 0x00100000-0x7b63efff]
[ 0.000000] node 0: [mem 0x7b7ff000-0x7b7fffff]
[ 0.000000] node 0: [mem 0x100000000-0x177ffffff]
[ 0.000000] On node 0 totalpages: 996828
[ 0.000000] DMA zone: 64 pages used for memmap
[ 0.000000] DMA zone: 21 pages reserved
[ 0.000000] DMA zone: 3996 pages, LIFO batch:0
[ 0.000000] DMA32 zone: 7833 pages used for memmap
[ 0.000000] DMA32 zone: 501312 pages, LIFO batch:31
[ 0.000000] Normal zone: 7680 pages used for memmap
[ 0.000000] Normal zone: 491520 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[0x04] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x05] enabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x00] disabled)
[ 0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x00] disabled)
[ 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] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[ 0.000000] smpboot: Allowing 8 CPUs, 4 hotplug CPUs
[ 0.000000] nr_irqs_gsi: 40
[ 0.000000] PM: Registered nosave memory: [mem 0x0009d000-0x0009ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x7b63f000-0x7b6befff]
[ 0.000000] PM: Registered nosave memory: [mem 0x7b6bf000-0x7b7befff]
[ 0.000000] PM: Registered nosave memory: [mem 0x7b7bf000-0x7b7fefff]
[ 0.000000] PM: Registered nosave memory: [mem 0x7b800000-0x7fffffff]
[ 0.000000] PM: Registered nosave memory: [mem 0x80000000-0xdfffffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xe0000000-0xefffffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xf0000000-0xfeafffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfeb00000-0xfeb03fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfeb04000-0xfebfffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfec01000-0xfed0ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed10000-0xfed13fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed14000-0xfed17fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed18000-0xfed19fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed1a000-0xfed1afff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed1b000-0xfed1ffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfed20000-0xfedfffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[ 0.000000] PM: Registered nosave memory: [mem 0xfee01000-0xffdfffff]
[ 0.000000] PM: Registered nosave memory: [mem 0xffe00000-0xffffffff]
[ 0.000000] e820: [mem 0x80000000-0xdfffffff] available for PCI devices
[ 0.000000] setup_percpu: NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:8 nr_node_ids:1
[ 0.000000] PERCPU: Embedded 27 pages/cpu @ffff880177c00000 s80064 r8192 d22336 u262144
[ 0.000000] pcpu-alloc: s80064 r8192 d22336 u262144 alloc=1*2097152
[ 0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7
[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 981230
[ 0.000000] Policy zone: Normal
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/linux-wireless-testing root=/dev/sda1 ro loglevel=3
[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.000000] Checking aperture...
[ 0.000000] No AGP bridge found
[ 0.000000] Memory: 3841668K/3987312K available (6841K kernel code, 722K rwdata, 2232K rodata, 1004K init, 952K bss, 145644K reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=8.
[ 0.000000] NR_IRQS:4352 nr_irqs:744 16
[ 0.000000] Console: colour VGA+ 80x25
[ 0.000000] console [tty0] enabled
[ 0.000000] hpet clockevent registered
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.001000] tsc: Detected 1064.054 MHz processor
[ 0.000005] Calibrating delay loop (skipped), value calculated using timer frequency.. 2128.10 BogoMIPS (lpj=1064054)
[ 0.000008] pid_max: default: 32768 minimum: 301
[ 0.000039] Security Framework initialized
[ 0.000397] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[ 0.001804] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[ 0.002425] Mount-cache hash table entries: 256
[ 0.002693] Initializing cgroup subsys freezer
[ 0.002722] CPU: Physical Processor ID: 0
[ 0.002724] CPU: Processor Core ID: 0
[ 0.002731] mce: CPU supports 9 MCE banks
[ 0.002743] CPU0: Thermal monitoring handled by SMI
[ 0.002757] Last level iTLB entries: 4KB 512, 2MB 7, 4MB 7
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32
tlb_flushall_shift: 6
[ 0.002929] Freeing SMP alternatives memory: 20K (ffffffff81db1000 - ffffffff81db6000)
[ 0.002933] ACPI: Core revision 20130517
[ 0.016163] ACPI: All ACPI Tables successfully acquired
[ 1.269003] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[ 1.279005] smpboot: CPU0: Intel(R) Core(TM) i5 CPU U 520 @ 1.07GHz (fam: 06, model: 25, stepping: 02)
[ 1.380754] Performance Events: PEBS fmt1+, 16-deep LBR, Westmere events, Intel PMU driver.
[ 1.380764] perf_event_intel: CPUID marked event: 'bus cycles' unavailable
[ 1.380768] ... version: 3
[ 1.380770] ... bit width: 48
[ 1.380771] ... generic registers: 4
[ 1.380773] ... value mask: 0000ffffffffffff
[ 1.380775] ... max period: 000000007fffffff
[ 1.380776] ... fixed-purpose events: 3
[ 1.380778] ... event mask: 000000070000000f
[ 1.398193] CPU1: Thermal monitoring handled by SMI
[ 1.413008] CPU2: Thermal monitoring handled by SMI
[ 1.427997] CPU3: Thermal monitoring handled by SMI
[ 1.386861] smpboot: Booting Node 0, Processors #1 #2 #3
[ 1.430112] Brought up 4 CPUs
[ 1.430119] smpboot: Total of 4 processors activated (8512.43 BogoMIPS)
[ 1.432725] devtmpfs: initialized
[ 1.433005] PM: Registering ACPI NVS region [mem 0x7b6bf000-0x7b7befff] (1048576 bytes)
[ 1.433387] RTC time: 20:02:24, date: 09/09/13
[ 1.433453] NET: Registered protocol family 16
[ 1.433973] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[ 1.433977] ACPI: bus type PCI registered
[ 1.434111] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[ 1.434115] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[ 1.459462] PCI: Using configuration type 1 for base access
[ 1.469436] bio: create slab <bio-0> at 0
[ 1.469663] ACPI: Added _OSI(Module Device)
[ 1.469666] ACPI: Added _OSI(Processor Device)
[ 1.469668] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 1.469671] ACPI: Added _OSI(Processor Aggregator Device)
[ 1.473142] ACPI: EC: Look up EC in DSDT
[ 1.476449] ACPI: Executed 1 blocks of module-level executable AML code
[ 1.486770] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[ 1.487448] ACPI: SSDT 000000007b691c98 00256 (v01 PmRef Cpu0Ist 00003000 INTL 20051117)
[ 1.488259] ACPI: Dynamic OEM Table Load:
[ 1.488263] ACPI: SSDT (null) 00256 (v01 PmRef Cpu0Ist 00003000 INTL 20051117)
[ 1.488484] ACPI: SSDT 000000007b68f698 0062A (v01 PmRef Cpu0Cst 00003001 INTL 20051117)
[ 1.489278] ACPI: Dynamic OEM Table Load:
[ 1.489281] ACPI: SSDT (null) 0062A (v01 PmRef Cpu0Cst 00003001 INTL 20051117)
[ 1.495155] ACPI: SSDT 000000007b690a98 00303 (v01 PmRef ApIst 00003000 INTL 20051117)
[ 1.496042] ACPI: Dynamic OEM Table Load:
[ 1.496046] ACPI: SSDT (null) 00303 (v01 PmRef ApIst 00003000 INTL 20051117)
[ 1.498908] ACPI: SSDT 000000007b68ed98 00119 (v01 PmRef ApCst 00003000 INTL 20051117)
[ 1.499736] ACPI: Dynamic OEM Table Load:
[ 1.499739] ACPI: SSDT (null) 00119 (v01 PmRef ApCst 00003000 INTL 20051117)
[ 1.544202] ACPI: Interpreter enabled
[ 1.544220] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20130517/hwxface-571)
[ 1.544231] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20130517/hwxface-571)
[ 1.544264] ACPI: (supports S0 S3 S4 S5)
[ 1.544267] ACPI: Using IOAPIC for interrupt routing
[ 1.544386] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[ 1.544961] ACPI: ACPI Dock Station Driver: 1 docks/bays found
[ 1.621918] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-fe])
[ 1.621978] \_SB_.PCI0:_OSC invalid UUID
[ 1.621980] _OSC request data:1 8 0
[ 1.623025] PCI host bridge to bus 0000:00
[ 1.623033] pci_bus 0000:00: root bus resource [bus 00-fe]
[ 1.623036] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7]
[ 1.623039] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff]
[ 1.623042] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[ 1.623045] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfeafffff]
[ 1.623058] pci 0000:00:00.0: [8086:0044] type 00 class 0x060000
[ 1.623086] DMAR: BIOS has allocated no shadow GTT; disabling IOMMU for graphics
[ 1.623254] pci 0000:00:01.0: [8086:0045] type 01 class 0x060400
[ 1.623307] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[ 1.623393] pci 0000:00:01.0: System wakeup disabled by ACPI
[ 1.623472] pci 0000:00:02.0: [8086:0046] type 00 class 0x030000
[ 1.623490] pci 0000:00:02.0: reg 0x10: [mem 0xb1400000-0xb17fffff 64bit]
[ 1.623500] pci 0000:00:02.0: reg 0x18: [mem 0xa0000000-0xafffffff 64bit pref]
[ 1.623507] pci 0000:00:02.0: reg 0x20: [io 0x5078-0x507f]
[ 1.623742] pci 0000:00:1a.0: [8086:3b3c] type 00 class 0x0c0320
[ 1.624272] pci 0000:00:1a.0: reg 0x10: [mem 0xb7806c00-0xb7806fff]
[ 1.627289] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[ 1.627476] pci 0000:00:1b.0: [8086:3b57] type 00 class 0x040300
[ 1.627505] pci 0000:00:1b.0: reg 0x10: [mem 0xb7800000-0xb7803fff 64bit]
[ 1.627623] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[ 1.627723] pci 0000:00:1b.0: System wakeup disabled by ACPI
[ 1.627808] pci 0000:00:1c.0: [8086:3b42] type 01 class 0x060400
[ 1.627931] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[ 1.628032] pci 0000:00:1c.0: System wakeup disabled by ACPI
[ 1.628117] pci 0000:00:1c.1: [8086:3b44] type 01 class 0x060400
[ 1.628250] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[ 1.628349] pci 0000:00:1c.1: System wakeup disabled by ACPI
[ 1.628440] pci 0000:00:1c.4: [8086:3b4a] type 01 class 0x060400
[ 1.628564] pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
[ 1.628669] pci 0000:00:1c.4: System wakeup disabled by ACPI
[ 1.628765] pci 0000:00:1d.0: [8086:3b34] type 00 class 0x0c0320
[ 1.629280] pci 0000:00:1d.0: reg 0x10: [mem 0xb7806800-0xb7806bff]
[ 1.632298] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[ 1.632760] pci 0000:00:1d.0: System wakeup disabled by ACPI
[ 1.632858] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401
[ 1.633038] pci 0000:00:1e.0: System wakeup disabled by ACPI
[ 1.633123] pci 0000:00:1f.0: [8086:3b0f] type 00 class 0x060100
[ 1.633412] pci 0000:00:1f.2: [8086:3b2f] type 00 class 0x010601
[ 1.633447] pci 0000:00:1f.2: reg 0x10: [io 0x5058-0x505f]
[ 1.633461] pci 0000:00:1f.2: reg 0x14: [io 0x5084-0x5087]
[ 1.633475] pci 0000:00:1f.2: reg 0x18: [io 0x5050-0x5057]
[ 1.633488] pci 0000:00:1f.2: reg 0x1c: [io 0x5080-0x5083]
[ 1.633502] pci 0000:00:1f.2: reg 0x20: [io 0x5020-0x503f]
[ 1.633516] pci 0000:00:1f.2: reg 0x24: [mem 0xb7806000-0xb78067ff]
[ 1.633597] pci 0000:00:1f.2: PME# supported from D3hot
[ 1.633764] pci 0000:00:1f.3: [8086:3b30] type 00 class 0x0c0500
[ 1.633793] pci 0000:00:1f.3: reg 0x10: [mem 0xb7807000-0xb78070ff 64bit]
[ 1.633829] pci 0000:00:1f.3: reg 0x20: [io 0x5000-0x501f]
[ 1.634019] pci 0000:00:1f.6: [8086:3b32] type 00 class 0x118000
[ 1.634055] pci 0000:00:1f.6: reg 0x10: [mem 0xb7804000-0xb7804fff 64bit]
[ 1.634413] pci 0000:01:00.0: [10de:0caf] type 00 class 0x030000
[ 1.634443] pci 0000:01:00.0: reg 0x10: [mem 0xb0000000-0xb0ffffff]
[ 1.634470] pci 0000:01:00.0: reg 0x14: [mem 0x80000000-0x8fffffff 64bit pref]
[ 1.634496] pci 0000:01:00.0: reg 0x1c: [mem 0x90000000-0x91ffffff 64bit pref]
[ 1.634517] pci 0000:01:00.0: reg 0x24: [io 0x4000-0x407f]
[ 1.634538] pci 0000:01:00.0: reg 0x30: [mem 0xfff80000-0xffffffff pref]
[ 1.634635] pci 0000:01:00.0: System wakeup disabled by ACPI
[ 1.634736] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 1.634741] pci 0000:00:01.0: bridge window [io 0x4000-0x4fff]
[ 1.634746] pci 0000:00:01.0: bridge window [mem 0xb0000000-0xb10fffff]
[ 1.634751] pci 0000:00:01.0: bridge window [mem 0x80000000-0x91ffffff 64bit pref]
[ 1.634888] pci 0000:02:00.0: [1969:1062] type 00 class 0x020000
[ 1.634922] pci 0000:02:00.0: reg 0x10: [mem 0xb6800000-0xb683ffff 64bit]
[ 1.634941] pci 0000:02:00.0: reg 0x18: [io 0x3000-0x307f]
[ 1.635089] pci 0000:02:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[ 1.635132] pci 0000:02:00.0: System wakeup disabled by ACPI
[ 1.637023] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 1.637037] pci 0000:00:1c.0: bridge window [io 0x3000-0x3fff]
[ 1.637049] pci 0000:00:1c.0: bridge window [mem 0xb6800000-0xb77fffff]
[ 1.637065] pci 0000:00:1c.0: bridge window [mem 0xb1800000-0xb27fffff 64bit pref]
[ 1.637262] pci 0000:03:00.0: [14e4:4353] type 00 class 0x028000
[ 1.637314] pci 0000:03:00.0: reg 0x10: [mem 0xb5800000-0xb5803fff 64bit]
[ 1.637580] pci 0000:03:00.0: supports D1 D2
[ 1.637583] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[ 1.637639] pci 0000:03:00.0: System wakeup disabled by ACPI
[ 1.640057] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 1.640072] pci 0000:00:1c.1: bridge window [io 0x2000-0x2fff]
[ 1.640078] pci 0000:00:1c.1: bridge window [mem 0xb5800000-0xb67fffff]
[ 1.640088] pci 0000:00:1c.1: bridge window [mem 0xb2800000-0xb37fffff 64bit pref]
[ 1.640232] pci 0000:04:00.0: [197b:2380] type 00 class 0x0c0010
[ 1.640265] pci 0000:04:00.0: reg 0x10: [mem 0xb4800000-0xb48007ff]
[ 1.640288] pci 0000:04:00.0: reg 0x14: [mem 0xb4800c00-0xb4800cff]
[ 1.640521] pci 0000:04:00.0: System wakeup disabled by ACPI
[ 1.640616] pci 0000:04:00.1: [197b:2382] type 00 class 0x088000
[ 1.640646] pci 0000:04:00.1: reg 0x10: [mem 0xb4800b00-0xb4800bff]
[ 1.640959] pci 0000:04:00.3: [197b:2383] type 00 class 0x088000
[ 1.640995] pci 0000:04:00.3: reg 0x10: [mem 0xb4800900-0xb48009ff]
[ 1.643025] pci 0000:00:1c.4: PCI bridge to [bus 04]
[ 1.643039] pci 0000:00:1c.4: bridge window [io 0x1000-0x1fff]
[ 1.643049] pci 0000:00:1c.4: bridge window [mem 0xb4800000-0xb57fffff]
[ 1.643069] pci 0000:00:1c.4: bridge window [mem 0xb3800000-0xb47fffff 64bit pref]
[ 1.643212] pci 0000:00:1e.0: PCI bridge to [bus 05] (subtractive decode)
[ 1.643229] pci 0000:00:1e.0: bridge window [io 0x0000-0x0cf7] (subtractive decode)
[ 1.643231] pci 0000:00:1e.0: bridge window [io 0x0d00-0xffff] (subtractive decode)
[ 1.643234] pci 0000:00:1e.0: bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[ 1.643237] pci 0000:00:1e.0: bridge window [mem 0x80000000-0xfeafffff] (subtractive decode)
[ 1.643344] \_SB_.PCI0:_OSC invalid UUID
[ 1.643346] _OSC request data:1 1f 0
[ 1.643352] acpi PNP0A08:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[ 1.643355] acpi PNP0A08:00: Unable to request _OSC control (_OSC support mask: 0x08)
[ 1.664258] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 *10 12 14 15)
[ 1.664346] ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 *11 12 14 15)
[ 1.664431] ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 *10 12 14 15)
[ 1.664515] ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *11 12 14 15)
[ 1.664598] ACPI: PCI Interrupt Link [LNKE] (IRQs 1 3 4 5 6 7 10 12 14 15) *0, disabled.
[ 1.664695] ACPI: PCI Interrupt Link [LNKF] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[ 1.664779] ACPI: PCI Interrupt Link [LNKG] (IRQs 1 3 4 5 6 7 10 12 14 15) *11
[ 1.664864] ACPI: PCI Interrupt Link [LNKH] (IRQs 1 3 4 5 6 7 11 12 14 15) *10
[ 1.664976] ACPI: PCI Root Bridge [CPBG] (domain 0000 [bus ff])
[ 1.665105] PCI host bridge to bus 0000:ff
[ 1.665112] pci_bus 0000:ff: root bus resource [bus ff]
[ 1.665124] pci 0000:ff:00.0: [8086:2c62] type 00 class 0x060000
[ 1.665224] pci 0000:ff:00.1: [8086:2d01] type 00 class 0x060000
[ 1.665324] pci 0000:ff:02.0: [8086:2d10] type 00 class 0x060000
[ 1.665416] pci 0000:ff:02.1: [8086:2d11] type 00 class 0x060000
[ 1.665508] pci 0000:ff:02.2: [8086:2d12] type 00 class 0x060000
[ 1.665603] pci 0000:ff:02.3: [8086:2d13] type 00 class 0x060000
[ 1.665715] acpi PNP0A03:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[ 1.665718] acpi PNP0A03:00: Unable to request _OSC control (_OSC support mask: 0x08)
[ 1.666275] ACPI: Enabled 10 GPEs in block 00 to 3F
[ 1.666287] ACPI: \_SB_.PCI0: notify handler is installed
[ 1.666377] ACPI: \_SB_.CPBG: notify handler is installed
[ 1.666392] Found 2 acpi root devices
[ 1.666439] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[ 1.666685] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[ 1.666696] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[ 1.666699] vgaarb: loaded
[ 1.666701] vgaarb: bridge control possible 0000:01:00.0
[ 1.666703] vgaarb: no bridge control possible 0000:00:02.0
[ 1.666886] SCSI subsystem initialized
[ 1.666891] ACPI: bus type ATA registered
[ 1.667047] libata version 3.00 loaded.
[ 1.667091] ACPI: bus type USB registered
[ 1.667186] usbcore: registered new interface driver usbfs
[ 1.667230] usbcore: registered new interface driver hub
[ 1.667291] usbcore: registered new device driver usb
[ 1.667554] Advanced Linux Sound Architecture Driver Initialized.
[ 1.667558] PCI: Using ACPI for IRQ routing
[ 1.678963] PCI: pci_cache_line_size set to 64 bytes
[ 1.679090] e820: reserve RAM buffer [mem 0x0009d000-0x0009ffff]
[ 1.679093] e820: reserve RAM buffer [mem 0x7b63f000-0x7bffffff]
[ 1.679095] e820: reserve RAM buffer [mem 0x7b800000-0x7bffffff]
[ 1.679511] cfg80211: Calling CRDA to update world regulatory domain
[ 1.679682] NetLabel: Initializing
[ 1.679685] NetLabel: domain hash size = 128
[ 1.679686] NetLabel: protocols = UNLABELED CIPSOv4
[ 1.679704] NetLabel: unlabeled traffic allowed by default
[ 1.679860] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[ 1.679870] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[ 1.681912] Switched to clocksource hpet
[ 1.687158] pnp: PnP ACPI init
[ 1.687184] ACPI: bus type PNP registered
[ 1.706994] pnp 00:00: [dma 4]
[ 1.707094] pnp 00:00: Plug and Play ACPI device, IDs PNP0200 (active)
[ 1.707178] pnp 00:01: Plug and Play ACPI device, IDs INT0800 (active)
[ 1.707409] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active)
[ 1.707515] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[ 1.707554] pnp 00:04: disabling [io 0x164e-0x164f] because it overlaps 0000:00:1c.4 BAR 7 [io 0x1000-0x1fff]
[ 1.707655] system 00:04: [io 0x0680-0x069f] has been reserved
[ 1.707659] system 00:04: [io 0x0800-0x080f] has been reserved
[ 1.707662] system 00:04: [io 0x0810-0x0813] has been reserved
[ 1.707665] system 00:04: [io 0xffff] has been reserved
[ 1.707669] system 00:04: [io 0x0400-0x047f] could not be reserved
[ 1.707672] system 00:04: [io 0x0500-0x057f] has been reserved
[ 1.707675] system 00:04: [io 0xff2c-0xff2f] has been reserved
[ 1.707680] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 1.707777] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[ 1.707878] pnp 00:06: Plug and Play ACPI device, IDs PNP0303 (active)
[ 1.707995] pnp 00:07: Plug and Play ACPI device, IDs SYN071b SYN0700 SYN0002 PNP0f13 (active)
[ 1.708327] pnp 00:08: Plug and Play ACPI device, IDs SMO8800 (active)
[ 1.708752] system 00:09: [mem 0xfed1c000-0xfed1ffff] has been reserved
[ 1.708757] system 00:09: [mem 0xfed10000-0xfed13fff] has been reserved
[ 1.708760] system 00:09: [mem 0xfed18000-0xfed18fff] has been reserved
[ 1.708763] system 00:09: [mem 0xfed19000-0xfed19fff] has been reserved
[ 1.708767] system 00:09: [mem 0xe0000000-0xefffffff] has been reserved
[ 1.708770] system 00:09: [mem 0xfed20000-0xfed3ffff] has been reserved
[ 1.708773] system 00:09: [mem 0xfed90000-0xfed93fff] has been reserved
[ 1.708776] system 00:09: [mem 0xfed45000-0xfed8ffff] has been reserved
[ 1.708780] system 00:09: [mem 0xff000000-0xffffffff] could not be reserved
[ 1.708783] system 00:09: [mem 0xfee00000-0xfeefffff] could not be reserved
[ 1.708786] system 00:09: [mem 0xb7900000-0xb7900fff] has been reserved
[ 1.708791] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 1.709061] pnp: PnP ACPI: found 10 devices
[ 1.709063] ACPI: bus type PNP unregistered
[ 1.720632] pci 0000:01:00.0: no compatible bridge window for [mem 0xfff80000-0xffffffff pref]
[ 1.720693] pci 0000:01:00.0: BAR 6: assigned [mem 0xb1000000-0xb107ffff pref]
[ 1.720698] pci 0000:00:01.0: PCI bridge to [bus 01]
[ 1.720702] pci 0000:00:01.0: bridge window [io 0x4000-0x4fff]
[ 1.720706] pci 0000:00:01.0: bridge window [mem 0xb0000000-0xb10fffff]
[ 1.720711] pci 0000:00:01.0: bridge window [mem 0x80000000-0x91ffffff 64bit pref]
[ 1.720716] pci 0000:00:1c.0: PCI bridge to [bus 02]
[ 1.720721] pci 0000:00:1c.0: bridge window [io 0x3000-0x3fff]
[ 1.720729] pci 0000:00:1c.0: bridge window [mem 0xb6800000-0xb77fffff]
[ 1.720735] pci 0000:00:1c.0: bridge window [mem 0xb1800000-0xb27fffff 64bit pref]
[ 1.720745] pci 0000:00:1c.1: PCI bridge to [bus 03]
[ 1.720749] pci 0000:00:1c.1: bridge window [io 0x2000-0x2fff]
[ 1.720757] pci 0000:00:1c.1: bridge window [mem 0xb5800000-0xb67fffff]
[ 1.720763] pci 0000:00:1c.1: bridge window [mem 0xb2800000-0xb37fffff 64bit pref]
[ 1.720772] pci 0000:00:1c.4: PCI bridge to [bus 04]
[ 1.720777] pci 0000:00:1c.4: bridge window [io 0x1000-0x1fff]
[ 1.720784] pci 0000:00:1c.4: bridge window [mem 0xb4800000-0xb57fffff]
[ 1.720790] pci 0000:00:1c.4: bridge window [mem 0xb3800000-0xb47fffff 64bit pref]
[ 1.720800] pci 0000:00:1e.0: PCI bridge to [bus 05]
[ 1.721390] pci 0000:00:1e.0: setting latency timer to 64
[ 1.721398] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7]
[ 1.721400] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff]
[ 1.721403] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[ 1.721406] pci_bus 0000:00: resource 7 [mem 0x80000000-0xfeafffff]
[ 1.721409] pci_bus 0000:01: resource 0 [io 0x4000-0x4fff]
[ 1.721412] pci_bus 0000:01: resource 1 [mem 0xb0000000-0xb10fffff]
[ 1.721415] pci_bus 0000:01: resource 2 [mem 0x80000000-0x91ffffff 64bit pref]
[ 1.721418] pci_bus 0000:02: resource 0 [io 0x3000-0x3fff]
[ 1.721421] pci_bus 0000:02: resource 1 [mem 0xb6800000-0xb77fffff]
[ 1.721424] pci_bus 0000:02: resource 2 [mem 0xb1800000-0xb27fffff 64bit pref]
[ 1.721427] pci_bus 0000:03: resource 0 [io 0x2000-0x2fff]
[ 1.721429] pci_bus 0000:03: resource 1 [mem 0xb5800000-0xb67fffff]
[ 1.721432] pci_bus 0000:03: resource 2 [mem 0xb2800000-0xb37fffff 64bit pref]
[ 1.721435] pci_bus 0000:04: resource 0 [io 0x1000-0x1fff]
[ 1.721438] pci_bus 0000:04: resource 1 [mem 0xb4800000-0xb57fffff]
[ 1.721440] pci_bus 0000:04: resource 2 [mem 0xb3800000-0xb47fffff 64bit pref]
[ 1.721444] pci_bus 0000:05: resource 4 [io 0x0000-0x0cf7]
[ 1.721447] pci_bus 0000:05: resource 5 [io 0x0d00-0xffff]
[ 1.721449] pci_bus 0000:05: resource 6 [mem 0x000a0000-0x000bffff]
[ 1.721452] pci_bus 0000:05: resource 7 [mem 0x80000000-0xfeafffff]
[ 1.721497] NET: Registered protocol family 2
[ 1.721732] TCP established hash table entries: 32768 (order: 7, 524288 bytes)
[ 1.722039] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[ 1.722278] TCP: Hash tables configured (established 32768 bind 32768)
[ 1.722321] TCP: reno registered
[ 1.722332] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[ 1.722383] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[ 1.722513] NET: Registered protocol family 1
[ 1.722536] pci 0000:00:02.0: Boot video device
[ 1.745195] PCI: CLS 64 bytes, default 64
[ 1.745258] dmar: Host address width 36
[ 1.745261] dmar: DRHD base: 0x000000fed90000 flags: 0x0
[ 1.745274] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap c9008020e30272 ecap 1000
[ 1.745276] dmar: DRHD base: 0x000000fed91000 flags: 0x0
[ 1.745284] dmar: IOMMU 1: reg_base_addr fed91000 ver 1:0 cap c0000020230272 ecap 1000
[ 1.745286] dmar: DRHD base: 0x000000fed93000 flags: 0x1
[ 1.745293] dmar: IOMMU 2: reg_base_addr fed93000 ver 1:0 cap c9008020630272 ecap 1000
[ 1.745295] dmar: RMRR base: 0x00000079bcf000 end: 0x00000079beffff
[ 1.745298] dmar: RMRR base: 0x0000007de00000 end: 0x0000007fffffff
[ 1.745304] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 1.745308] software IO TLB [mem 0x7763f000-0x7b63f000] (64MB) mapped at [ffff88007763f000-ffff88007b63efff]
[ 1.745365] Simple Boot Flag at 0x44 set to 0x1
[ 1.746413] microcode: CPU0 sig=0x20652, pf=0x10, revision=0x9
[ 1.746423] microcode: CPU1 sig=0x20652, pf=0x10, revision=0x9
[ 1.746433] microcode: CPU2 sig=0x20652, pf=0x10, revision=0x9
[ 1.746443] microcode: CPU3 sig=0x20652, pf=0x10, revision=0x9
[ 1.746522] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[ 1.746526] Scanning for low memory corruption every 60 seconds
[ 1.747506] audit: initializing netlink socket (disabled)
[ 1.747518] type=2000 audit(1378756943.390:1): initialized
[ 1.777634] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[ 1.782424] VFS: Disk quotas dquot_6.5.2
[ 1.782540] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[ 1.783939] msgmni has been set to 7503
[ 1.784647] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[ 1.784651] io scheduler noop registered
[ 1.784653] io scheduler deadline registered
[ 1.784734] io scheduler cfq registered (default)
[ 1.784911] pcieport 0000:00:01.0: irq 40 for MSI/MSI-X
[ 1.785343] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[ 1.904960] ACPI: AC Adapter [ACAD] (on-line)
[ 1.905235] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input0
[ 1.905282] ACPI: Lid Switch [LID0]
[ 1.905383] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input1
[ 1.905389] ACPI: Power Button [PWRB]
[ 1.905483] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[ 1.905487] ACPI: Power Button [PWRF]
[ 1.905701] ACPI: Requesting acpi_cpufreq
[ 1.906005] Monitor-Mwait will be used to enter C-1 state
[ 1.906013] Monitor-Mwait will be used to enter C-2 state
[ 1.906018] Monitor-Mwait will be used to enter C-3 state
[ 1.906031] ACPI: acpi_idle registered with cpuidle
[ 1.907644] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 2.746524] tsc: Refined TSC clocksource calibration: 1063.999 MHz
[ 3.649551] ACPI: Battery Slot [BAT1] (battery present)
[ 3.649884] Non-volatile memory driver v1.3
[ 3.649888] Linux agpgart interface v0.103
[ 3.650111] agpgart-intel 0000:00:00.0: Intel HD Graphics Chipset
[ 3.650203] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
[ 3.651048] agpgart-intel 0000:00:00.0: detected 32768K stolen memory
[ 3.651349] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xa0000000
[ 3.651512] [drm] Initialized drm 1.1.0 20060810
[ 3.652341] [drm] Memory usable by graphics device = 2048M
[ 3.652350] i915 0000:00:02.0: setting latency timer to 64
[ 3.681025] i915 0000:00:02.0: irq 41 for MSI/MSI-X
[ 3.681037] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[ 3.681039] [drm] Driver supports precise vblank timestamp query.
[ 3.681081] ACPI Warning: \_SB_.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Integer], ACPI requires [Package] (20130517/nsarguments-95)
[ 3.681142] ACPI Warning: \_SB_.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Integer], ACPI requires [Package] (20130517/nsarguments-95)
[ 3.681214] ACPI Warning: \_SB_.PCI0.P0P2.PEGP._DSM: Argument #4 type mismatch - Found [Integer], ACPI requires [Package] (20130517/nsarguments-95)
[ 3.681267] ACPI Warning: \_SB_.PCI0.P0P2.PEGP._DSM: Argument #4 type mismatch - Found [Integer], ACPI requires [Package] (20130517/nsarguments-95)
[ 3.681403] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[ 3.681406] vgaarb: transferring owner from PCI:0000:00:02.0 to PCI:0000:01:00.0
[ 3.746178] Switched to clocksource tsc
[ 3.772041] [drm] GMBUS [i915 gmbus vga] timed out, falling back to bit banging on pin 2
[ 3.782494] fbcon: inteldrmfb (fb0) is primary device
[ 4.498789] Console: switching to colour frame buffer device 170x48
[ 4.503596] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[ 4.503599] i915 0000:00:02.0: registered panic notifier
[ 4.509818] acpi device:01: registered as cooling_device4
[ 4.510069] ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
[ 4.510158] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input3
[ 4.510196] ACPI Exception: AE_NOT_FOUND, Evaluating _DOD (20130517/video-1264)
[ 4.510977] acpi device:0a: registered as cooling_device5
[ 4.511232] ACPI: Video Device [PEGP] (multi-head: yes rom: yes post: no)
[ 4.511315] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/device:09/LNXVIDEO:01/input/input4
[ 4.511385] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[ 4.512968] loop: module loaded
[ 4.513267] ahci 0000:00:1f.2: version 3.0
[ 4.513479] ahci 0000:00:1f.2: irq 42 for MSI/MSI-X
[ 4.513568] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 3 Gbps 0x1 impl SATA mode
[ 4.513573] ahci 0000:00:1f.2: flags: 64bit ncq sntf ilck pm led clo pio slum part ems apst
[ 4.513580] ahci 0000:00:1f.2: setting latency timer to 64
[ 4.514786] scsi0 : ahci
[ 4.514948] scsi1 : ahci
[ 4.515090] scsi2 : ahci
[ 4.515229] scsi3 : ahci
[ 4.515369] scsi4 : ahci
[ 4.515496] scsi5 : ahci
[ 4.515629] ata1: SATA max UDMA/133 abar m2048@0xb7806000 port 0xb7806100 irq 42
[ 4.515632] ata2: DUMMY
[ 4.515634] ata3: DUMMY
[ 4.515635] ata4: DUMMY
[ 4.515637] ata5: DUMMY
[ 4.515638] ata6: DUMMY
[ 4.516124] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 4.516128] ehci-pci: EHCI PCI platform driver
[ 4.516309] ehci-pci 0000:00:1a.0: setting latency timer to 64
[ 4.516328] ehci-pci 0000:00:1a.0: EHCI Host Controller
[ 4.516338] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[ 4.516359] ehci-pci 0000:00:1a.0: debug port 2
[ 4.520270] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[ 4.520292] ehci-pci 0000:00:1a.0: irq 16, io mem 0xb7806c00
[ 4.525738] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[ 4.525800] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 4.525809] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4.525813] usb usb1: Product: EHCI Host Controller
[ 4.525815] usb usb1: Manufacturer: Linux 3.11.0-wl ehci_hcd
[ 4.525818] usb usb1: SerialNumber: 0000:00:1a.0
[ 4.526029] hub 1-0:1.0: USB hub found
[ 4.526037] hub 1-0:1.0: 3 ports detected
[ 4.526308] ehci-pci 0000:00:1d.0: setting latency timer to 64
[ 4.526318] ehci-pci 0000:00:1d.0: EHCI Host Controller
[ 4.526328] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[ 4.526345] ehci-pci 0000:00:1d.0: debug port 2
[ 4.530275] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[ 4.530296] ehci-pci 0000:00:1d.0: irq 23, io mem 0xb7806800
[ 4.535735] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[ 4.535794] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 4.535801] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 4.535804] usb usb2: Product: EHCI Host Controller
[ 4.535807] usb usb2: Manufacturer: Linux 3.11.0-wl ehci_hcd
[ 4.535809] usb usb2: SerialNumber: 0000:00:1d.0
[ 4.535999] hub 2-0:1.0: USB hub found
[ 4.536008] hub 2-0:1.0: 3 ports detected
[ 4.536159] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 4.536163] ohci-pci: OHCI PCI platform driver
[ 4.536212] uhci_hcd: USB Universal Host Controller Interface driver
[ 4.536314] usbcore: registered new interface driver usblp
[ 4.536369] usbcore: registered new interface driver usb-storage
[ 4.536477] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[ 4.551473] serio: i8042 KBD port at 0x60,0x64 irq 1
[ 4.551508] serio: i8042 AUX port at 0x60,0x64 irq 12
[ 4.551673] mousedev: PS/2 mouse device common for all mice
[ 4.552165] rtc_cmos 00:05: RTC can wake from S4
[ 4.552361] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[ 4.552399] rtc_cmos 00:05: alarms up to one year, y3k, 242 bytes nvram, hpet irqs
[ 4.552595] ACPI Warning: 0x0000000000005000-0x000000000000501f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20130517/utaddress-251)
[ 4.552603] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[ 4.552752] cpuidle: using governor ladder
[ 4.552860] cpuidle: using governor menu
[ 4.552947] hidraw: raw HID events driver (C) Jiri Kosina
[ 4.553772] usbcore: registered new interface driver usbhid
[ 4.553775] usbhid: USB HID core driver
[ 4.554471] snd_hda_intel 0000:00:1b.0: irq 43 for MSI/MSI-X
[ 4.564848] hda_codec: ALC665: SKU not ready 0x598301f0
[ 4.566186] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input5
[ 4.577552] Netfilter messages via NETLINK v0.30.
[ 4.577667] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 4.577710] TCP: cubic registered
[ 4.577712] Initializing XFRM netlink socket
[ 4.577998] NET: Registered protocol family 10
[ 4.578222] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 4.578254] NET: Registered protocol family 17
[ 4.578922] PM: Hibernation image not present or could not be loaded.
[ 4.578947] registered taskstats version 1
[ 4.579769] Magic number: 13:776:42
[ 4.579805] bdi 7:7: hash matches
[ 4.580820] ALSA device list:
[ 4.580824] #0: HDA Intel at 0xb7800000 irq 43
[ 4.824701] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 4.826412] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[ 4.828690] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 4.865208] ata1.00: ATA-8: ST9250410AS, D005SDM1, max UDMA/133
[ 4.865215] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[ 4.875400] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[ 4.875853] ata1.00: configured for UDMA/133
[ 4.876252] scsi 0:0:0:0: Direct-Access ATA ST9250410AS D005 PQ: 0 ANSI: 5
[ 4.877262] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB)
[ 4.877440] sd 0:0:0:0: [sda] Write Protect is off
[ 4.877446] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 4.877455] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 4.877520] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 4.910777] sda: sda1 sda2
[ 4.911283] sd 0:0:0:0: [sda] Attached SCSI disk
[ 4.943362] usb 1-1: New USB device found, idVendor=8087, idProduct=0020
[ 4.943371] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 4.944409] hub 1-1:1.0: USB hub found
[ 4.944641] hub 1-1:1.0: 6 ports detected
[ 5.047526] usb 2-1: new high-speed USB device number 2 using ehci-pci
[ 5.161900] usb 2-1: New USB device found, idVendor=8087, idProduct=0020
[ 5.161907] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5.163089] hub 2-1:1.0: USB hub found
[ 5.163293] hub 2-1:1.0: 8 ports detected
[ 5.238593] usb 1-1.1: new full-speed USB device number 3 using ehci-pci
[ 5.315430] usb 1-1.1: New USB device found, idVendor=0a5c, idProduct=4500
[ 5.315445] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5.315454] usb 1-1.1: Product: BCM2046B1
[ 5.315462] usb 1-1.1: Manufacturer: Broadcom
[ 5.315874] hub 1-1.1:1.0: USB hub found
[ 5.316147] hub 1-1.1:1.0: 3 ports detected
[ 5.379669] usb 1-1.2: new high-speed USB device number 4 using ehci-pci
[ 5.505999] usb 1-1.2: New USB device found, idVendor=064e, idProduct=8101
[ 5.506007] usb 1-1.2: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 5.506011] usb 1-1.2: Product: Laptop_Integrated_Webcam_1.3M
[ 5.506015] usb 1-1.2: Manufacturer: SuYin
[ 5.582496] usb 2-1.4: new full-speed USB device number 3 using ehci-pci
[ 5.664712] psmouse serio1: synaptics: Touchpad model: 1, fw: 7.2, id: 0x1c0b1, caps: 0xd04733/0xa40000/0xa0000, board id: 3655, fw id: 606788
[ 5.667061] usb 2-1.4: config 1 interface 0 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 1
[ 5.675087] usb 2-1.4: New USB device found, idVendor=187c, idProduct=0514
[ 5.675095] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5.675099] usb 2-1.4: Product: Phantom
[ 5.675103] usb 2-1.4: Manufacturer: Alienware Gaming
[ 5.675107] usb 2-1.4: SerialNumber: 2.0.1
[ 5.685238] hid-generic 0003:187C:0514.0001: hiddev0,hidraw0: USB HID v1.01 Device [Alienware Gaming Phantom] on usb-0000:00:1d.0-1.4/input0
[ 5.728143] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input6
[ 5.747451] usb 1-1.1.1: new full-speed USB device number 5 using ehci-pci
[ 5.823280] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[ 5.823300] VFS: Mounted root (ext4 filesystem) readonly on device 8:1.
[ 5.824991] usb 1-1.1.1: New USB device found, idVendor=413c, idProduct=8161
[ 5.825002] usb 1-1.1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5.827512] input: HID 413c:8161 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0/input/input7
[ 5.827695] hid-generic 0003:413C:8161.0002: input,hidraw1: USB HID v1.11 Keyboard [HID 413c:8161] on usb-0000:00:1a.0-1.1.1/input0
[ 5.878830] devtmpfs: mounted
[ 5.881622] Freeing unused kernel memory: 1004K (ffffffff81cb6000 - ffffffff81db1000)
[ 5.881630] Write protecting the kernel read-only data: 12288k
[ 5.892736] Freeing unused kernel memory: 1340K (ffff8800016b1000 - ffff880001800000)
[ 5.900394] usb 1-1.1.2: new full-speed USB device number 6 using ehci-pci
[ 5.907244] Freeing unused kernel memory: 1864K (ffff880001a2e000 - ffff880001c00000)
[ 5.978439] usb 1-1.1.2: New USB device found, idVendor=413c, idProduct=8162
[ 5.978450] usb 1-1.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5.982462] input: HID 413c:8162 as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/input/input8
[ 5.982968] hid-generic 0003:413C:8162.0003: input,hidraw2: USB HID v1.11 Mouse [HID 413c:8162] on usb-0000:00:1a.0-1.1.2/input0
[ 7.382298] systemd[1]: systemd 206 running in system mode. (+PAM +LIBWRAP -AUDIT -SELINUX -IMA -SYSVINIT -LIBCRYPTSETUP -GCRYPT +ACL +XZ)
[ 7.475956] systemd[1]: Set hostname to <graveyard>.
[ 8.374798] systemd[1]: Starting Forward Password Requests to Wall Directory Watch.
[ 8.375002] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 8.375043] systemd[1]: Starting Remote File Systems.
[ 8.375381] systemd[1]: Reached target Remote File Systems.
[ 8.375417] systemd[1]: Starting Syslog Socket.
[ 8.375750] systemd[1]: Listening on Syslog Socket.
[ 8.375787] systemd[1]: Starting Delayed Shutdown Socket.
[ 8.376123] systemd[1]: Listening on Delayed Shutdown Socket.
[ 8.376159] systemd[1]: Starting Root Slice.
[ 8.376560] systemd[1]: Created slice Root Slice.
[ 8.376593] systemd[1]: Starting User and Session Slice.
[ 8.377049] systemd[1]: Created slice User and Session Slice.
[ 8.377104] systemd[1]: Starting System Slice.
[ 8.377526] systemd[1]: Created slice System Slice.
[ 8.377562] systemd[1]: Starting system-getty.slice.
[ 8.378018] systemd[1]: Created slice system-getty.slice.
[ 8.378054] systemd[1]: Starting Slices.
[ 8.378348] systemd[1]: Reached target Slices.
[ 8.378383] systemd[1]: Starting /dev/initctl Compatibility Named Pipe.
[ 8.378713] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[ 8.378813] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point.
[ 8.379416] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 8.379613] systemd[1]: Starting udev Kernel Socket.
[ 8.379940] systemd[1]: Listening on udev Kernel Socket.
[ 8.380113] systemd[1]: Starting udev Control Socket.
[ 8.380445] systemd[1]: Listening on udev Control Socket.
[ 8.380485] systemd[1]: Starting Journal Socket.
[ 8.380831] systemd[1]: Listening on Journal Socket.
[ 8.418883] systemd[1]: Started Load Kernel Modules.
[ 8.418950] systemd[1]: Mounting Huge Pages File System...
[ 8.420142] systemd[1]: Starting udev Coldplug all Devices...
[ 8.421394] systemd[1]: Mounting POSIX Message Queue File System...
[ 8.693824] systemd[1]: Starting Apply Kernel Variables...
[ 8.695036] systemd[1]: Mounted FUSE Control File System.
[ 8.695126] systemd[1]: Mounting Debug File System...
[ 8.759374] systemd[1]: Started Set Up Additional Binary Formats.
[ 8.759421] systemd[1]: Starting Setup Virtual Console...
[ 8.760061] systemd[1]: Starting Journal Service...
[ 8.760796] systemd[1]: Started Journal Service.
[ 8.760857] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[ 8.761470] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch.
[ 8.761546] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[ 8.761569] systemd[1]: Starting Paths.
[ 8.761691] systemd[1]: Reached target Paths.
[ 8.761723] systemd[1]: Mounted Configuration File System.
[ 8.761743] systemd[1]: Expecting device dev-sda2.device...
[ 8.761843] systemd[1]: Mounting Temporary Directory...
[ 9.072524] systemd[1]: Starting File System Check on Root Device...
[ 9.075078] systemd[1]: Started Apply Kernel Variables.
[ 9.821384] EXT4-fs (sda1): re-mounted. Opts: (null)
[ 10.228054] systemd-udevd[1702]: starting version 206
[ 10.892155] wmi: Mapper loaded
[ 11.196672] atl1c 0000:02:00.0: version 1.0.1.1-NAPI
[ 11.204188] input: Dell WMI hotkeys as /devices/virtual/input/input9
[ 11.220610] bcma: bus0: Found chip with id 0xA8D8, rev 0x01 and package 0x0A
[ 11.220652] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x22, class 0x0)
[ 11.220685] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x17, class 0x0)
[ 11.220748] bcma: bus0: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x0F, class 0x0)
[ 11.233638] bcma: bus0: Bus registered
[ 11.400144] systemd-udevd[1712]: renamed network interface eth0 to enp2s0
[ 11.755258] kvm: VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL does not work properly. Using workaround
[ 11.801071] MXM: GUID detected in BIOS
[ 11.801116] ACPI Warning: \_SB_.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Integer], ACPI requires [Package] (20130517/nsarguments-95)
[ 11.801256] ACPI Warning: \_SB_.PCI0.GFX0._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20130517/nsarguments-95)
[ 11.802141] ACPI Warning: \_SB_.PCI0.P0P2.PEGP._DSM: Argument #4 type mismatch - Found [Integer], ACPI requires [Package] (20130517/nsarguments-95)
[ 11.802372] ACPI Warning: \_SB_.PCI0.P0P2.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20130517/nsarguments-95)
[ 11.803773] VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.P0P2.PEGP handle
[ 11.803851] nouveau 0000:01:00.0: enabling device (0004 -> 0007)
[ 11.804694] nouveau [ DEVICE][0000:01:00.0] BOOT0 : 0x0a3780a2
[ 11.804707] nouveau [ DEVICE][0000:01:00.0] Chipset: GT215 (NVA3)
[ 11.804717] nouveau [ DEVICE][0000:01:00.0] Family : NV50
[ 11.809479] nouveau [ VBIOS][0000:01:00.0] checking PRAMIN for image...
[ 11.809502] nouveau [ VBIOS][0000:01:00.0] ... signature not found
[ 11.809508] nouveau [ VBIOS][0000:01:00.0] checking PROM for image...
[ 11.809555] nouveau [ VBIOS][0000:01:00.0] ... signature not found
[ 11.809562] nouveau [ VBIOS][0000:01:00.0] checking ACPI for image...
[ 11.837147] brcmsmac bcma0:0: mfg 4bf core 812 rev 23 class 0 irq 17
[ 11.855481] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 11.864818] systemd-udevd[1713]: renamed network interface wlan0 to wlp3s0
[ 12.286327] Adding 4163380k swap on /dev/sda2. Priority:-1 extents:1 across:4163380k
[ 12.768584] nouveau [ VBIOS][0000:01:00.0] ... appears to be valid
[ 12.768591] nouveau [ VBIOS][0000:01:00.0] using image from ACPI
[ 12.768766] nouveau [ VBIOS][0000:01:00.0] BIT signature found
[ 12.768770] nouveau [ VBIOS][0000:01:00.0] version 70.15.3c.00.0a
[ 12.769818] nouveau [ DEVINIT][0000:01:00.0] adaptor not initialised
[ 12.769824] nouveau [ VBIOS][0000:01:00.0] running init tables
[ 12.839496] nouveau [ PFB][0000:01:00.0] RAM type: DDR3
[ 12.839506] nouveau [ PFB][0000:01:00.0] RAM size: 1024 MiB
[ 12.839513] nouveau [ PFB][0000:01:00.0] ZCOMP: 2048 tags
[ 12.871698] nouveau [ PTHERM][0000:01:00.0] FAN control: none / external
[ 12.871712] nouveau [ PTHERM][0000:01:00.0] fan management: disabled
[ 12.871720] nouveau [ PTHERM][0000:01:00.0] internal sensor: yes
[ 12.871815] vga_switcheroo: enabled
[ 12.871928] [TTM] Zone kernel: Available graphics memory: 1922948 kiB
[ 12.871931] [TTM] Initializing pool allocator
[ 12.871940] [TTM] Initializing DMA pool allocator
[ 12.871954] nouveau [ DRM] VRAM: 1024 MiB
[ 12.871956] nouveau [ DRM] GART: 1048576 MiB
[ 12.871962] nouveau [ DRM] TMDS table version 2.0
[ 12.871965] nouveau [ DRM] DCB version 4.0
[ 12.871969] nouveau [ DRM] DCB outp 01: 02011300 00000000
[ 12.871971] nouveau [ DRM] DCB conn 00: 00000040
[ 12.871974] nouveau [ DRM] DCB conn 01: 00000100
[ 12.871977] nouveau [ DRM] DCB conn 02: 00001261
[ 12.871979] nouveau [ DRM] DCB conn 03: 00002346
[ 12.915748] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[ 12.915752] [drm] No driver support for vblank timestamp query.
[ 12.915756] nouveau [ DRM] ACPI backlight interface available, not registering our own
[ 12.915864] nouveau [ DRM] 3 available performance level(s)
[ 12.915877] nouveau [ DRM] 0: core 135MHz shader 270MHz memory 135MHz voltage 800mV
[ 12.915886] nouveau [ DRM] 1: core 405MHz shader 810MHz memory 324MHz voltage 850mV
[ 12.915896] nouveau [ DRM] 3: core 450MHz shader 1080MHz memory 790MHz voltage 900mV
[ 12.915905] nouveau [ DRM] c: core 405MHz shader 810MHz memory 324MHz voltage 800mV
[ 12.964154] nouveau [ DRM] MM: using COPY for buffer copies
[ 13.005748] nouveau [ DRM] allocated 1024x768 fb: 0x70000, bo ffff8801727fa800
[ 13.006223] nouveau 0000:01:00.0: fb1: nouveaufb frame buffer device
[ 13.006229] [drm] Initialized nouveau 1.1.1 20120801 for 0000:01:00.0 on minor 1
[ 13.030732] atl1c 0000:02:00.0: irq 44 for MSI/MSI-X
[ 13.042351] IPv6: ADDRCONF(NETDEV_UP): enp2s0: link is not ready
[ 13.210710] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.210718] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.210756] CPU: 2 PID: 1800 Comm: dhcpcd Not tainted 3.11.0-wl #1
[ 13.210762] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.210767] ffff880177c92c40 ffff880170fd1948 ffffffff8169af5b 0000000000000007
[ 13.210777] ffff880170fd1ab0 ffff880170fd1958 ffffffff81697ee2 ffff880170fd19d8
[ 13.210785] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.210794] Call Trace:
[ 13.210813] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.210826] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.210837] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.210845] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.210855] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.210867] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.210877] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.210887] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.210897] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.210910] [<ffffffffa00371af>] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
[ 13.210921] [<ffffffffa003729f>] bcma_pcie_mdio_write.isra.4+0xbf/0xd0 [bcma]
[ 13.210932] [<ffffffffa0037498>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
[ 13.210942] [<ffffffffa00374ee>] bcma_core_pci_power_save+0x3e/0x80 [bcma]
[ 13.210953] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.210975] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.210989] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.211003] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.211020] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.211030] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.211064] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.211076] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.211086] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.211101] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.211109] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.211117] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.211127] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.211136] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.211147] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.211155] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.211169] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.211180] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.211198] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.211202] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.211208] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.211217] NOHZ: local_softirq_pending 202
[ 13.212092] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.212094] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.212128] CPU: 2 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.212132] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.212136] ffff880177c92c40 ffff880170fd1968 ffffffff8169af5b 0000000000000007
[ 13.212145] ffff880170fd1ad0 ffff880170fd1978 ffffffff81697ee2 ffff880170fd19f8
[ 13.212153] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.212162] Call Trace:
[ 13.212171] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.212181] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.212190] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.212198] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.212207] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.212217] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.212226] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.212236] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.212244] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.212256] [<ffffffffa003726a>] bcma_pcie_mdio_write.isra.4+0x8a/0xd0 [bcma]
[ 13.212267] [<ffffffffa0037498>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
[ 13.212277] [<ffffffffa00374ee>] bcma_core_pci_power_save+0x3e/0x80 [bcma]
[ 13.212288] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.212308] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.212321] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.212335] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.212348] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.212357] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.212366] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.212376] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.212385] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.212393] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.212401] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.212409] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.212417] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.212426] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.212434] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.212442] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.212452] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.212462] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.212471] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.212480] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.212490] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.214195] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.214203] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.214240] CPU: 0 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.214246] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.214253] ffff880177c12c40 ffff880170fd1948 ffffffff8169af5b 0000000000000007
[ 13.214262] ffff880170fd1ab0 ffff880170fd1958 ffffffff81697ee2 ffff880170fd19d8
[ 13.214265] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.214269] Call Trace:
[ 13.214276] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.214282] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.214286] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.214289] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.214293] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.214299] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.214303] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.214308] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.214311] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.214317] [<ffffffffa00371af>] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
[ 13.214322] [<ffffffffa003739e>] bcma_pcie_mdio_read.isra.5+0xee/0x100 [bcma]
[ 13.214327] [<ffffffffa00374a5>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x25/0x30 [bcma]
[ 13.214331] [<ffffffffa00374ee>] bcma_core_pci_power_save+0x3e/0x80 [bcma]
[ 13.214337] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.214346] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.214352] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.214359] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.214364] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.214369] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.214374] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.214379] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.214383] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.214386] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.214391] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.214394] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.214398] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.214402] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.214406] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.214410] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.214415] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.214419] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.214424] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.214428] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.214433] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.216264] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.216269] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.216293] CPU: 0 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.216295] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.216297] ffff880177c12c40 ffff880170fd1968 ffffffff8169af5b 0000000000000007
[ 13.216300] ffff880170fd1ad0 ffff880170fd1978 ffffffff81697ee2 ffff880170fd19f8
[ 13.216304] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.216308] Call Trace:
[ 13.216312] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.216316] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.216320] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.216324] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.216328] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.216332] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.216336] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.216340] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.216343] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.216349] [<ffffffffa003733a>] bcma_pcie_mdio_read.isra.5+0x8a/0x100 [bcma]
[ 13.216353] [<ffffffffa00374a5>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x25/0x30 [bcma]
[ 13.216358] [<ffffffffa00374ee>] bcma_core_pci_power_save+0x3e/0x80 [bcma]
[ 13.216362] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.216371] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.216376] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.216382] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.216387] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.216391] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.216396] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.216400] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.216404] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.216407] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.216410] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.216414] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.216417] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.216421] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.216424] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.216428] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.216432] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.216436] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.216441] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.216444] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.216449] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.218131] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.218137] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.218169] CPU: 2 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.218174] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.218178] ffff880177c92c40 ffff880170fd1948 ffffffff8169af5b 0000000000000007
[ 13.218187] ffff880170fd1ab0 ffff880170fd1958 ffffffff81697ee2 ffff880170fd19d8
[ 13.218195] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.218204] Call Trace:
[ 13.218216] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.218226] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.218235] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.218243] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.218253] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.218263] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.218272] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.218282] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.218290] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.218302] [<ffffffffa00371af>] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
[ 13.218313] [<ffffffffa003729f>] bcma_pcie_mdio_write.isra.4+0xbf/0xd0 [bcma]
[ 13.218323] [<ffffffffa0037498>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
[ 13.218334] [<ffffffffa00374f9>] bcma_core_pci_power_save+0x49/0x80 [bcma]
[ 13.218344] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.218364] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.218378] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.218392] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.218404] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.218413] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.218423] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.218433] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.218442] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.218450] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.218458] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.218466] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.218474] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.218483] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.218492] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.218500] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.218510] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.218519] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.218528] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.218538] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.218548] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.220190] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.220198] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.220231] CPU: 0 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.220237] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.220244] ffff880177c12c40 ffff880170fd1968 ffffffff8169af5b 0000000000000007
[ 13.220257] ffff880170fd1ad0 ffff880170fd1978 ffffffff81697ee2 ffff880170fd19f8
[ 13.220260] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.220264] Call Trace:
[ 13.220270] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.220275] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.220280] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.220283] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.220287] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.220293] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.220297] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.220301] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.220304] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.220310] [<ffffffffa003726a>] bcma_pcie_mdio_write.isra.4+0x8a/0xd0 [bcma]
[ 13.220315] [<ffffffffa0037498>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
[ 13.220319] [<ffffffffa00374f9>] bcma_core_pci_power_save+0x49/0x80 [bcma]
[ 13.220324] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.220334] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.220339] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.220345] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.220352] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.220356] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.220360] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.220365] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.220370] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.220373] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.220377] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.220380] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.220384] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.220388] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.220392] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.220396] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.220400] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.220404] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.220408] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.220412] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.220419] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.222247] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.222250] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.222263] CPU: 0 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.222265] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.222268] ffff880177c12c40 ffff880170fd1948 ffffffff8169af5b 0000000000000007
[ 13.222271] ffff880170fd1ab0 ffff880170fd1958 ffffffff81697ee2 ffff880170fd19d8
[ 13.222275] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.222279] Call Trace:
[ 13.222284] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.222288] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.222292] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.222295] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.222299] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.222304] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.222308] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.222312] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.222315] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.222322] [<ffffffffa00371af>] bcma_pcie_mdio_set_phy.isra.3+0x4f/0x80 [bcma]
[ 13.222326] [<ffffffffa003739e>] bcma_pcie_mdio_read.isra.5+0xee/0x100 [bcma]
[ 13.222331] [<ffffffffa00374a5>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x25/0x30 [bcma]
[ 13.222335] [<ffffffffa00374f9>] bcma_core_pci_power_save+0x49/0x80 [bcma]
[ 13.222339] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.222348] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.222354] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.222360] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.222366] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.222370] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.222374] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.222379] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.222384] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.222387] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.222390] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.222394] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.222397] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.222402] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.222405] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.222409] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.222413] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.222418] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.222423] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.222427] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.222431] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.224317] BUG: scheduling while atomic: dhcpcd/1800/0x00000202
[ 13.224322] Modules linked in: brcmsmac nouveau coretemp kvm_intel kvm cordic brcmutil bcma dell_wmi atl1c ttm mxm_wmi wmi
[ 13.224354] CPU: 0 PID: 1800 Comm: dhcpcd Tainted: G W 3.11.0-wl #1
[ 13.224359] Hardware name: Alienware M11x R2/M11x R2, BIOS A04 11/23/2010
[ 13.224363] ffff880177c12c40 ffff880170fd1968 ffffffff8169af5b 0000000000000007
[ 13.224374] ffff880170fd1ad0 ffff880170fd1978 ffffffff81697ee2 ffff880170fd19f8
[ 13.224383] ffffffff816a19f5 00000000000f4240 000000000000d080 ffff880170fd1fd8
[ 13.224391] Call Trace:
[ 13.224399] [<ffffffff8169af5b>] dump_stack+0x4f/0x84
[ 13.224403] [<ffffffff81697ee2>] __schedule_bug+0x43/0x51
[ 13.224409] [<ffffffff816a19f5>] __schedule+0x6e5/0x810
[ 13.224412] [<ffffffff816a1c34>] schedule+0x24/0x70
[ 13.224416] [<ffffffff816a04fc>] schedule_hrtimeout_range_clock+0x10c/0x150
[ 13.224420] [<ffffffff810684e0>] ? update_rmtp+0x60/0x60
[ 13.224424] [<ffffffff8106915f>] ? hrtimer_start_range_ns+0xf/0x20
[ 13.224429] [<ffffffff816a054e>] schedule_hrtimeout_range+0xe/0x10
[ 13.224432] [<ffffffff8104f6fb>] usleep_range+0x3b/0x40
[ 13.224437] [<ffffffffa003733a>] bcma_pcie_mdio_read.isra.5+0x8a/0x100 [bcma]
[ 13.224442] [<ffffffffa00374a5>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x25/0x30 [bcma]
[ 13.224448] [<ffffffffa00374f9>] bcma_core_pci_power_save+0x49/0x80 [bcma]
[ 13.224452] [<ffffffffa003765d>] bcma_core_pci_up+0x2d/0x60 [bcma]
[ 13.224460] [<ffffffffa03dc17c>] brcms_c_up+0xfc/0x430 [brcmsmac]
[ 13.224467] [<ffffffffa03d1a7d>] brcms_up+0x1d/0x20 [brcmsmac]
[ 13.224473] [<ffffffffa03d2498>] brcms_ops_start+0x298/0x340 [brcmsmac]
[ 13.224478] [<ffffffff81600a12>] ? cfg80211_netdev_notifier_call+0xd2/0x5f0
[ 13.224483] [<ffffffff815fa53d>] ? packet_notifier+0xad/0x1d0
[ 13.224487] [<ffffffff81656e75>] ieee80211_do_open+0x325/0xf80
[ 13.224491] [<ffffffff8106ac09>] ? __raw_notifier_call_chain+0x9/0x10
[ 13.224495] [<ffffffff81657b41>] ieee80211_open+0x71/0x80
[ 13.224498] [<ffffffff81526267>] __dev_open+0x87/0xe0
[ 13.224502] [<ffffffff8152650c>] __dev_change_flags+0x9c/0x180
[ 13.224505] [<ffffffff815266a3>] dev_change_flags+0x23/0x70
[ 13.224509] [<ffffffff8158cd68>] devinet_ioctl+0x5b8/0x6a0
[ 13.224512] [<ffffffff8158d5c5>] inet_ioctl+0x75/0x90
[ 13.224516] [<ffffffff8150b38b>] sock_do_ioctl+0x2b/0x70
[ 13.224519] [<ffffffff8150b681>] sock_ioctl+0x71/0x2a0
[ 13.224523] [<ffffffff8114ed47>] do_vfs_ioctl+0x87/0x520
[ 13.224528] [<ffffffff8113f159>] ? ____fput+0x9/0x10
[ 13.224533] [<ffffffff8106228c>] ? task_work_run+0x9c/0xd0
[ 13.224537] [<ffffffff8114f271>] SyS_ioctl+0x91/0xb0
[ 13.224541] [<ffffffff816aa252>] system_call_fastpath+0x16/0x1b
[ 13.259433] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
[ 13.259454] brcmsmac bcma0:0: brcms_ops_config: change power-save mode: false (implement)
[ 13.260629] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
[ 17.812264] wlp3s0: authenticate with 00:1d:cf:b3:b0:80
[ 17.821725] wlp3s0: send auth to 00:1d:cf:b3:b0:80 (try 1/3)
[ 17.823480] wlp3s0: authenticated
[ 17.824123] wlp3s0: associate with 00:1d:cf:b3:b0:80 (try 1/3)
[ 17.827820] wlp3s0: RX AssocResp from 00:1d:cf:b3:b0:80 (capab=0x811 status=0 aid=1)
[ 17.828634] brcmsmac bcma0:0: brcmsmac: brcms_ops_bss_info_changed: associated
[ 17.828645] brcmsmac bcma0:0: brcms_ops_bss_info_changed: qos enabled: true (implement)
[ 17.828681] IPv6: ADDRCONF(NETDEV_CHANGE): wlp3s0: link becomes ready
[ 17.828826] wlp3s0: associated
[ 23.086128] brcmsmac bcma0:0: brcms_ops_bss_info_changed: arp filtering: 1 addresses (implement)
^ permalink raw reply
* Re: [PATCH 02/12] wlcore: add new plt power-mode: CHIP_AWAKE
From: Eliad Peller @ 2013-09-10 13:46 UTC (permalink / raw)
To: Luca Coelho; +Cc: Arik Nemtsov, linux-wireless@vger.kernel.org
In-Reply-To: <1378796198.4799.49.camel@porter.coelho.fi>
On Tue, Sep 10, 2013 at 9:56 AM, Luca Coelho <luca@coelho.fi> wrote:
> On Tue, 2013-09-10 at 08:47 +0200, Arik Nemtsov wrote:
>> On Tue, Sep 10, 2013 at 9:33 AM, Luca Coelho <luca@coelho.fi> wrote:
>> > On Tue, 2013-09-03 at 17:33 +0300, Eliad Peller wrote:
>> >> From: Yair Shapira <yair.shapira@ti.com>
>> >>
>> >> Under this mode the chip is powered on including sdio
>> >> but no FW is downloaded and run, interrupts are not enabled, etc...
>> >>
>> >> This mode is intended to allow RTTT to bridge sdio as a transport
>> >> to the chip.
>> >>
>> >> Driver only provides sdio access using the dev_mem debugfs file.
>> >>
>> >> Some fixes done to the code that ensures that PLT mode and normal
>> >> driver power mode (ifconfig/add_interface) are mutually excluded.
>> >>
>> >> Signed-off-by: Yair Shapira <yair.shapira@ti.com>
>> >> Signed-off-by: Eliad Peller <eliad@wizery.com>
>> >> ---
>> >
>> > I had some comments to this patch internally while I was still at TI.
>> > Namely, I asked why do we need a new way of doing this if this is
>> > already possible via debugsfs (using the gpio_power file)?
>>
>> Are you commenting on the correct patch? Seems this is just a patch to
>> prevent "ifconfig up" during PLT mode..
>
> Yes, I'm commenting on the right patch. It allows the chip power
> (namely the WLAN_EN GPIO pin) to be set directly, without loading the
> firmware and doing other initialization stuff. This can already be
> controlled via the gpio_power debugfs file. I've used that a bunch of
> times, including with the RTTT tool.
>
> Okay, this patch has a few more protections (eg. not allowing an
> interface to be added while the chip is powered in this way), but this
> could also be added on top of the existing implementation.
>
i guess this just a bit "cleaner" (similar to the way PLT is used).
the gpio_power debugfs only toggles the gpio power, without changing
the driver mode, so adding similar protections will be more
complicated.
Eliad.
^ permalink raw reply
* [PATCH 0/7] ath10k: improve TX path
From: Michal Kazior @ 2013-09-10 13:49 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
Hi,
This patchset addresses two issues:
* system/userspace starvation on heavy briding
UDP TX
* unstable/inconsistent UDP TX throughput
In short the patchset simplifies TX path by
removing HTC TX workers, makes WMI commands block
and makes ath10k more responsive to queues
becoming full. This contributes to both improved
throughput and makes the system more responsive
under heavy UDP TX load.
Max stable briding TX (ath10k as TX):
UDP w/o patchset: 520mbps
UDP w/ patchset: 570mbps
TCP w/o patchset: 350mbps
TCP w/ patchset: 400mbps
Measured with two 2x2 cards, one acting as an AP
on AP135 board, the other as a STA on a core i5
laptop. The AP135 was passing traffic from a
station on LAN/eth1, to the STA/wlan0.
Michal Kazior (7):
ath10k: simplify HTC credits calculation
ath10k: add HTC TX credits replenishing notification
ath10k: make WMI commands block by design
ath10k: simplify HTC command submitting
ath10k: improve beacon submission latency
ath10k: remove wmi pending count limit
ath10k: remove wmi event worker thread
drivers/net/wireless/ath/ath10k/core.h | 7 +-
drivers/net/wireless/ath/ath10k/htc.c | 215 +++++++------------------------
drivers/net/wireless/ath/ath10k/htc.h | 5 +-
drivers/net/wireless/ath/ath10k/mac.c | 16 +--
drivers/net/wireless/ath/ath10k/trace.h | 11 +-
drivers/net/wireless/ath/ath10k/wmi.c | 197 +++++++++++++---------------
drivers/net/wireless/ath/ath10k/wmi.h | 5 +-
7 files changed, 156 insertions(+), 300 deletions(-)
--
1.7.9.5
^ permalink raw reply
* [PATCH 2/7] ath10k: add HTC TX credits replenishing notification
From: Michal Kazior @ 2013-09-10 13:49 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
This will allow higher layers to anticipate and
act upon TX credits renewal. This will be
important for some future rework of WMI command
submission.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/htc.c | 9 +++++++++
drivers/net/wireless/ath/ath10k/htc.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
index 65c6e0c..030748e 100644
--- a/drivers/net/wireless/ath/ath10k/htc.c
+++ b/drivers/net/wireless/ath/ath10k/htc.c
@@ -150,6 +150,9 @@ err:
ep->tx_credits += credits;
spin_unlock_bh(&htc->tx_lock);
+ if (ep->ep_ops.ep_tx_credits)
+ ep->ep_ops.ep_tx_credits(htc->ar);
+
/* this is the simplest way to handle out-of-resources for non-credit
* based endpoints. credit based endpoints can still get -ENOSR, but
* this is highly unlikely as credit reservation should prevent that */
@@ -303,6 +306,12 @@ ath10k_htc_process_credit_report(struct ath10k_htc *htc,
ep = &htc->endpoint[report->eid];
ep->tx_credits += report->credits;
+ if (ep->ep_ops.ep_tx_credits) {
+ spin_unlock_bh(&htc->tx_lock);
+ ep->ep_ops.ep_tx_credits(htc->ar);
+ spin_lock_bh(&htc->tx_lock);
+ }
+
if (ep->tx_credits && !skb_queue_empty(&ep->tx_queue))
queue_work(htc->ar->workqueue, &ep->send_work);
}
diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
index e1dd8c7..92ca29b 100644
--- a/drivers/net/wireless/ath/ath10k/htc.h
+++ b/drivers/net/wireless/ath/ath10k/htc.h
@@ -276,6 +276,7 @@ struct ath10k_htc_ops {
struct ath10k_htc_ep_ops {
void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
+ void (*ep_tx_credits)(struct ath10k *);
};
/* service connection information */
--
1.7.9.5
^ permalink raw reply related
* [PATCH 1/7] ath10k: simplify HTC credits calculation
From: Michal Kazior @ 2013-09-10 13:49 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
Credit calculation was overly complex
unnecessarily. Now skb dequeing is more unified.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/htc.c | 59 ++++++---------------------------
1 file changed, 11 insertions(+), 48 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
index 7d445d3..65c6e0c 100644
--- a/drivers/net/wireless/ath/ath10k/htc.c
+++ b/drivers/net/wireless/ath/ath10k/htc.c
@@ -167,49 +167,6 @@ err:
return ret;
}
-static struct sk_buff *ath10k_htc_get_skb_credit_based(struct ath10k_htc *htc,
- struct ath10k_htc_ep *ep,
- u8 *credits)
-{
- struct sk_buff *skb;
- struct ath10k_skb_cb *skb_cb;
- int credits_required;
- int remainder;
- unsigned int transfer_len;
-
- lockdep_assert_held(&htc->tx_lock);
-
- skb = __skb_dequeue(&ep->tx_queue);
- if (!skb)
- return NULL;
-
- skb_cb = ATH10K_SKB_CB(skb);
- transfer_len = skb->len;
-
- if (likely(transfer_len <= htc->target_credit_size)) {
- credits_required = 1;
- } else {
- /* figure out how many credits this message requires */
- credits_required = transfer_len / htc->target_credit_size;
- remainder = transfer_len % htc->target_credit_size;
-
- if (remainder)
- credits_required++;
- }
-
- ath10k_dbg(ATH10K_DBG_HTC, "Credits required %d got %d\n",
- credits_required, ep->tx_credits);
-
- if (ep->tx_credits < credits_required) {
- __skb_queue_head(&ep->tx_queue, skb);
- return NULL;
- }
-
- ep->tx_credits -= credits_required;
- *credits = credits_required;
- return skb;
-}
-
static void ath10k_htc_send_work(struct work_struct *work)
{
struct ath10k_htc_ep *ep = container_of(work,
@@ -224,11 +181,17 @@ static void ath10k_htc_send_work(struct work_struct *work)
ath10k_htc_send_complete_check(ep, 0);
spin_lock_bh(&htc->tx_lock);
- if (ep->tx_credit_flow_enabled)
- skb = ath10k_htc_get_skb_credit_based(htc, ep,
- &credits);
- else
- skb = __skb_dequeue(&ep->tx_queue);
+ skb = __skb_dequeue(&ep->tx_queue);
+
+ if (ep->tx_credit_flow_enabled) {
+ /* integer division w/ round-up */
+ credits = (skb->len + htc->target_credit_size - 1) /
+ htc->target_credit_size;
+ if (ep->tx_credits < credits) {
+ __skb_queue_head(&ep->tx_queue, skb);
+ skb = NULL;
+ }
+ }
spin_unlock_bh(&htc->tx_lock);
if (!skb)
--
1.7.9.5
^ permalink raw reply related
* [PATCH 4/7] ath10k: simplify HTC command submitting
From: Michal Kazior @ 2013-09-10 13:50 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
The patch removes HTC endpoint tx workers in
favour of direct command submission. This makes a
lot more sense for data path.
mac80211 queues are effectively stopped/woken up
in a more timely fashion preventing build up of
frames. It's possible to push more traffic than
the device/system is able to handle and have no
hiccups or performance degradation with UDP
traffic.
WMI commands will now report errors properly and
possibly block as they actively can wait for tx
credits to become available.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/htc.c | 177 ++++++++-------------------------
drivers/net/wireless/ath/ath10k/htc.h | 4 -
drivers/net/wireless/ath/ath10k/wmi.c | 3 +-
3 files changed, 43 insertions(+), 141 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
index 030748e..79f17aa 100644
--- a/drivers/net/wireless/ath/ath10k/htc.c
+++ b/drivers/net/wireless/ath/ath10k/htc.c
@@ -117,100 +117,13 @@ static void ath10k_htc_prepare_tx_skb(struct ath10k_htc_ep *ep,
spin_unlock_bh(&ep->htc->tx_lock);
}
-static int ath10k_htc_issue_skb(struct ath10k_htc *htc,
- struct ath10k_htc_ep *ep,
- struct sk_buff *skb,
- u8 credits)
-{
- struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(skb);
- int ret;
-
- ath10k_dbg(ATH10K_DBG_HTC, "%s: ep %d skb %p\n", __func__,
- ep->eid, skb);
-
- ath10k_htc_prepare_tx_skb(ep, skb);
-
- ret = ath10k_skb_map(htc->ar->dev, skb);
- if (ret)
- goto err;
-
- ret = ath10k_hif_send_head(htc->ar,
- ep->ul_pipe_id,
- ep->eid,
- skb->len,
- skb);
- if (unlikely(ret))
- goto err;
-
- return 0;
-err:
- ath10k_warn("HTC issue failed: %d\n", ret);
-
- spin_lock_bh(&htc->tx_lock);
- ep->tx_credits += credits;
- spin_unlock_bh(&htc->tx_lock);
-
- if (ep->ep_ops.ep_tx_credits)
- ep->ep_ops.ep_tx_credits(htc->ar);
-
- /* this is the simplest way to handle out-of-resources for non-credit
- * based endpoints. credit based endpoints can still get -ENOSR, but
- * this is highly unlikely as credit reservation should prevent that */
- if (ret == -ENOSR) {
- spin_lock_bh(&htc->tx_lock);
- __skb_queue_head(&ep->tx_queue, skb);
- spin_unlock_bh(&htc->tx_lock);
-
- return ret;
- }
-
- skb_cb->is_aborted = true;
- ath10k_htc_notify_tx_completion(ep, skb);
-
- return ret;
-}
-
-static void ath10k_htc_send_work(struct work_struct *work)
-{
- struct ath10k_htc_ep *ep = container_of(work,
- struct ath10k_htc_ep, send_work);
- struct ath10k_htc *htc = ep->htc;
- struct sk_buff *skb;
- u8 credits = 0;
- int ret;
-
- while (true) {
- if (ep->ul_is_polled)
- ath10k_htc_send_complete_check(ep, 0);
-
- spin_lock_bh(&htc->tx_lock);
- skb = __skb_dequeue(&ep->tx_queue);
-
- if (ep->tx_credit_flow_enabled) {
- /* integer division w/ round-up */
- credits = (skb->len + htc->target_credit_size - 1) /
- htc->target_credit_size;
- if (ep->tx_credits < credits) {
- __skb_queue_head(&ep->tx_queue, skb);
- skb = NULL;
- }
- }
- spin_unlock_bh(&htc->tx_lock);
-
- if (!skb)
- break;
-
- ret = ath10k_htc_issue_skb(htc, ep, skb, credits);
- if (ret == -ENOSR)
- break;
- }
-}
-
int ath10k_htc_send(struct ath10k_htc *htc,
enum ath10k_htc_ep_id eid,
struct sk_buff *skb)
{
struct ath10k_htc_ep *ep = &htc->endpoint[eid];
+ int credits = 0;
+ int ret;
if (htc->ar->state == ATH10K_STATE_WEDGED)
return -ECOMM;
@@ -220,18 +133,55 @@ int ath10k_htc_send(struct ath10k_htc *htc,
return -ENOENT;
}
+ /* FIXME: This looks ugly, can we fix it? */
spin_lock_bh(&htc->tx_lock);
if (htc->stopped) {
spin_unlock_bh(&htc->tx_lock);
return -ESHUTDOWN;
}
+ spin_unlock_bh(&htc->tx_lock);
- __skb_queue_tail(&ep->tx_queue, skb);
skb_push(skb, sizeof(struct ath10k_htc_hdr));
- spin_unlock_bh(&htc->tx_lock);
- queue_work(htc->ar->workqueue, &ep->send_work);
+ if (ep->tx_credit_flow_enabled) {
+ /* integer division w/ round-up */
+ credits = (skb->len + htc->target_credit_size - 1) /
+ htc->target_credit_size;
+ spin_lock_bh(&htc->tx_lock);
+ if (ep->tx_credits < credits) {
+ spin_unlock_bh(&htc->tx_lock);
+ ret = -EAGAIN;
+ goto err_pull;
+ }
+ ep->tx_credits -= credits;
+ spin_unlock_bh(&htc->tx_lock);
+ }
+
+ ath10k_htc_prepare_tx_skb(ep, skb);
+
+ ret = ath10k_skb_map(htc->ar->dev, skb);
+ if (ret)
+ goto err_credits;
+
+ ret = ath10k_hif_send_head(htc->ar, ep->ul_pipe_id, ep->eid,
+ skb->len, skb);
+ if (ret)
+ goto err_unmap;
+
return 0;
+
+err_unmap:
+ ath10k_skb_unmap(htc->ar->dev, skb);
+err_credits:
+ spin_lock_bh(&htc->tx_lock);
+ ep->tx_credits += credits;
+ spin_unlock_bh(&htc->tx_lock);
+
+ if (ep->ep_ops.ep_tx_credits)
+ ep->ep_ops.ep_tx_credits(htc->ar);
+err_pull:
+ skb_pull(skb, sizeof(struct ath10k_htc_hdr));
+ return ret;
}
static int ath10k_htc_tx_completion_handler(struct ath10k *ar,
@@ -244,39 +194,9 @@ static int ath10k_htc_tx_completion_handler(struct ath10k *ar,
ath10k_htc_notify_tx_completion(ep, skb);
/* the skb now belongs to the completion handler */
- /* note: when using TX credit flow, the re-checking of queues happens
- * when credits flow back from the target. in the non-TX credit case,
- * we recheck after the packet completes */
- spin_lock_bh(&htc->tx_lock);
- if (!ep->tx_credit_flow_enabled && !htc->stopped)
- queue_work(ar->workqueue, &ep->send_work);
- spin_unlock_bh(&htc->tx_lock);
-
return 0;
}
-/* flush endpoint TX queue */
-static void ath10k_htc_flush_endpoint_tx(struct ath10k_htc *htc,
- struct ath10k_htc_ep *ep)
-{
- struct sk_buff *skb;
- struct ath10k_skb_cb *skb_cb;
-
- spin_lock_bh(&htc->tx_lock);
- for (;;) {
- skb = __skb_dequeue(&ep->tx_queue);
- if (!skb)
- break;
-
- skb_cb = ATH10K_SKB_CB(skb);
- skb_cb->is_aborted = true;
- ath10k_htc_notify_tx_completion(ep, skb);
- }
- spin_unlock_bh(&htc->tx_lock);
-
- cancel_work_sync(&ep->send_work);
-}
-
/***********/
/* Receive */
/***********/
@@ -311,9 +231,6 @@ ath10k_htc_process_credit_report(struct ath10k_htc *htc,
ep->ep_ops.ep_tx_credits(htc->ar);
spin_lock_bh(&htc->tx_lock);
}
-
- if (ep->tx_credits && !skb_queue_empty(&ep->tx_queue))
- queue_work(htc->ar->workqueue, &ep->send_work);
}
spin_unlock_bh(&htc->tx_lock);
}
@@ -571,10 +488,8 @@ static void ath10k_htc_reset_endpoint_states(struct ath10k_htc *htc)
ep->max_ep_message_len = 0;
ep->max_tx_queue_depth = 0;
ep->eid = i;
- skb_queue_head_init(&ep->tx_queue);
ep->htc = htc;
ep->tx_credit_flow_enabled = true;
- INIT_WORK(&ep->send_work, ath10k_htc_send_work);
}
}
@@ -917,18 +832,10 @@ int ath10k_htc_start(struct ath10k_htc *htc)
*/
void ath10k_htc_stop(struct ath10k_htc *htc)
{
- int i;
- struct ath10k_htc_ep *ep;
-
spin_lock_bh(&htc->tx_lock);
htc->stopped = true;
spin_unlock_bh(&htc->tx_lock);
- for (i = ATH10K_HTC_EP_0; i < ATH10K_HTC_EP_COUNT; i++) {
- ep = &htc->endpoint[i];
- ath10k_htc_flush_endpoint_tx(htc, ep);
- }
-
ath10k_hif_stop(htc->ar);
}
diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
index 92ca29b..4716d33 100644
--- a/drivers/net/wireless/ath/ath10k/htc.h
+++ b/drivers/net/wireless/ath/ath10k/htc.h
@@ -316,15 +316,11 @@ struct ath10k_htc_ep {
int ul_is_polled; /* call HIF to get tx completions */
int dl_is_polled; /* call HIF to fetch rx (not implemented) */
- struct sk_buff_head tx_queue;
-
u8 seq_no; /* for debugging */
int tx_credits;
int tx_credit_size;
int tx_credits_per_max_message;
bool tx_credit_flow_enabled;
-
- struct work_struct send_work;
};
struct ath10k_htc_svc_tx_credits {
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index 66cd892..ff407c2 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -120,8 +120,7 @@ err_pull:
return ret;
}
-static void ath10k_wmi_op_ep_tx_credits(struct ath10k *ar,
- enum ath10k_htc_ep_id eid)
+static void ath10k_wmi_op_ep_tx_credits(struct ath10k *ar)
{
wake_up(&ar->wmi.tx_credits_wq);
}
--
1.7.9.5
^ permalink raw reply related
* [PATCH 6/7] ath10k: remove wmi pending count limit
From: Michal Kazior @ 2013-09-10 13:50 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
It is no longer used nor necessary since WMI
commands can block.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/core.h | 2 --
drivers/net/wireless/ath/ath10k/mac.c | 9 ---------
drivers/net/wireless/ath/ath10k/wmi.c | 32 --------------------------------
drivers/net/wireless/ath/ath10k/wmi.h | 2 --
4 files changed, 45 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 14b7d3d..c2b6a76 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -112,8 +112,6 @@ struct ath10k_wmi {
enum ath10k_htc_ep_id eid;
struct completion service_ready;
struct completion unified_ready;
- atomic_t pending_tx_count;
- wait_queue_head_t wq;
wait_queue_head_t tx_credits_wq;
struct sk_buff_head wmi_event_list;
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 439d0c3..698088f 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1205,8 +1205,6 @@ static void ath10k_bss_disassoc(struct ieee80211_hw *hw,
ath10k_dbg(ATH10K_DBG_MAC, "VDEV: %d ath10k_wmi_vdev_down failed (%d)\n",
arvif->vdev_id, ret);
- ath10k_wmi_flush_tx(ar);
-
arvif->def_wep_key_index = 0;
}
@@ -1643,8 +1641,6 @@ static int ath10k_abort_scan(struct ath10k *ar)
return -EIO;
}
- ath10k_wmi_flush_tx(ar);
-
ret = wait_for_completion_timeout(&ar->scan.completed, 3*HZ);
if (ret == 0)
ath10k_warn("timed out while waiting for scan to stop\n");
@@ -1678,10 +1674,6 @@ static int ath10k_start_scan(struct ath10k *ar,
if (ret)
return ret;
- /* make sure we submit the command so the completion
- * timeout makes sense */
- ath10k_wmi_flush_tx(ar);
-
ret = wait_for_completion_timeout(&ar->scan.started, 1*HZ);
if (ret == 0) {
ath10k_abort_scan(ar);
@@ -1903,7 +1895,6 @@ static int ath10k_config(struct ieee80211_hw *hw, u32 changed)
ret = ath10k_monitor_destroy(ar);
}
- ath10k_wmi_flush_tx(ar);
mutex_unlock(&ar->conf_mutex);
return ret;
}
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index c13e434..aa7093a 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -23,30 +23,6 @@
#include "wmi.h"
#include "mac.h"
-void ath10k_wmi_flush_tx(struct ath10k *ar)
-{
- int ret;
-
- lockdep_assert_held(&ar->conf_mutex);
-
- if (ar->state == ATH10K_STATE_WEDGED) {
- ath10k_warn("wmi flush skipped - device is wedged anyway\n");
- return;
- }
-
- ret = wait_event_timeout(ar->wmi.wq,
- atomic_read(&ar->wmi.pending_tx_count) == 0,
- 5*HZ);
- if (atomic_read(&ar->wmi.pending_tx_count) == 0)
- return;
-
- if (ret == 0)
- ret = -ETIMEDOUT;
-
- if (ret < 0)
- ath10k_warn("wmi flush failed (%d)\n", ret);
-}
-
int ath10k_wmi_wait_for_service_ready(struct ath10k *ar)
{
int ret;
@@ -85,9 +61,6 @@ static struct sk_buff *ath10k_wmi_alloc_skb(u32 len)
static void ath10k_wmi_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb)
{
dev_kfree_skb(skb);
-
- if (atomic_sub_return(1, &ar->wmi.pending_tx_count) == 0)
- wake_up(&ar->wmi.wq);
}
static int ath10k_wmi_cmd_send_nowait(struct ath10k *ar, struct sk_buff *skb,
@@ -1239,7 +1212,6 @@ int ath10k_wmi_attach(struct ath10k *ar)
{
init_completion(&ar->wmi.service_ready);
init_completion(&ar->wmi.unified_ready);
- init_waitqueue_head(&ar->wmi.wq);
init_waitqueue_head(&ar->wmi.tx_credits_wq);
skb_queue_head_init(&ar->wmi.wmi_event_list);
@@ -1250,10 +1222,6 @@ int ath10k_wmi_attach(struct ath10k *ar)
void ath10k_wmi_detach(struct ath10k *ar)
{
- /* HTC should've drained the packets already */
- if (WARN_ON(atomic_read(&ar->wmi.pending_tx_count) > 0))
- ath10k_warn("there are still pending packets\n");
-
cancel_work_sync(&ar->wmi.wmi_event_work);
skb_queue_purge(&ar->wmi.wmi_event_list);
}
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
index 482461a..82d6103 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -3002,7 +3002,6 @@ struct wmi_force_fw_hang_cmd {
#define WMI_MAX_EVENT 0x1000
/* Maximum number of pending TXed WMI packets */
-#define WMI_MAX_PENDING_TX_COUNT 128
#define WMI_SKB_HEADROOM sizeof(struct wmi_cmd_hdr)
/* By default disable power save for IBSS */
@@ -3015,7 +3014,6 @@ int ath10k_wmi_attach(struct ath10k *ar);
void ath10k_wmi_detach(struct ath10k *ar);
int ath10k_wmi_wait_for_service_ready(struct ath10k *ar);
int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar);
-void ath10k_wmi_flush_tx(struct ath10k *ar);
int ath10k_wmi_connect_htc_service(struct ath10k *ar);
int ath10k_wmi_pdev_set_channel(struct ath10k *ar,
--
1.7.9.5
^ permalink raw reply related
* [PATCH 3/7] ath10k: make WMI commands block by design
From: Michal Kazior @ 2013-09-10 13:49 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
This will be necessary for further changes in
command submission scheme.
Once HTC is cleaned up WMI commands will finally
block.
This requires for SWBA to be processed in a
non-atomic context for now. Once other necessary
changes are in this will be reverted.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/core.h | 1 +
drivers/net/wireless/ath/ath10k/trace.h | 11 ++++---
drivers/net/wireless/ath/ath10k/wmi.c | 54 +++++++++++++++++++------------
3 files changed, 42 insertions(+), 24 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 22b17d6..c953a33 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -114,6 +114,7 @@ struct ath10k_wmi {
struct completion unified_ready;
atomic_t pending_tx_count;
wait_queue_head_t wq;
+ wait_queue_head_t tx_credits_wq;
struct sk_buff_head wmi_event_list;
struct work_struct wmi_event_work;
diff --git a/drivers/net/wireless/ath/ath10k/trace.h b/drivers/net/wireless/ath/ath10k/trace.h
index bf1ceb8..fd53130 100644
--- a/drivers/net/wireless/ath/ath10k/trace.h
+++ b/drivers/net/wireless/ath/ath10k/trace.h
@@ -111,26 +111,29 @@ TRACE_EVENT(ath10k_log_dbg_dump,
);
TRACE_EVENT(ath10k_wmi_cmd,
- TP_PROTO(int id, void *buf, size_t buf_len),
+ TP_PROTO(int id, void *buf, size_t buf_len, int ret),
- TP_ARGS(id, buf, buf_len),
+ TP_ARGS(id, buf, buf_len, ret),
TP_STRUCT__entry(
__field(unsigned int, id)
__field(size_t, buf_len)
__dynamic_array(u8, buf, buf_len)
+ __field(int ret)
),
TP_fast_assign(
__entry->id = id;
__entry->buf_len = buf_len;
+ __entry->ret = ret;
memcpy(__get_dynamic_array(buf), buf, buf_len);
),
TP_printk(
- "id %d len %zu",
+ "id %d len %zu ret %d",
__entry->id,
- __entry->buf_len
+ __entry->buf_len,
+ __entry->ret
)
);
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index 32fd5e7..66cd892 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -90,13 +90,12 @@ static void ath10k_wmi_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb)
wake_up(&ar->wmi.wq);
}
-/* WMI command API */
-static int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb,
- enum wmi_cmd_id cmd_id)
+static int ath10k_wmi_cmd_send_nowait(struct ath10k *ar, struct sk_buff *skb,
+ enum wmi_cmd_id cmd_id)
{
struct ath10k_skb_cb *skb_cb = ATH10K_SKB_CB(skb);
struct wmi_cmd_hdr *cmd_hdr;
- int status;
+ int ret;
u32 cmd = 0;
if (skb_push(skb, sizeof(struct wmi_cmd_hdr)) == NULL)
@@ -107,26 +106,40 @@ static int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb,
cmd_hdr = (struct wmi_cmd_hdr *)skb->data;
cmd_hdr->cmd_id = __cpu_to_le32(cmd);
- if (atomic_add_return(1, &ar->wmi.pending_tx_count) >
- WMI_MAX_PENDING_TX_COUNT) {
- /* avoid using up memory when FW hangs */
- dev_kfree_skb(skb);
- atomic_dec(&ar->wmi.pending_tx_count);
- return -EBUSY;
- }
-
memset(skb_cb, 0, sizeof(*skb_cb));
+ ret = ath10k_htc_send(&ar->htc, ar->wmi.eid, skb);
+ trace_ath10k_wmi_cmd(cmd_id, skb->data, skb->len, ret);
- trace_ath10k_wmi_cmd(cmd_id, skb->data, skb->len);
+ if (ret)
+ goto err_pull;
- status = ath10k_htc_send(&ar->htc, ar->wmi.eid, skb);
- if (status) {
+ return 0;
+
+err_pull:
+ skb_pull(skb, sizeof(struct wmi_cmd_hdr));
+ return ret;
+}
+
+static void ath10k_wmi_op_ep_tx_credits(struct ath10k *ar,
+ enum ath10k_htc_ep_id eid)
+{
+ wake_up(&ar->wmi.tx_credits_wq);
+}
+
+static int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb,
+ enum wmi_cmd_id cmd_id)
+{
+ int ret = -EINVAL;
+
+ wait_event_timeout(ar->wmi.tx_credits_wq, ({
+ ret = ath10k_wmi_cmd_send_nowait(ar, skb, cmd_id);
+ (ret != -EAGAIN);
+ }), 3*HZ);
+
+ if (ret)
dev_kfree_skb_any(skb);
- atomic_dec(&ar->wmi.pending_tx_count);
- return status;
- }
- return 0;
+ return ret;
}
static int ath10k_wmi_event_scan(struct ath10k *ar, struct sk_buff *skb)
@@ -1168,7 +1181,6 @@ static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb)
/* some events require to be handled ASAP
* thus can't be defered to a worker thread */
switch (event_id) {
- case WMI_HOST_SWBA_EVENTID:
case WMI_MGMT_RX_EVENTID:
ath10k_wmi_event_process(ar, skb);
return;
@@ -1186,6 +1198,7 @@ int ath10k_wmi_attach(struct ath10k *ar)
init_completion(&ar->wmi.service_ready);
init_completion(&ar->wmi.unified_ready);
init_waitqueue_head(&ar->wmi.wq);
+ init_waitqueue_head(&ar->wmi.tx_credits_wq);
skb_queue_head_init(&ar->wmi.wmi_event_list);
INIT_WORK(&ar->wmi.wmi_event_work, ath10k_wmi_event_work);
@@ -1215,6 +1228,7 @@ int ath10k_wmi_connect_htc_service(struct ath10k *ar)
/* these fields are the same for all service endpoints */
conn_req.ep_ops.ep_tx_complete = ath10k_wmi_htc_tx_complete;
conn_req.ep_ops.ep_rx_complete = ath10k_wmi_process_rx;
+ conn_req.ep_ops.ep_tx_credits = ath10k_wmi_op_ep_tx_credits;
/* connect to control service */
conn_req.service_id = ATH10K_HTC_SVC_ID_WMI_CONTROL;
--
1.7.9.5
^ permalink raw reply related
* [PATCH 5/7] ath10k: improve beacon submission latency
From: Michal Kazior @ 2013-09-10 13:50 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
The patch prevents beacon misses in some case of
heavy load on a system.
If a beacon can't be transmitted directly from an
SWBA event it will be left in arvif->beacon and
transmission will be retried once TX credits
become available.
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/core.h | 1 +
drivers/net/wireless/ath/ath10k/mac.c | 7 ++++
drivers/net/wireless/ath/ath10k/wmi.c | 70 ++++++++++++++++++++++++++------
drivers/net/wireless/ath/ath10k/wmi.h | 3 +-
4 files changed, 67 insertions(+), 14 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index c953a33..14b7d3d 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -204,6 +204,7 @@ struct ath10k_vif {
enum wmi_vdev_subtype vdev_subtype;
u32 beacon_interval;
u32 dtim_period;
+ struct sk_buff *beacon;
struct ath10k *ar;
struct ieee80211_vif *vif;
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index 248248b..439d0c3 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -2056,6 +2056,13 @@ static void ath10k_remove_interface(struct ieee80211_hw *hw,
ath10k_dbg(ATH10K_DBG_MAC, "Remove interface: id %d\n", arvif->vdev_id);
+ spin_lock_bh(&ar->data_lock);
+ if (arvif->beacon) {
+ dev_kfree_skb_any(arvif->beacon);
+ arvif->beacon = NULL;
+ }
+ spin_unlock_bh(&ar->data_lock);
+
ar->free_vdev_map |= 1 << (arvif->vdev_id);
if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index ff407c2..c13e434 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -120,8 +120,51 @@ err_pull:
return ret;
}
+static void ath10k_wmi_tx_beacon_nowait(struct ath10k_vif *arvif)
+{
+ struct wmi_bcn_tx_arg arg = {0};
+ int ret;
+
+ lockdep_assert_held(&arvif->ar->data_lock);
+
+ if (arvif->beacon == NULL)
+ return;
+
+ arg.vdev_id = arvif->vdev_id;
+ arg.tx_rate = 0;
+ arg.tx_power = 0;
+ arg.bcn = arvif->beacon->data;
+ arg.bcn_len = arvif->beacon->len;
+
+ ret = ath10k_wmi_beacon_send_nowait(arvif->ar, &arg);
+ if (ret)
+ return;
+
+ dev_kfree_skb_any(arvif->beacon);
+ arvif->beacon = NULL;
+}
+
+static void ath10k_wmi_tx_beacons_iter(void *data, u8 *mac,
+ struct ieee80211_vif *vif)
+{
+ struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif);
+
+ ath10k_wmi_tx_beacon_nowait(arvif);
+}
+
+static void ath10k_wmi_tx_beacons_nowait(struct ath10k *ar)
+{
+ spin_lock_bh(&ar->data_lock);
+ ieee80211_iterate_active_interfaces_atomic(ar->hw,
+ IEEE80211_IFACE_ITER_NORMAL,
+ ath10k_wmi_tx_beacons_iter,
+ NULL);
+ spin_unlock_bh(&ar->data_lock);
+}
+
static void ath10k_wmi_op_ep_tx_credits(struct ath10k *ar)
{
+ ath10k_wmi_tx_beacons_nowait(ar);
wake_up(&ar->wmi.tx_credits_wq);
}
@@ -131,6 +174,7 @@ static int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb,
int ret = -EINVAL;
wait_event_timeout(ar->wmi.tx_credits_wq, ({
+ ath10k_wmi_tx_beacons_nowait(ar);
ret = ath10k_wmi_cmd_send_nowait(ar, skb, cmd_id);
(ret != -EAGAIN);
}), 3*HZ);
@@ -760,10 +804,8 @@ static void ath10k_wmi_event_host_swba(struct ath10k *ar, struct sk_buff *skb)
int i = -1;
struct wmi_bcn_info *bcn_info;
struct ath10k_vif *arvif;
- struct wmi_bcn_tx_arg arg;
struct sk_buff *bcn;
int vdev_id = 0;
- int ret;
ath10k_dbg(ATH10K_DBG_MGMT, "WMI_HOST_SWBA_EVENTID\n");
@@ -820,17 +862,17 @@ static void ath10k_wmi_event_host_swba(struct ath10k *ar, struct sk_buff *skb)
ath10k_wmi_update_tim(ar, arvif, bcn, bcn_info);
ath10k_wmi_update_noa(ar, arvif, bcn, bcn_info);
- arg.vdev_id = arvif->vdev_id;
- arg.tx_rate = 0;
- arg.tx_power = 0;
- arg.bcn = bcn->data;
- arg.bcn_len = bcn->len;
+ spin_lock_bh(&ar->data_lock);
+ if (arvif->beacon) {
+ ath10k_warn("SWBA overrun on vdev %d\n",
+ arvif->vdev_id);
+ dev_kfree_skb_any(arvif->beacon);
+ }
- ret = ath10k_wmi_beacon_send(ar, &arg);
- if (ret)
- ath10k_warn("could not send beacon (%d)\n", ret);
+ arvif->beacon = bcn;
- dev_kfree_skb_any(bcn);
+ ath10k_wmi_tx_beacon_nowait(arvif);
+ spin_unlock_bh(&ar->data_lock);
}
}
@@ -1181,6 +1223,7 @@ static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb)
* thus can't be defered to a worker thread */
switch (event_id) {
case WMI_MGMT_RX_EVENTID:
+ case WMI_HOST_SWBA_EVENTID:
ath10k_wmi_event_process(ar, skb);
return;
default:
@@ -2138,7 +2181,8 @@ int ath10k_wmi_peer_assoc(struct ath10k *ar,
return ath10k_wmi_cmd_send(ar, skb, WMI_PEER_ASSOC_CMDID);
}
-int ath10k_wmi_beacon_send(struct ath10k *ar, const struct wmi_bcn_tx_arg *arg)
+int ath10k_wmi_beacon_send_nowait(struct ath10k *ar,
+ const struct wmi_bcn_tx_arg *arg)
{
struct wmi_bcn_tx_cmd *cmd;
struct sk_buff *skb;
@@ -2154,7 +2198,7 @@ int ath10k_wmi_beacon_send(struct ath10k *ar, const struct wmi_bcn_tx_arg *arg)
cmd->hdr.bcn_len = __cpu_to_le32(arg->bcn_len);
memcpy(cmd->bcn, arg->bcn, arg->bcn_len);
- return ath10k_wmi_cmd_send(ar, skb, WMI_BCN_TX_CMDID);
+ return ath10k_wmi_cmd_send_nowait(ar, skb, WMI_BCN_TX_CMDID);
}
static void ath10k_wmi_pdev_set_wmm_param(struct wmi_wmm_params *params,
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
index 40fcf05..482461a 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -3068,7 +3068,8 @@ int ath10k_wmi_set_ap_ps_param(struct ath10k *ar, u32 vdev_id, const u8 *mac,
enum wmi_ap_ps_peer_param param_id, u32 value);
int ath10k_wmi_scan_chan_list(struct ath10k *ar,
const struct wmi_scan_chan_list_arg *arg);
-int ath10k_wmi_beacon_send(struct ath10k *ar, const struct wmi_bcn_tx_arg *arg);
+int ath10k_wmi_beacon_send_nowait(struct ath10k *ar,
+ const struct wmi_bcn_tx_arg *arg);
int ath10k_wmi_pdev_set_wmm_params(struct ath10k *ar,
const struct wmi_pdev_set_wmm_params_arg *arg);
int ath10k_wmi_request_stats(struct ath10k *ar, enum wmi_stats_id stats_id);
--
1.7.9.5
^ permalink raw reply related
* [PATCH 7/7] ath10k: remove wmi event worker thread
From: Michal Kazior @ 2013-09-10 13:50 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Michal Kazior
In-Reply-To: <1378821003-22925-1-git-send-email-michal.kazior@tieto.com>
It's not really necessary to have this processed
in a worker. There are no sleepable calls (and
actually shouldn't be).
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
---
drivers/net/wireless/ath/ath10k/core.h | 3 ---
drivers/net/wireless/ath/ath10k/wmi.c | 44 +-------------------------------
2 files changed, 1 insertion(+), 46 deletions(-)
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index c2b6a76..fcf94ee 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -113,9 +113,6 @@ struct ath10k_wmi {
struct completion service_ready;
struct completion unified_ready;
wait_queue_head_t tx_credits_wq;
-
- struct sk_buff_head wmi_event_list;
- struct work_struct wmi_event_work;
};
struct ath10k_peer_stat {
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index aa7093a..3831694 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -1051,7 +1051,7 @@ static int ath10k_wmi_ready_event_rx(struct ath10k *ar, struct sk_buff *skb)
return 0;
}
-static void ath10k_wmi_event_process(struct ath10k *ar, struct sk_buff *skb)
+static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb)
{
struct wmi_cmd_hdr *cmd_hdr;
enum wmi_event_id id;
@@ -1170,43 +1170,6 @@ static void ath10k_wmi_event_process(struct ath10k *ar, struct sk_buff *skb)
dev_kfree_skb(skb);
}
-static void ath10k_wmi_event_work(struct work_struct *work)
-{
- struct ath10k *ar = container_of(work, struct ath10k,
- wmi.wmi_event_work);
- struct sk_buff *skb;
-
- for (;;) {
- skb = skb_dequeue(&ar->wmi.wmi_event_list);
- if (!skb)
- break;
-
- ath10k_wmi_event_process(ar, skb);
- }
-}
-
-static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb)
-{
- struct wmi_cmd_hdr *cmd_hdr = (struct wmi_cmd_hdr *)skb->data;
- enum wmi_event_id event_id;
-
- event_id = MS(__le32_to_cpu(cmd_hdr->cmd_id), WMI_CMD_HDR_CMD_ID);
-
- /* some events require to be handled ASAP
- * thus can't be defered to a worker thread */
- switch (event_id) {
- case WMI_MGMT_RX_EVENTID:
- case WMI_HOST_SWBA_EVENTID:
- ath10k_wmi_event_process(ar, skb);
- return;
- default:
- break;
- }
-
- skb_queue_tail(&ar->wmi.wmi_event_list, skb);
- queue_work(ar->workqueue, &ar->wmi.wmi_event_work);
-}
-
/* WMI Initialization functions */
int ath10k_wmi_attach(struct ath10k *ar)
{
@@ -1214,16 +1177,11 @@ int ath10k_wmi_attach(struct ath10k *ar)
init_completion(&ar->wmi.unified_ready);
init_waitqueue_head(&ar->wmi.tx_credits_wq);
- skb_queue_head_init(&ar->wmi.wmi_event_list);
- INIT_WORK(&ar->wmi.wmi_event_work, ath10k_wmi_event_work);
-
return 0;
}
void ath10k_wmi_detach(struct ath10k *ar)
{
- cancel_work_sync(&ar->wmi.wmi_event_work);
- skb_queue_purge(&ar->wmi.wmi_event_list);
}
int ath10k_wmi_connect_htc_service(struct ath10k *ar)
--
1.7.9.5
^ permalink raw reply related
* Re: Performance problems with Netgear WNDAP350
From: Seth Forshee @ 2013-09-10 13:55 UTC (permalink / raw)
To: Sujith Manoharan; +Cc: Johannes Berg, linux-wireless
In-Reply-To: <21038.55900.901542.571888@gargle.gargle.HOWL>
On Tue, Sep 10, 2013 at 02:07:48PM +0530, Sujith Manoharan wrote:
> Seth Forshee wrote:
> > I posted some wireshark traces in case someone else can find something
> > else informative that I've missed. They're at
> > http://people.canonical.com/~sforshee/wndap350/:
> >
> > * iperf-iwlwifi.pcapng.gz: Trace from iperf client on Linux STA with
> > iwlwifi
> > * iperf-server.pcapng.gz: Trace from the iperf server for the same test
> > as iperf-iwlwifi
> > * iperf-osx.pcapng.gz: Trace from iperf client on OSX, using Broadcom
> > wireless
>
> The link with the iwlwifi client seems to be drowning in RTS/CTS exchanges
> compared with the osx client.
>
> iwlwifi: total: 109087, RTS - 9782 (9.0 %)
> osx: total: 522581, RTS - 8366 (1.6 %)
Yes, but I don't think that's behind the APs failure to send us frames
for long periods of time. I can better compare the RTS/CTS exchanges
between the two when I can get an otherwise stable connection to the AP
from Linux.
Seth
^ permalink raw reply
* Re: [PATCH 03/12] wlcore: disable elp sleep while in plt mode
From: Eliad Peller @ 2013-09-10 14:04 UTC (permalink / raw)
To: Luca Coelho; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <1378794898.4799.37.camel@porter.coelho.fi>
On Tue, Sep 10, 2013 at 9:34 AM, Luca Coelho <luca@coelho.fi> wrote:
> On Tue, 2013-09-03 at 17:33 +0300, Eliad Peller wrote:
>> From: Yair Shapira <yair.shapira@ti.com>
>>
>> We now disable elp sleep during plt mode to allow normal operation of
>> plt tools such as calibrator.
>>
>> Having elp_sleep enabled during plt mode is actually not required and
>> in fact it disrupt plt operations such as rx statistics etc.
>>
>> Signed-off-by: Yair Shapira <yair.shapira@ti.com>
>> Signed-off-by: Eliad Peller <eliad@wizery.com>
>> ---
>
> I also had a comment internally about this one. Why do we need this?
> AFAICT this would never happen in real life, since the firmware is not
> even loaded at this point. Is there any real life situation where we
> try to go into ELP while in PLT mode?
>
i'm not familiar with the whole plt process, but i guess some flows
might indeed end up in elp (e.g. via wl1271_cmd_interrogate(), in
order to read statistics)
Eliad.
^ permalink raw reply
* Re: [PATCH 05/12] wl18xx: increase the number of allowed BA sessions
From: Eliad Peller @ 2013-09-10 14:11 UTC (permalink / raw)
To: Luca Coelho; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <1378795155.4799.40.camel@porter.coelho.fi>
On Tue, Sep 10, 2013 at 9:39 AM, Luca Coelho <luca@coelho.fi> wrote:
> On Tue, 2013-09-03 at 17:34 +0300, Eliad Peller wrote:
>> From: Victor Goldenshtein <victorg@ti.com>
>>
>> The current fw (actually starting from fw 8.5.0.0.58)
>> supports 8 rx BA sessions.
>>
>> Signed-off-by: Victor Goldenshtein <victorg@ti.com>
>> Signed-off-by: Eliad Peller <eliad@wizery.com>
>> ---
>
> The latest firmware version published at linux-firmware.git is
> 8.5.0.0.55 (wl18xx-fw-2.bin), so this patch cannot be taken into the
> official tree yet.
>
> Please publish a newer version of the firmware (with appropriate
> increase in the filename version), since I cannot do that myself
> anymore.
>
you're right.
i'll check with fw guys what fw should be upstreamed.
please drop this patch for now, and let's continue only with the other
patches (that don't require a new fw, afaict).
thanks,
Eliad.
^ permalink raw reply
* Re: [PATCH 06/12] wlcore: send EAPOL frames with voice priority
From: Eliad Peller @ 2013-09-10 14:15 UTC (permalink / raw)
To: Luca Coelho; +Cc: Arik Nemtsov, linux-wireless@vger.kernel.org
In-Reply-To: <1378804510.4799.69.camel@porter.coelho.fi>
On Tue, Sep 10, 2013 at 12:15 PM, Luca Coelho <luca@coelho.fi> wrote:
> On Tue, 2013-09-10 at 11:11 +0200, Arik Nemtsov wrote:
>> On Tue, Sep 10, 2013 at 9:47 AM, Luca Coelho <luca@coelho.fi> wrote:
>> > On Tue, 2013-09-03 at 17:34 +0300, Eliad Peller wrote:
>> >> From: Igal Chernobelsky <igalc@ti.com>
>> >>
>> >> Send EAPOL frames with voice priority by setting TX_HW_ATTR_EAPOL_FRAME
>> >> new bit in tx attribute. Sending EAPOL with voice priority fixes
>> >> re-key timeout during heavy traffic issue.
>> >>
>> >> Signed-off-by: Igal Chernobelsky <igalc@ti.com>
>> >> Signed-off-by: Eliad Peller <eliad@wizery.com>
>> >> ---
>> >
>> > This seems to be the same problem that Ben had and debugged by himself
>> > [1]. Fixing this in hostapd/wpa_supplicant seems more appropriate?
>> >
>> > This patch seems to take an advantage of some sort of hack in the
>> > firmware that will change the priority by itself when the
>> > TX_HW_ATTR_EAPOL_GRAME bit is set. If we have a good reason to use this
>> > patch, we need to take care of the firmware version as well. This
>> > probably doesn't work with the latest published firmware.
>> >
>> > [1] http://mid.gmane.org/522E18E5.1020503@candelatech.com
>>
>> I believe he only fixed one mode (AP - hostapd) but not the other (GO
>> - wpa_supplicant). Anyway that's what we tested at the time.
>
> Okay, I didn't dig much into it.
>
>
>> Anyway marking it as this level doesn't do any harm. You're right
>> about the FW version though - it should be upstreamed first.
>
> Fair enough. If the firmware implements this, no reason why not use it.
> But I'll wait for the new firmware before applying this.
>
this change is backward compatible, so there's no issue applying it as is.
however, if you prefer waiting for a newer fw that's fine too.
i'll add it to the waiting list :)
Eliad.
^ permalink raw reply
* Re: [PATCH 1/7] ath10k: simplify HTC credits calculation
From: Bob Copeland @ 2013-09-10 14:14 UTC (permalink / raw)
To: Michal Kazior; +Cc: ath10k, linux-wireless
In-Reply-To: <1378821003-22925-2-git-send-email-michal.kazior@tieto.com>
On Tue, Sep 10, 2013 at 03:49:57PM +0200, Michal Kazior wrote:
> + skb = __skb_dequeue(&ep->tx_queue);
> +
> + if (ep->tx_credit_flow_enabled) {
> + /* integer division w/ round-up */
> + credits = (skb->len + htc->target_credit_size - 1) /
> + htc->target_credit_size;
There's a macro for that...
credits = DIV_ROUND_UP(skb->len, htc->target_credit_size);
--
Bob Copeland %% www.bobcopeland.com
^ permalink raw reply
* Re: [PATCH 02/12] wireless: rtlwifi: remove unnecessary pci_set_drvdata()
From: Larry Finger @ 2013-09-10 14:34 UTC (permalink / raw)
To: Jingoo Han
Cc: 'John W. Linville', linux-wireless, 'Chaoming Li'
In-Reply-To: <00b301ceae17$7f417480$7dc45d80$%han@samsung.com>
On 09/10/2013 06:18 AM, Jingoo Han wrote:
> The driver core clears the driver data to NULL after device_release
> or on probe failure. Thus, it is not needed to manually clear the
> device driver data to NULL.
>
> Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> ---
> drivers/net/wireless/rtlwifi/pci.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
> index 703f839..2b6d3e0 100644
> --- a/drivers/net/wireless/rtlwifi/pci.c
> +++ b/drivers/net/wireless/rtlwifi/pci.c
> @@ -2009,7 +2009,6 @@ fail2:
> fail1:
> if (hw)
> ieee80211_free_hw(hw);
> - pci_set_drvdata(pdev, NULL);
> pci_disable_device(pdev);
>
> return err;
> @@ -2064,8 +2063,6 @@ void rtl_pci_disconnect(struct pci_dev *pdev)
>
> rtl_pci_disable_aspm(hw);
>
> - pci_set_drvdata(pdev, NULL);
> -
> ieee80211_free_hw(hw);
> }
> EXPORT_SYMBOL(rtl_pci_disconnect);
>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Thanks,
Larry
^ permalink raw reply
* Re: Always send management frames at MCS-0??
From: Dan Williams @ 2013-09-10 14:49 UTC (permalink / raw)
To: Krishna Chaitanya
Cc: Ben Greear, hostap@lists.shmoo.com,
linux-wireless@vger.kernel.org
In-Reply-To: <CABPxzYKcVyomdXaDxT3mLXQb0sYfM=UdoZwpbsb4qohTkPU3Cw@mail.gmail.com>
On Tue, 2013-09-10 at 14:47 +0530, Krishna Chaitanya wrote:
> On Tue, Sep 10, 2013 at 4:40 AM, Ben Greear <greearb@candelatech.com> wrote:
>
> > Would forcing them to a lower rate at least theoretically improve
> > the chance that the packets are properly delivered?
> Yes. But we already have a RC algorithm taking care of that.
> Right?
Except if there's periodic interference, like a microwave. In this
case, where the microwave cycles on and off, the longer it takes to
transmit the frame (ie, a lower rate) the *more* likely it is to get
partially squelched by the microwave turning on in its next cycle. Here
a faster rate can be more robust since it can transmit the entire frame
in between microwave cycles.
Dan
^ permalink raw reply
* Re: [PATCH 09/12] wlcore: fix regulatory domain bit translation
From: Eliad Peller @ 2013-09-10 14:51 UTC (permalink / raw)
To: Luca Coelho; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <1378798759.4799.57.camel@porter.coelho.fi>
On Tue, Sep 10, 2013 at 10:39 AM, Luca Coelho <luca@coelho.fi> wrote:
> On Tue, 2013-09-03 at 17:34 +0300, Eliad Peller wrote:
>> From: Ido Reis <idor@ti.com>
>>
>> This is a fix for channels 52,56,60,64 bit translation.
>>
>> Reported-by: Yaniv Machani <yanivma@ti.com>
>> Signed-off-by: Ido Reis <idor@ti.com>
>> Signed-off-by: Victor Goldenshtein <victorg@ti.com>
>> Signed-off-by: Eliad Peller <eliad@wizery.com>
>> ---
>> drivers/net/wireless/ti/wlcore/cmd.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
>> index e3ae425..1cb3296 100644
>> --- a/drivers/net/wireless/ti/wlcore/cmd.c
>> +++ b/drivers/net/wireless/ti/wlcore/cmd.c
>> @@ -1613,8 +1613,10 @@ static int wlcore_get_reg_conf_ch_idx(enum ieee80211_band band, u16 ch)
>> case IEEE80211_BAND_5GHZ:
>> if (ch >= 8 && ch <= 16)
>> idx = ((ch-8)/4 + 18);
>> - else if (ch >= 34 && ch <= 64)
>> + else if (ch >= 34 && ch <= 48)
>> idx = ((ch-34)/2 + 3 + 18);
>> + else if (ch >= 52 && ch <= 64)
>> + idx = ((ch-52)/4 + 11 + 18);
>> else if (ch >= 100 && ch <= 140)
>> idx = ((ch-100)/4 + 15 + 18);
>> else if (ch >= 149 && ch <= 165)
>
> Hmmm... I don't have a clue what is going on here. I don't know how I
> let this function pass as is originally, shame on me. :)
>
:)
> The change probably makes things work better, since someone apparently
> saw a bug in real life and reported it, but can anyone explain what is
> going on during this translation? Aren't we losing data here? Eg.
> channels 8, 9, 10 and 11 all use the same bit in the firmware command
> bitmask?
>
the 8-16 indeed looks weird, as the driver indeed declares supports
for channels 7,8,9,11...
the other conditions are a simple attempt to reduce the gap between
the channels (e.g. no channels between 64 and 100) in order to get a
minimized bitmap.
since the gap between the defined channels in the 5ghz band is usually
2/4 (36->38 vs. 60->64) the other calculations seems fine (i didn't
dig into them as well, though).
i'll try getting some more information from the fw guys regarding the
8-16 range.
Eliad.
^ permalink raw reply
* [PATCH] mac80211: add explicit IBSS driver operations
From: Johannes Berg @ 2013-09-10 14:53 UTC (permalink / raw)
To: linux-wireless; +Cc: Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
This can be useful for drivers if they have any failure cases
when joining an IBSS. Also move setting the queue parameters
to before this new call, in case the new driver op needs them
already.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
include/net/mac80211.h | 7 +++++++
net/mac80211/driver-ops.h | 27 +++++++++++++++++++++++++++
net/mac80211/ibss.c | 22 ++++++++++++++++++++--
net/mac80211/trace.h | 35 +++++++++++++++++++++++++++++++++++
4 files changed, 89 insertions(+), 2 deletions(-)
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 9bf07ef..2e8e817 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2671,6 +2671,10 @@ enum ieee80211_roc_type {
* zero using ieee80211_csa_is_complete() after the beacon has been
* transmitted and then call ieee80211_csa_finish().
*
+ * @join_ibss: Join an IBSS (on an IBSS interface); this is called after all
+ * information in bss_conf is set up and the beacon can be retrieved. A
+ * channel context is bound before this is called.
+ * @leave_ibss: Leave the IBSS again.
*/
struct ieee80211_ops {
void (*tx)(struct ieee80211_hw *hw,
@@ -2862,6 +2866,9 @@ struct ieee80211_ops {
void (*channel_switch_beacon)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct cfg80211_chan_def *chandef);
+
+ int (*join_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
+ void (*leave_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
};
/**
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index b3ea11f..5d03c47 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -1085,4 +1085,31 @@ drv_channel_switch_beacon(struct ieee80211_sub_if_data *sdata,
}
}
+static inline int drv_join_ibss(struct ieee80211_local *local,
+ struct ieee80211_sub_if_data *sdata)
+{
+ int ret = 0;
+
+ might_sleep();
+ check_sdata_in_driver(sdata);
+
+ trace_drv_join_ibss(local, sdata, &sdata->vif.bss_conf);
+ if (local->ops->join_ibss)
+ ret = local->ops->join_ibss(&local->hw, &sdata->vif);
+ trace_drv_return_int(local, ret);
+ return ret;
+}
+
+static inline void drv_leave_ibss(struct ieee80211_local *local,
+ struct ieee80211_sub_if_data *sdata)
+{
+ might_sleep();
+ check_sdata_in_driver(sdata);
+
+ trace_drv_leave_ibss(local, sdata);
+ if (local->ops->leave_ibss)
+ local->ops->leave_ibss(&local->hw, &sdata->vif);
+ trace_drv_return_void(local);
+}
+
#endif /* __MAC80211_DRIVER_OPS */
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
index 5ea9b3a..21a0b88 100644
--- a/net/mac80211/ibss.c
+++ b/net/mac80211/ibss.c
@@ -229,6 +229,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
struct beacon_data *presp;
enum nl80211_bss_scan_width scan_width;
bool have_higher_than_11mbit;
+ int err;
sdata_assert_lock(sdata);
@@ -247,6 +248,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
ieee80211_bss_info_change_notify(sdata,
BSS_CHANGED_IBSS |
BSS_CHANGED_BEACON_ENABLED);
+ drv_leave_ibss(local, sdata);
}
presp = rcu_dereference_protected(ifibss->presp,
@@ -329,11 +331,26 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
else
sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE;
+ ieee80211_set_wmm_default(sdata, true);
+
sdata->vif.bss_conf.ibss_joined = true;
sdata->vif.bss_conf.ibss_creator = creator;
- ieee80211_bss_info_change_notify(sdata, bss_change);
- ieee80211_set_wmm_default(sdata, true);
+ err = drv_join_ibss(local, sdata);
+ if (err) {
+ sdata->vif.bss_conf.ibss_joined = false;
+ sdata->vif.bss_conf.ibss_creator = false;
+ sdata->vif.bss_conf.enable_beacon = false;
+ sdata->vif.bss_conf.ssid_len = 0;
+ RCU_INIT_POINTER(ifibss->presp, NULL);
+ kfree_rcu(presp, rcu_head);
+ ieee80211_vif_release_channel(sdata);
+ sdata_info(sdata, "Failed to join IBSS, driver failure: %d\n",
+ err);
+ return;
+ }
+
+ ieee80211_bss_info_change_notify(sdata, bss_change);
ifibss->state = IEEE80211_IBSS_MLME_JOINED;
mod_timer(&ifibss->timer,
@@ -761,6 +778,7 @@ static void ieee80211_ibss_disconnect(struct ieee80211_sub_if_data *sdata)
clear_bit(SDATA_STATE_OFFCHANNEL_BEACON_STOPPED, &sdata->state);
ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON_ENABLED |
BSS_CHANGED_IBSS);
+ drv_leave_ibss(local, sdata);
ieee80211_vif_release_channel(sdata);
}
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index 1aba645..5d62c58 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -1475,6 +1475,41 @@ DEFINE_EVENT(local_sdata_evt, drv_ipv6_addr_change,
);
#endif
+TRACE_EVENT(drv_join_ibss,
+ TP_PROTO(struct ieee80211_local *local,
+ struct ieee80211_sub_if_data *sdata,
+ struct ieee80211_bss_conf *info),
+
+ TP_ARGS(local, sdata, info),
+
+ TP_STRUCT__entry(
+ LOCAL_ENTRY
+ VIF_ENTRY
+ __field(u8, dtimper)
+ __field(u16, bcnint)
+ __dynamic_array(u8, ssid, info->ssid_len);
+ ),
+
+ TP_fast_assign(
+ LOCAL_ASSIGN;
+ VIF_ASSIGN;
+ __entry->dtimper = info->dtim_period;
+ __entry->bcnint = info->beacon_int;
+ memcpy(__get_dynamic_array(ssid), info->ssid, info->ssid_len);
+ ),
+
+ TP_printk(
+ LOCAL_PR_FMT VIF_PR_FMT,
+ LOCAL_PR_ARG, VIF_PR_ARG
+ )
+);
+
+DEFINE_EVENT(local_sdata_evt, drv_leave_ibss,
+ TP_PROTO(struct ieee80211_local *local,
+ struct ieee80211_sub_if_data *sdata),
+ TP_ARGS(local, sdata)
+);
+
/*
* Tracing for API calls that drivers call.
*/
--
1.8.4.rc3
^ permalink raw reply related
* Re: RTL8192CU continually reconnecting
From: Larry Finger @ 2013-09-10 15:14 UTC (permalink / raw)
To: Mark Cave-Ayland; +Cc: Timothy Rundle, linux-wireless
In-Reply-To: <522EB51A.2080004@ilande.co.uk>
On 09/10/2013 12:58 AM, Mark Cave-Ayland wrote:
>
> No worries - disk space is reasonably cheap these days ;)
>
> dmesg output:
> http://www.ilande.co.uk/tmp/rtl8192cu_patch-4-dmesg.txt
>
> wpa_supplicant output:
> http://www.ilande.co.uk/tmp/rtl8192cu_patch-4-wpa_supplicant.txt
>
> I noticed that I got several re-authentication attempts in the dmesg output
> without the corresponding rtl_watchdog_wq_callback() line being emitted - this
> is again something I don't see with zd1211rw and iwlwifi. Once these drivers are
> associated, they seem to stay in that state for hours.
Those disconnects do happen for reasons that I do not understand. They will be
worse on your system without a network manager as it appears that you need to
manually reconnect at that point, or at least it took a long time for the system
to react. With NetworkManager, that reconnect is automatic, and relatively quick.
> Whilst checking various parts of my kernel, I noticed for the first time during
> testing that my current kernel configuration doesn't have SMP enabled. This got
> me thinking that perhaps there are other build options which could have an
> effect on the driver. Hence I also uploaded a copy of my .config file to
> http://www.ilande.co.uk/tmp/rtl8192cu-config in the hope that maybe this can
> help you recreate the issue locally?
As I have a dual-core CPU, thus I always have SMP set. That should not be a
problem. In fact, the concurrent operation of 2 CPUs usually causes more
problems. I will review that configuration.
You can now disable the logging. When the watchdog reports that contact with the
AP has been lost, that is certainly true, and the watchdog is doing its job. In
addition, nothing was received from any AP, which leads me to conclude that the
receiver has locked up for some reason. I need to check to see what the code
does to recover. Perhaps that will help me understand the problem. In my current
run that has run for 20 hours, I have had two disconnects for Reason 3, but more
importantly, I have had two watchdog restarts. It does happen on my system, just
a lot less frequently. BTW, my ping loss rate is about 3%. That is too high, but
not as bad as yours.
Larry
^ permalink raw reply
* Re: [PATCH 06/12] wlcore: send EAPOL frames with voice priority
From: Ben Greear @ 2013-09-10 15:31 UTC (permalink / raw)
To: Eliad Peller; +Cc: Luca Coelho, Arik Nemtsov, linux-wireless@vger.kernel.org
In-Reply-To: <CAB3XZEfPQb1FWT3wukBZvSkP9eB1kO=wPpWFxKXBmX5YULAVqw@mail.gmail.com>
On 09/10/2013 07:15 AM, Eliad Peller wrote:
> On Tue, Sep 10, 2013 at 12:15 PM, Luca Coelho <luca@coelho.fi> wrote:
>> On Tue, 2013-09-10 at 11:11 +0200, Arik Nemtsov wrote:
>>> On Tue, Sep 10, 2013 at 9:47 AM, Luca Coelho <luca@coelho.fi> wrote:
>>>> On Tue, 2013-09-03 at 17:34 +0300, Eliad Peller wrote:
>>>>> From: Igal Chernobelsky <igalc@ti.com>
>>>>>
>>>>> Send EAPOL frames with voice priority by setting TX_HW_ATTR_EAPOL_FRAME
>>>>> new bit in tx attribute. Sending EAPOL with voice priority fixes
>>>>> re-key timeout during heavy traffic issue.
>>>>>
>>>>> Signed-off-by: Igal Chernobelsky <igalc@ti.com>
>>>>> Signed-off-by: Eliad Peller <eliad@wizery.com>
>>>>> ---
>>>>
>>>> This seems to be the same problem that Ben had and debugged by himself
>>>> [1]. Fixing this in hostapd/wpa_supplicant seems more appropriate?
I just posted hostapd/supplicant patches yesterday that fix it for both
AP mode and for station mode (at least in my configuration using ath9k
and 3.11 kernel).
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* Re: Always send management frames at MCS-0??
From: Ben Greear @ 2013-09-10 15:48 UTC (permalink / raw)
To: Sujith Manoharan; +Cc: linux-wireless@vger.kernel.org, hostap@lists.shmoo.com
In-Reply-To: <21038.54250.912310.332354@gargle.gargle.HOWL>
On 09/10/2013 01:10 AM, Sujith Manoharan wrote:
> Ben Greear wrote:
>> I had a user request that we support always sending management frames
>> (such as EAPOL) at the lowest rate. Evidently, other equipment does this,
>> where as normal-ish supplicant/linux tends to send them at much higher
>> rates.
>>
>> Any suggestions on how to go about doing this properly?
>
> If this is with ath9k_rate_control, then it is a known bug:
> https://bugzilla.redhat.com/show_bug.cgi?id=927191
I'm not using ath9k rate control in this case, and at least most messages
get through fine. We didn't actually see any obvious improvement when forcing
everything to 6Mbps, but since my user was asking, I wanted to run the
idea past the list.
Rate control is not perfect, and on initial bringup it doesn't have
many packets to work with so I thought it might still be useful to allow
users to specify a particular rate for EAPOL packets. Maybe using
a socket ioctl so user-space (ie, supplicant/hostapd) can control it,
for example.
Thanks,
Ben
--
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
^ permalink raw reply
* RTL8187SE staging Linux driver
From: Andrea Merello @ 2013-09-10 15:59 UTC (permalink / raw)
To: wlanfae, shwei
Cc: John Linville, linux-kernel, Greg Kroah-Hartman, linux-wireless,
Michael Wu
Hello,
As you probably know, in the current Linux kernel there is a staging
driver for the RTL8187SE device (based on my older RTL8180/RTL8185
Linux driver), while there also a regular (not staging) driver
supporting older RTL8185 and RTL8180 devices
(net/wireless/rtl818x/rtl8180) .
As far as I can see, the RTL8187SE device seems not so much different
from an RTL8185 device.
I would like to try (in my spare time) to add support for RTL8187SE
device in the current RTL818x driver, in order to avoid code
duplication, remove a driver from staging, and make RTL8187SE using
mac80211.
Do any one of you have any comment/objection/suggestions about this ?
Is it possible to get the RTL8187SE documentation to make things easier?
For now I will probably keep different RF code for the two cards even
if the RTL8225 (zebra 2) radio is used by both RTL8187SE and some
RTL8185 devices, however if I could get enough documentation about it,
it would be great to try to merge also RF code..
Thank you,
Andrea
^ permalink raw reply
* Re: regulatory will stuck when cfg80211 is built-in
From: Eugene Krasnikov @ 2013-09-10 16:23 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless
In-Reply-To: <87ppshu5mr.fsf@purkki.adurom.net>
No, the flag CONFIG_CFG80211_INTERNAL_REGDB does not help and it should not.
The problem is that cfg80211 will stuck in situation when cfg80211 is
initialized before user space. One way to get cfg80211 out of this
state is to run crda once right after user space is up and running.
But again is this intentional? Or it is more like a workaround?
2013/9/9 Kalle Valo <kvalo@adurom.com>:
> Eugene Krasnikov <k.eugene.e@gmail.com> writes:
>
>> There is a problem with regulatory part of cfg80211 when cfg80211 is
>> built-in the kernel. On regulatory init cfg80211 will try to notify
>> user space about changing current domain to world regulatory but at
>> that time user space is not up and running yet and uevent message will
>> be lost. So what will happen is that cfg80211 will wait for the
>> response from user space and all requests to set current regulatory
>> will be dropped with the following error: “Pending regulatory request,
>> waiting for it to be processed...”.
>
> Does CONFIG_CFG80211_INTERNAL_REGDB help?
>
> --
> Kalle Valo
--
Best regards,
Eugene
^ permalink raw reply
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