linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-3.7.[1,4]: kmemleak in i801_probe
@ 2013-01-23 11:15 Martin Mokrejs
  2013-01-23 16:42 ` Jean Delvare
  0 siblings, 1 reply; 16+ messages in thread
From: Martin Mokrejs @ 2013-01-23 11:15 UTC (permalink / raw)
  To: Linux I2C, Jean Delvare; +Cc: LKML

[-- Attachment #1: Type: text/plain, Size: 1322 bytes --]

Hi,
  I already reported this to lkml recently with linux-3.7.1 but this is to let you know
that with 3.7.4 I am still getting this kmemleak reported by the kernel.

unreferenced object 0xffff88040b614690 (size 256):
  comm "swapper/0", pid 1, jiffies 4294937573 (age 133834.550s)
  hex dump (first 32 bytes):
    00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
    ff ff ff ff ff ff ff ff 08 7f 5d 82 ff ff ff ff  ..........].....
  backtrace:
    [<ffffffff815b4aad>] kmemleak_alloc+0x21/0x3e
    [<ffffffff81110352>] slab_post_alloc_hook+0x28/0x2a
    [<ffffffff8111288a>] __kmalloc+0xf2/0x104
    [<ffffffff81305165>] kzalloc.constprop.14+0xe/0x10
    [<ffffffff813055c6>] device_private_init+0x14/0x63
    [<ffffffff813076a0>] dev_set_drvdata+0x19/0x2f
    [<ffffffff815c4f5e>] i801_probe+0x5e/0x451
    [<ffffffff81280e40>] local_pci_probe+0x39/0x61
    [<ffffffff81281f53>] pci_device_probe+0xc6/0xf3
    [<ffffffff81307c5d>] driver_probe_device+0xa9/0x1c1
    [<ffffffff81307dcf>] __driver_attach+0x5a/0x7e
    [<ffffffff8130650a>] bus_for_each_dev+0x57/0x83
    [<ffffffff81307806>] driver_attach+0x19/0x1b
    [<ffffffff813073d8>] bus_add_driver+0xa8/0x1fa
    [<ffffffff81308241>] driver_register+0x8c/0x106
    [<ffffffff81281b4e>] __pci_register_driver+0x59/0x5d


With best regards,
Martin

[-- Attachment #2: dmesg --]
[-- Type: text/plain, Size: 82776 bytes --]

[    0.000000] Linux version 3.7.4-default (root@vostro) (gcc version 4.6.3 (Gentoo 4.6.3 p1.8, pie-0.5.2) ) #2 SMP Mon Jan 21 22:45:22 MET 2013
[    0.000000] Command line: root=/dev/sda5 pciehp.pciehp_debug=1 slub_debug=AFPZ pcie_aspm=off
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x000000003fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040000000-0x00000000401fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040200000-0x00000000da4e4fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000da4e5000-0x00000000da527fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000da528000-0x00000000da792fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000da793000-0x00000000da966fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000da967000-0x00000000daa88fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000daa89000-0x00000000dad67fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000dad68000-0x00000000dafe7fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000dafe8000-0x00000000daffffff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000db800000-0x00000000df9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed03fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000041fdfffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.6 present.
[    0.000000] DMI: Dell Inc. Vostro 3550/, BIOS A11 08/03/2012
[    0.000000] e820: update [mem 0x00000000-0x0000ffff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] No AGP bridge found
[    0.000000] e820: last_pfn = 0x41fe00 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-CFFFF write-protect
[    0.000000]   D0000-E7FFF uncachable
[    0.000000]   E8000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask C00000000 write-back
[    0.000000]   1 base 400000000 mask FE0000000 write-back
[    0.000000]   2 base 0DB800000 mask FFF800000 uncachable
[    0.000000]   3 base 0DC000000 mask FFC000000 uncachable
[    0.000000]   4 base 0E0000000 mask FE0000000 uncachable
[    0.000000]   5 base 41FE00000 mask FFFE00000 uncachable
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820: update [mem 0xdb800000-0xffffffff] usable ==> reserved
[    0.000000] e820: last_pfn = 0xdaa89 max_arch_pfn = 0x400000000
[    0.000000] initial memory mapped: [mem 0x00000000-0x1fffffff]
[    0.000000] Base memory trampoline at [ffff880000097000] 97000 size 24576
[    0.000000] reserving inaccessible SNB gfx pages
[    0.000000] init_memory_mapping: [mem 0x00000000-0xdaa88fff]
[    0.000000]  [mem 0x00000000-0xda9fffff] page 2M
[    0.000000]  [mem 0xdaa00000-0xdaa88fff] page 4k
[    0.000000] kernel direct mapping tables up to 0xdaa88fff @ [mem 0x1fffa000-0x1fffffff]
[    0.000000] init_memory_mapping: [mem 0x100000000-0x41fdfffff]
[    0.000000]  [mem 0x100000000-0x41fdfffff] page 2M
[    0.000000] kernel direct mapping tables up to 0x41fdfffff @ [mem 0xdaa7b000-0xdaa88fff]
[    0.000000] ACPI: RSDP 00000000000f0410 00024 (v02   DELL)
[    0.000000] ACPI: XSDT 00000000dafe8078 00074 (v01 DELL    WN09    01072009 AMI  00010013)
[    0.000000] ACPI: FACP 00000000daff1d38 000F4 (v04   DELL     WN09 01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 00000000dafe8180 09BB6 (v02   DELL     WN09 00000000 INTL 20051117)
[    0.000000] ACPI: FACS 00000000dafe3f80 00040
[    0.000000] ACPI: APIC 00000000daff1e30 00072 (v03   DELL     WN09 01072009 AMI  00010013)
[    0.000000] ACPI: MCFG 00000000daff1ea8 0003C (v01   DELL     WN09 01072009 MSFT 00000097)
[    0.000000] ACPI: SSDT 00000000daff1ee8 004B0 (v01 TrmRef PtidDevc 00001000 INTL 20091112)
[    0.000000] ACPI: SLIC 00000000daff2398 00176 (v01 DELL    WN09    01072009 AMI  00010013)
[    0.000000] ACPI: HPET 00000000daff2510 00038 (v01   DELL     WN09 01072009 AMI. 00000004)
[    0.000000] ACPI: SSDT 00000000daff2548 00846 (v01  PmRef  Cpu0Ist 00003000 INTL 20051117)
[    0.000000] ACPI: SSDT 00000000daff2d90 00996 (v01  PmRef    CpuPm 00003000 INTL 20051117)
[    0.000000] ACPI: DMAR 00000000daff3728 000E8 (v01 INTEL      SNB  00000001 INTL 00000001)
[    0.000000] ACPI: OSFR 00000000daff3810 00086 (v01 DELL    M08     07DC0803 ASL  00000061)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000041fdfffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x41fdfffff]
[    0.000000]   NODE_DATA [mem 0x41fdd9000-0x41fdfffff]
[    0.000000]  [ffffea0000000000-ffffea00107fffff] PMD -> [ffff88040f400000-ffff88041f3fffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x41fdfffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00010000-0x0009cfff]
[    0.000000]   node   0: [mem 0x00100000-0x1fffffff]
[    0.000000]   node   0: [mem 0x20200000-0x3fffffff]
[    0.000000]   node   0: [mem 0x40200000-0xda4e4fff]
[    0.000000]   node   0: [mem 0xda528000-0xda792fff]
[    0.000000]   node   0: [mem 0xda967000-0xdaa88fff]
[    0.000000]   node   0: [mem 0x100000000-0x41fdfffff]
[    0.000000] On node 0 totalpages: 4170239
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 141 pages reserved
[    0.000000]   DMA zone: 3776 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 16320 pages used for memmap
[    0.000000]   DMA32 zone: 873650 pages, LIFO batch:31
[    0.000000]   Normal zone: 51192 pages used for memmap
[    0.000000]   Normal zone: 3225096 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[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
[    0.000000] ACPI: NR_CPUS/possible_cpus limit of 2 reached.  Processor 2/0x1 ignored.
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
[    0.000000] ACPI: NR_CPUS/possible_cpus limit of 2 reached.  Processor 3/0x3 ignored.
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: 4 Processors exceeds NR_CPUS limit of 2
[    0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009d000 - 000000000009e000
[    0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 0000000020000000 - 0000000020200000
[    0.000000] PM: Registered nosave memory: 0000000040000000 - 0000000040200000
[    0.000000] PM: Registered nosave memory: 00000000da4e5000 - 00000000da528000
[    0.000000] PM: Registered nosave memory: 00000000da793000 - 00000000da967000
[    0.000000] PM: Registered nosave memory: 00000000daa89000 - 00000000dad68000
[    0.000000] PM: Registered nosave memory: 00000000dad68000 - 00000000dafe8000
[    0.000000] PM: Registered nosave memory: 00000000dafe8000 - 00000000db000000
[    0.000000] PM: Registered nosave memory: 00000000db000000 - 00000000db800000
[    0.000000] PM: Registered nosave memory: 00000000db800000 - 00000000dfa00000
[    0.000000] PM: Registered nosave memory: 00000000dfa00000 - 00000000f8000000
[    0.000000] PM: Registered nosave memory: 00000000f8000000 - 00000000fc000000
[    0.000000] PM: Registered nosave memory: 00000000fc000000 - 00000000fec00000
[    0.000000] PM: Registered nosave memory: 00000000fec00000 - 00000000fec01000
[    0.000000] PM: Registered nosave memory: 00000000fec01000 - 00000000fed00000
[    0.000000] PM: Registered nosave memory: 00000000fed00000 - 00000000fed04000
[    0.000000] PM: Registered nosave memory: 00000000fed04000 - 00000000fed1c000
[    0.000000] PM: Registered nosave memory: 00000000fed1c000 - 00000000fed20000
[    0.000000] PM: Registered nosave memory: 00000000fed20000 - 00000000fee00000
[    0.000000] PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000
[    0.000000] PM: Registered nosave memory: 00000000fee01000 - 00000000ff000000
[    0.000000] PM: Registered nosave memory: 00000000ff000000 - 0000000100000000
[    0.000000] e820: [mem 0xdfa00000-0xf7ffffff] available for PCI devices
[    0.000000] setup_percpu: NR_CPUS:2 nr_cpumask_bits:2 nr_cpu_ids:2 nr_node_ids:1
[    0.000000] PERCPU: Embedded 26 pages/cpu @ffff88041fa00000 s74560 r8192 d23744 u1048576
[    0.000000] pcpu-alloc: s74560 r8192 d23744 u1048576 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 4102522
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=/dev/sda5 pciehp.pciehp_debug=1 slub_debug=AFPZ pcie_aspm=off
[    0.000000] PCIe ASPM is disabled
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Memory: 16328852k/17299456k available (6020k kernel code, 618500k absent, 352104k reserved, 3886k data, 688k init)
[    0.000000] SLUB: Genslabs=15, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] 	CONFIG_RCU_FANOUT set to non-default value of 32
[    0.000000] NR_IRQS:4352 nr_irqs:512 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 5855 kB
[    0.000000]  per task-struct memory footprint: 1920 bytes
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.010000] tsc: Detected 2793.665 MHz processor
[    0.000002] Calibrating delay loop (skipped), value calculated using timer frequency.. 5587.33 BogoMIPS (lpj=27936650)
[    0.000190] pid_max: default: 32768 minimum: 301
[    0.001827] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.004979] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.006368] Mount-cache hash table entries: 256
[    0.008168] CPU: Physical Processor ID: 0
[    0.008260] CPU: Processor Core ID: 0
[    0.008352] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    0.008504] mce: CPU supports 7 MCE banks
[    0.008606] CPU0: Thermal monitoring enabled (TM1)
[    0.008706] process: using mwait in idle threads
[    0.008799] Last level iTLB entries: 4KB 512, 2MB 0, 4MB 0
Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32
tlb_flushall_shift: 5
[    0.009110] Freeing SMP alternatives: 16k freed
[    0.009209] ACPI: Core revision 20120913
[    0.240304] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.340258] smpboot: CPU0: Intel(R) Core(TM) i7-2640M CPU @ 2.80GHz (fam: 06, model: 2a, stepping: 07)
[    0.456110] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, Intel PMU driver.
[    0.456416] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[    0.456518] ... version:                3
[    0.456608] ... bit width:              48
[    0.456698] ... generic registers:      4
[    0.456789] ... value mask:             0000ffffffffffff
[    0.456881] ... max period:             000000007fffffff
[    0.456974] ... fixed-purpose events:   3
[    0.457064] ... event mask:             000000070000000f
[    0.458655] SMP alternatives: lockdep: fixing up alternatives
[    0.458762] smpboot: Booting Node   0, Processors  #1 OK
[    0.472087] Brought up 2 CPUs
[    0.472179] smpboot: Total of 2 processors activated (11174.66 BogoMIPS)
[    0.473956] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.475184] devtmpfs: initialized
[    0.477369] PM: Registering ACPI NVS region [mem 0xda4e5000-0xda527fff] (274432 bytes)
[    0.477743] PM: Registering ACPI NVS region [mem 0xdad68000-0xdafe7fff] (2621440 bytes)
[    0.480690] xor: automatically using best checksumming function:
[    0.575932]    avx       : 19552.000 MB/sec
[    0.577675] regulator-dummy: no parameters
[    0.578596] NET: Registered protocol family 16
[    0.582224] ACPI: bus type pci registered
[    0.583232] dca service started, version 1.12.1
[    0.583537] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xf8000000-0xfbffffff] (base 0xf8000000)
[    0.583684] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved in E820
[    0.591043] PCI: Using configuration type 1 for base access
[    0.644690] bio: create slab <bio-0> at 0
[    0.805588] raid6: sse2x1    7553 MB/s
[    0.975327] raid6: sse2x2    9341 MB/s
[    1.145070] raid6: sse2x4   10796 MB/s
[    1.145071] raid6: using algorithm sse2x4 (10796 MB/s)
[    1.145072] raid6: using ssse3x2 recovery algorithm
[    1.145202] ACPI: Added _OSI(Module Device)
[    1.145300] ACPI: Added _OSI(Processor Device)
[    1.145400] ACPI: Added _OSI(3.0 _SCP Extensions)
[    1.145501] ACPI: Added _OSI(Processor Aggregator Device)
[    1.151487] ACPI: EC: Look up EC in DSDT
[    1.162173] ACPI: Executed 1 blocks of module-level executable AML code
[    1.270145] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    1.331032] ACPI: SSDT 00000000dad51698 0064F (v01  PmRef  Cpu0Cst 00003001 INTL 20051117)
[    1.334258] ACPI: Dynamic OEM Table Load:
[    1.334261] ACPI: SSDT           (null) 0064F (v01  PmRef  Cpu0Cst 00003001 INTL 20051117)
[    1.363303] ACPI: SSDT 00000000dad52a98 00303 (v01  PmRef    ApIst 00003000 INTL 20051117)
[    1.368167] ACPI: Dynamic OEM Table Load:
[    1.368169] ACPI: SSDT           (null) 00303 (v01  PmRef    ApIst 00003000 INTL 20051117)
[    1.407626] ACPI: SSDT 00000000dad50d98 00119 (v01  PmRef    ApCst 00003000 INTL 20051117)
[    1.410255] ACPI: Dynamic OEM Table Load:
[    1.410257] ACPI: SSDT           (null) 00119 (v01  PmRef    ApCst 00003000 INTL 20051117)
[    1.438684] ACPI: Interpreter enabled
[    1.438778] ACPI: (supports S0 S1 S3 S4 S5)
[    1.439458] ACPI: Using IOAPIC for interrupt routing
[    1.709643] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    1.722032] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[    1.738471] PCI host bridge to bus 0000:00
[    1.738572] pci_bus 0000:00: root bus resource [bus 00-3e]
[    1.738673] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    1.738773] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    1.738874] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    1.738976] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
[    1.739078] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[    1.739179] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[    1.739280] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[    1.739382] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[    1.739482] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[    1.739584] pci_bus 0000:00: root bus resource [mem 0xdfa00000-0xfeafffff]
[    1.739686] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[    1.739789] pci_bus 0000:00: scanning bus
[    1.739827] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[    1.739834] pci 0000:00:00.0: calling quirk_mmio_always_on+0x0/0xa
[    1.739928] pci 0000:00:02.0: [8086:0126] type 00 class 0x030000
[    1.739944] pci 0000:00:02.0: reg 10: [mem 0xf6800000-0xf6bfffff 64bit]
[    1.739952] pci 0000:00:02.0: reg 18: [mem 0xe0000000-0xefffffff 64bit pref]
[    1.739958] pci 0000:00:02.0: reg 20: [io  0xf000-0xf03f]
[    1.740074] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[    1.740115] pci 0000:00:16.0: reg 10: [mem 0xf7f0a000-0xf7f0a00f 64bit]
[    1.740246] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    1.740270] pci 0000:00:16.0: PME# disabled
[    1.740339] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[    1.740374] pci 0000:00:1a.0: reg 10: [mem 0xf7f08000-0xf7f083ff]
[    1.740530] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    1.740535] pci 0000:00:1a.0: PME# disabled
[    1.740589] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[    1.740618] pci 0000:00:1b.0: reg 10: [mem 0xf7f00000-0xf7f03fff 64bit]
[    1.740757] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    1.740763] pci 0000:00:1b.0: PME# disabled
[    1.740810] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[    1.740880] pci 0000:00:1c.0: calling pci_fixup_transparent_bridge+0x0/0x1d
[    1.740963] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    1.740969] pci 0000:00:1c.0: PME# disabled
[    1.741021] pci 0000:00:1c.1: [8086:1c12] type 01 class 0x060400
[    1.741089] pci 0000:00:1c.1: calling pci_fixup_transparent_bridge+0x0/0x1d
[    1.741172] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    1.741178] pci 0000:00:1c.1: PME# disabled
[    1.741232] pci 0000:00:1c.3: [8086:1c16] type 01 class 0x060400
[    1.741299] pci 0000:00:1c.3: calling pci_fixup_transparent_bridge+0x0/0x1d
[    1.741384] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold
[    1.741389] pci 0000:00:1c.3: PME# disabled
[    1.741439] pci 0000:00:1c.4: [8086:1c18] type 01 class 0x060400
[    1.741508] pci 0000:00:1c.4: calling pci_fixup_transparent_bridge+0x0/0x1d
[    1.741591] pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
[    1.741596] pci 0000:00:1c.4: PME# disabled
[    1.741654] pci 0000:00:1c.7: [8086:1c1e] type 01 class 0x060400
[    1.741721] pci 0000:00:1c.7: calling pci_fixup_transparent_bridge+0x0/0x1d
[    1.741804] pci 0000:00:1c.7: PME# supported from D0 D3hot D3cold
[    1.741810] pci 0000:00:1c.7: PME# disabled
[    1.741866] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[    1.741901] pci 0000:00:1d.0: reg 10: [mem 0xf7f07000-0xf7f073ff]
[    1.742057] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    1.742062] pci 0000:00:1d.0: PME# disabled
[    1.742110] pci 0000:00:1f.0: [8086:1c4b] type 00 class 0x060100
[    1.742322] pci 0000:00:1f.2: [8086:1c03] type 00 class 0x010601
[    1.742359] pci 0000:00:1f.2: reg 10: [io  0xf0b0-0xf0b7]
[    1.742374] pci 0000:00:1f.2: reg 14: [io  0xf0a0-0xf0a3]
[    1.742388] pci 0000:00:1f.2: reg 18: [io  0xf090-0xf097]
[    1.742402] pci 0000:00:1f.2: reg 1c: [io  0xf080-0xf083]
[    1.742416] pci 0000:00:1f.2: reg 20: [io  0xf060-0xf07f]
[    1.742431] pci 0000:00:1f.2: reg 24: [mem 0xf7f06000-0xf7f067ff]
[    1.742530] pci 0000:00:1f.2: PME# supported from D3hot
[    1.742535] pci 0000:00:1f.2: PME# disabled
[    1.742578] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[    1.742606] pci 0000:00:1f.3: reg 10: [mem 0xf7f05000-0xf7f050ff 64bit]
[    1.742646] pci 0000:00:1f.3: reg 20: [io  0xf040-0xf05f]
[    1.742701] pci_bus 0000:00: fixups for bus
[    1.742705] pci 0000:00:1c.0: scanning [bus 03-04] behind bridge, pass 0
[    1.742792] pci_bus 0000:03: scanning bus
[    1.742795] pci_bus 0000:03: fixups for bus
[    1.742797] pci 0000:00:1c.0: PCI bridge to [bus 03-04]
[    1.742905] pci_bus 0000:03: bus scan returning with max=03
[    1.742911] pci 0000:00:1c.1: scanning [bus 05-06] behind bridge, pass 0
[    1.742997] pci_bus 0000:05: scanning bus
[    1.743043] pci 0000:05:00.0: [10ec:8168] type 00 class 0x020000
[    1.743071] pci 0000:05:00.0: reg 10: [io  0xe000-0xe0ff]
[    1.743118] pci 0000:05:00.0: reg 18: [mem 0xf1104000-0xf1104fff 64bit pref]
[    1.743147] pci 0000:05:00.0: reg 20: [mem 0xf1100000-0xf1103fff 64bit pref]
[    1.743283] pci 0000:05:00.0: supports D1 D2
[    1.743285] pci 0000:05:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.743291] pci 0000:05:00.0: PME# disabled
[    1.760895] pci_bus 0000:05: fixups for bus
[    1.760897] pci 0000:00:1c.1: PCI bridge to [bus 05-06]
[    1.760993] pci 0000:00:1c.1:   bridge window [io  0xe000-0xefff]
[    1.761006] pci 0000:00:1c.1:   bridge window [mem 0xf1100000-0xf11fffff 64bit pref]
[    1.761008] pci_bus 0000:05: bus scan returning with max=05
[    1.761014] pci 0000:00:1c.3: scanning [bus 09-0a] behind bridge, pass 0
[    1.761102] pci_bus 0000:09: scanning bus
[    1.761404] pci 0000:09:00.0: [8086:008a] type 00 class 0x028000
[    1.761757] pci 0000:09:00.0: reg 10: [mem 0xf7e00000-0xf7e01fff 64bit]
[    1.763436] pci 0000:09:00.0: PME# supported from D0 D3hot D3cold
[    1.763486] pci 0000:09:00.0: PME# disabled
[    1.780218] pci_bus 0000:09: fixups for bus
[    1.780220] pci 0000:00:1c.3: PCI bridge to [bus 09-0a]
[    1.780321] pci 0000:00:1c.3:   bridge window [mem 0xf7e00000-0xf7efffff]
[    1.780330] pci_bus 0000:09: bus scan returning with max=09
[    1.780336] pci 0000:00:1c.4: scanning [bus 0b-0c] behind bridge, pass 0
[    1.780423] pci_bus 0000:0b: scanning bus
[    1.780482] pci 0000:0b:00.0: [104c:8241] type 00 class 0x0c0330
[    1.780518] pci 0000:0b:00.0: reg 10: [mem 0xf7d00000-0xf7d0ffff 64bit]
[    1.780547] pci 0000:0b:00.0: reg 18: [mem 0xf7d10000-0xf7d11fff 64bit]
[    1.780707] pci 0000:0b:00.0: supports D1 D2
[    1.780709] pci 0000:0b:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    1.780716] pci 0000:0b:00.0: PME# disabled
[    1.780796] pci_bus 0000:0b: fixups for bus
[    1.780798] pci 0000:00:1c.4: PCI bridge to [bus 0b-0c]
[    1.780898] pci 0000:00:1c.4:   bridge window [mem 0xf7d00000-0xf7dfffff]
[    1.780907] pci_bus 0000:0b: bus scan returning with max=0b
[    1.780913] pci 0000:00:1c.7: scanning [bus 11-16] behind bridge, pass 0
[    1.781005] pci_bus 0000:11: scanning bus
[    1.781057] pci 0000:11:00.0: [1095:3132] type 00 class 0x018000
[    1.781098] pci 0000:11:00.0: reg 10: [mem 0xf6c84000-0xf6c8407f 64bit]
[    1.781131] pci 0000:11:00.0: reg 18: [mem 0xf6c80000-0xf6c83fff 64bit]
[    1.781152] pci 0000:11:00.0: reg 20: [io  0xc000-0xc07f]
[    1.781194] pci 0000:11:00.0: reg 30: [mem 0xf6c00000-0xf6c7ffff pref]
[    1.781308] pci 0000:11:00.0: supports D1 D2
[    1.800064] pci_bus 0000:11: fixups for bus
[    1.800070] pci 0000:00:1c.7: PCI bridge to [bus 11-16]
[    1.800197] pci 0000:00:1c.7:   bridge window [io  0xc000-0xdfff]
[    1.800203] pci 0000:00:1c.7:   bridge window [mem 0xf6c00000-0xf7cfffff]
[    1.800212] pci 0000:00:1c.7:   bridge window [mem 0xf0000000-0xf10fffff 64bit pref]
[    1.800214] pci_bus 0000:11: bus scan returning with max=11
[    1.800219] pci 0000:00:1c.0: scanning [bus 03-04] behind bridge, pass 1
[    1.800229] pci 0000:00:1c.1: scanning [bus 05-06] behind bridge, pass 1
[    1.800238] pci 0000:00:1c.3: scanning [bus 09-0a] behind bridge, pass 1
[    1.800247] pci 0000:00:1c.4: scanning [bus 0b-0c] behind bridge, pass 1
[    1.800256] pci 0000:00:1c.7: scanning [bus 11-16] behind bridge, pass 1
[    1.800263] pci_bus 0000:00: bus scan returning with max=16
[    1.800284] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    1.807394] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    1.808669] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    1.810020] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP04._PRT]
[    1.811326] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP05._PRT]
[    1.813092] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP08._PRT]
[    1.817776]  pci0000:00: Unable to request _OSC control (_OSC support mask: 0x19)
[    1.994281] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 10 *11 12 14 15)
[    1.995923] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 10 11 12 14 15)
[    1.997546] ACPI: PCI Interrupt Link [LNKC] (IRQs *3 4 5 6 10 11 12 14 15)
[    1.999164] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 *10 11 12 14 15)
[    2.001930] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    2.003622] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 10 11 12 14 15) *0, disabled.
[    2.005309] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 10 11 12 14 15)
[    2.006915] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 *5 6 10 11 12 14 15)
[    2.009907] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    2.011332] vgaarb: loaded
[    2.011421] vgaarb: bridge control possible 0000:00:02.0
[    2.018426] SCSI subsystem initialized
[    2.018524] ACPI: bus type scsi registered
[    2.019169] libata version 3.00 loaded.
[    2.019762] ACPI: bus type usb registered
[    2.020345] usbcore: registered new interface driver usbfs
[    2.020663] usbcore: registered new interface driver hub
[    2.020983] usbcore: registered new device driver usb
[    2.021659] media: Linux media interface: v0.10
[    2.021968] Linux video capture interface: v2.00
[    2.025887] wmi: Mapper loaded
[    2.026341] Advanced Linux Sound Architecture Driver Initialized.
[    2.026435] PCI: Using ACPI for IRQ routing
[    2.028837] PCI: pci_cache_line_size set to 64 bytes
[    2.028849] pci 0000:00:02.0: BAR 0: reserving [mem 0xf6800000-0xf6bfffff flags 0x140204] (d=0, p=0)
[    2.028852] pci 0000:00:02.0: BAR 2: reserving [mem 0xe0000000-0xefffffff flags 0x14220c] (d=0, p=0)
[    2.028854] pci 0000:00:02.0: BAR 4: reserving [io  0xf000-0xf03f flags 0x40101] (d=0, p=0)
[    2.028859] pci 0000:00:16.0: BAR 0: reserving [mem 0xf7f0a000-0xf7f0a00f flags 0x140204] (d=0, p=0)
[    2.028864] pci 0000:00:1a.0: BAR 0: reserving [mem 0xf7f08000-0xf7f083ff flags 0x40200] (d=0, p=0)
[    2.028869] pci 0000:00:1b.0: BAR 0: reserving [mem 0xf7f00000-0xf7f03fff flags 0x140204] (d=0, p=0)
[    2.028886] pci 0000:00:1d.0: BAR 0: reserving [mem 0xf7f07000-0xf7f073ff flags 0x40200] (d=0, p=0)
[    2.028893] pci 0000:00:1f.2: BAR 0: reserving [io  0xf0b0-0xf0b7 flags 0x40101] (d=0, p=0)
[    2.028895] pci 0000:00:1f.2: BAR 1: reserving [io  0xf0a0-0xf0a3 flags 0x40101] (d=0, p=0)
[    2.028897] pci 0000:00:1f.2: BAR 2: reserving [io  0xf090-0xf097 flags 0x40101] (d=0, p=0)
[    2.028899] pci 0000:00:1f.2: BAR 3: reserving [io  0xf080-0xf083 flags 0x40101] (d=0, p=0)
[    2.028901] pci 0000:00:1f.2: BAR 4: reserving [io  0xf060-0xf07f flags 0x40101] (d=0, p=0)
[    2.028903] pci 0000:00:1f.2: BAR 5: reserving [mem 0xf7f06000-0xf7f067ff flags 0x40200] (d=0, p=0)
[    2.028906] pci 0000:00:1f.3: BAR 0: reserving [mem 0xf7f05000-0xf7f050ff flags 0x140204] (d=0, p=0)
[    2.028909] pci 0000:00:1f.3: BAR 4: reserving [io  0xf040-0xf05f flags 0x40101] (d=0, p=0)
[    2.028914] pci 0000:05:00.0: BAR 0: reserving [io  0xe000-0xe0ff flags 0x40101] (d=0, p=0)
[    2.028916] pci 0000:05:00.0: BAR 2: reserving [mem 0xf1104000-0xf1104fff flags 0x14220c] (d=0, p=0)
[    2.028918] pci 0000:05:00.0: BAR 4: reserving [mem 0xf1100000-0xf1103fff flags 0x14220c] (d=0, p=0)
[    2.028947] pci 0000:09:00.0: BAR 0: reserving [mem 0xf7e00000-0xf7e01fff flags 0x140204] (d=0, p=0)
[    2.028955] pci 0000:0b:00.0: BAR 0: reserving [mem 0xf7d00000-0xf7d0ffff flags 0x140204] (d=0, p=0)
[    2.028957] pci 0000:0b:00.0: BAR 2: reserving [mem 0xf7d10000-0xf7d11fff flags 0x140204] (d=0, p=0)
[    2.028963] pci 0000:11:00.0: BAR 0: reserving [mem 0xf6c84000-0xf6c8407f flags 0x140204] (d=0, p=0)
[    2.028965] pci 0000:11:00.0: BAR 2: reserving [mem 0xf6c80000-0xf6c83fff flags 0x140204] (d=0, p=0)
[    2.028967] pci 0000:11:00.0: BAR 4: reserving [io  0xc000-0xc07f flags 0x40101] (d=0, p=0)
[    2.029041] e820: reserve RAM buffer [mem 0x0009d400-0x0009ffff]
[    2.029060] e820: reserve RAM buffer [mem 0xda4e5000-0xdbffffff]
[    2.029067] e820: reserve RAM buffer [mem 0xda793000-0xdbffffff]
[    2.029075] e820: reserve RAM buffer [mem 0xdaa89000-0xdbffffff]
[    2.029083] e820: reserve RAM buffer [mem 0x41fe00000-0x41fffffff]
[    2.031223] Bluetooth: Core ver 2.16
[    2.031498] NET: Registered protocol family 31
[    2.031588] Bluetooth: HCI device and connection manager initialized
[    2.031705] Bluetooth: HCI socket layer initialized
[    2.031811] Bluetooth: L2CAP socket layer initialized
[    2.031946] Bluetooth: SCO socket layer initialized
[    2.033015] cfg80211: Calling CRDA to update world regulatory domain
[    2.033821] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    2.034269] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    2.036377] Switching to clocksource hpet
[    2.037134] pnp: PnP ACPI init
[    2.037330] ACPI: bus type pnp registered
[    2.045069] pnp 00:00: [bus 00-3e]
[    2.045077] pnp 00:00: [io  0x0000-0x0cf7 window]
[    2.045083] pnp 00:00: [io  0x0cf8-0x0cff]
[    2.045090] pnp 00:00: [io  0x0d00-0xffff window]
[    2.045097] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    2.045103] pnp 00:00: [mem 0x000c0000-0x000c3fff window]
[    2.045109] pnp 00:00: [mem 0x000c4000-0x000c7fff window]
[    2.045115] pnp 00:00: [mem 0x000c8000-0x000cbfff window]
[    2.045121] pnp 00:00: [mem 0x000cc000-0x000cffff window]
[    2.045128] pnp 00:00: [mem 0x000d0000-0x000d3fff window]
[    2.045135] pnp 00:00: [mem 0x000d4000-0x000d7fff window]
[    2.045142] pnp 00:00: [mem 0x000d8000-0x000dbfff window]
[    2.045148] pnp 00:00: [mem 0x000dc000-0x000dffff window]
[    2.045154] pnp 00:00: [mem 0x000e0000-0x000e3fff window]
[    2.045160] pnp 00:00: [mem 0x000e4000-0x000e7fff window]
[    2.045167] pnp 00:00: [mem 0x000e8000-0x000ebfff window]
[    2.045173] pnp 00:00: [mem 0x000ec000-0x000effff window]
[    2.045179] pnp 00:00: [mem 0x000f0000-0x000fffff window]
[    2.045185] pnp 00:00: [mem 0xdfa00000-0xfeafffff window]
[    2.045191] pnp 00:00: [mem 0xfed40000-0xfed44fff window]
[    2.045606] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    2.045764] pnp 00:01: [io  0x0000-0x001f]
[    2.045771] pnp 00:01: [io  0x0081-0x0091]
[    2.045778] pnp 00:01: [io  0x0093-0x009f]
[    2.045784] pnp 00:01: [io  0x00c0-0x00df]
[    2.045791] pnp 00:01: [dma 4]
[    2.046134] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    2.046253] pnp 00:02: [mem 0xff000000-0xffffffff]
[    2.046682] pnp 00:02: Plug and Play ACPI device, IDs INT0800 (active)
[    2.047927] pnp 00:03: [mem 0xfed00000-0xfed003ff]
[    2.048265] pnp 00:03: Plug and Play ACPI device, IDs PNP0103 (active)
[    2.048413] pnp 00:04: [io  0x002e-0x002f]
[    2.048419] pnp 00:04: [io  0x004e-0x004f]
[    2.048425] pnp 00:04: [io  0x0061]
[    2.048431] pnp 00:04: [io  0x0063]
[    2.048437] pnp 00:04: [io  0x0065]
[    2.048444] pnp 00:04: [io  0x0067]
[    2.048450] pnp 00:04: [io  0x0070]
[    2.048456] pnp 00:04: [io  0x0080]
[    2.048462] pnp 00:04: [io  0x0092]
[    2.048468] pnp 00:04: [io  0x00b2-0x00b3]
[    2.048474] pnp 00:04: [io  0x0680-0x069f]
[    2.048480] pnp 00:04: [io  0x1000-0x100f]
[    2.048485] pnp 00:04: [io  0xffff]
[    2.048493] pnp 00:04: [io  0xffff]
[    2.048499] pnp 00:04: [io  0x0400-0x0453]
[    2.048505] pnp 00:04: [io  0x0458-0x047f]
[    2.048512] pnp 00:04: [io  0x0500-0x057f]
[    2.048518] pnp 00:04: [io  0x164e-0x164f]
[    2.048926] system 00:04: [io  0x0680-0x069f] has been reserved
[    2.049037] system 00:04: [io  0x1000-0x100f] has been reserved
[    2.049144] system 00:04: [io  0xffff] has been reserved
[    2.049251] system 00:04: [io  0xffff] has been reserved
[    2.049358] system 00:04: [io  0x0400-0x0453] has been reserved
[    2.049467] system 00:04: [io  0x0458-0x047f] has been reserved
[    2.049573] system 00:04: [io  0x0500-0x057f] has been reserved
[    2.049680] system 00:04: [io  0x164e-0x164f] has been reserved
[    2.049777] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.049899] pnp 00:05: [io  0x0070-0x0077]
[    2.049915] pnp 00:05: [irq 8]
[    2.050246] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[    2.050744] pnp 00:06: [io  0x0454-0x0457]
[    2.051135] system 00:06: [io  0x0454-0x0457] has been reserved
[    2.051234] system 00:06: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    2.051349] pnp 00:07: [io  0x00f0-0x00ff]
[    2.051361] pnp 00:07: [irq 13]
[    2.051690] pnp 00:07: Plug and Play ACPI device, IDs PNP0c04 (active)
[    2.051909] pnp 00:08: [io  0x0010-0x001f]
[    2.051915] pnp 00:08: [io  0x0022-0x003f]
[    2.051922] pnp 00:08: [io  0x0044-0x005f]
[    2.051929] pnp 00:08: [io  0x0068-0x006f]
[    2.051935] pnp 00:08: [io  0x0072-0x007f]
[    2.051941] pnp 00:08: [io  0x0080]
[    2.051947] pnp 00:08: [io  0x0084-0x0086]
[    2.051953] pnp 00:08: [io  0x0088]
[    2.051959] pnp 00:08: [io  0x008c-0x008e]
[    2.051966] pnp 00:08: [io  0x0090-0x009f]
[    2.051972] pnp 00:08: [io  0x00a2-0x00bf]
[    2.051978] pnp 00:08: [io  0x00e0-0x00ef]
[    2.051984] pnp 00:08: [io  0x04d0-0x04d1]
[    2.051990] pnp 00:08: [mem 0xfe800000-0xfe802fff]
[    2.052374] system 00:08: [io  0x04d0-0x04d1] has been reserved
[    2.052484] system 00:08: [mem 0xfe800000-0xfe802fff] has been reserved
[    2.052582] system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.052800] pnp 00:09: [irq 12]
[    2.053141] pnp 00:09: Plug and Play ACPI device, IDs DLL04b3 SYN0600 SYN0002 PNP0f13 (active)
[    2.053353] pnp 00:0a: [io  0x0060]
[    2.053359] pnp 00:0a: [io  0x0064]
[    2.053365] pnp 00:0a: [io  0x0062]
[    2.053371] pnp 00:0a: [io  0x0066]
[    2.053382] pnp 00:0a: [irq 1]
[    2.053710] pnp 00:0a: Plug and Play ACPI device, IDs PNP0303 (active)
[    2.059033] pnp 00:0b: [mem 0xfed1c000-0xfed1ffff]
[    2.059040] pnp 00:0b: [mem 0xfed10000-0xfed17fff]
[    2.059046] pnp 00:0b: [mem 0xfed18000-0xfed18fff]
[    2.059053] pnp 00:0b: [mem 0xfed19000-0xfed19fff]
[    2.059059] pnp 00:0b: [mem 0xf8000000-0xfbffffff]
[    2.059065] pnp 00:0b: [mem 0xfed20000-0xfed3ffff]
[    2.059071] pnp 00:0b: [mem 0xfed90000-0xfed93fff]
[    2.059078] pnp 00:0b: [mem 0xfed45000-0xfed8ffff]
[    2.059084] pnp 00:0b: [mem 0xff000000-0xffffffff]
[    2.059091] pnp 00:0b: [mem 0xfee00000-0xfeefffff]
[    2.059097] pnp 00:0b: [mem 0xdfa00000-0xdfa00fff]
[    2.059504] system 00:0b: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    2.059615] system 00:0b: [mem 0xfed10000-0xfed17fff] has been reserved
[    2.059724] system 00:0b: [mem 0xfed18000-0xfed18fff] has been reserved
[    2.059843] system 00:0b: [mem 0xfed19000-0xfed19fff] has been reserved
[    2.059955] system 00:0b: [mem 0xf8000000-0xfbffffff] has been reserved
[    2.060064] system 00:0b: [mem 0xfed20000-0xfed3ffff] has been reserved
[    2.060175] system 00:0b: [mem 0xfed90000-0xfed93fff] has been reserved
[    2.060285] system 00:0b: [mem 0xfed45000-0xfed8ffff] has been reserved
[    2.060396] system 00:0b: [mem 0xff000000-0xffffffff] has been reserved
[    2.060516] system 00:0b: [mem 0xfee00000-0xfeefffff] could not be reserved
[    2.060627] system 00:0b: [mem 0xdfa00000-0xdfa00fff] has been reserved
[    2.060726] system 00:0b: Plug and Play ACPI device, IDs PNP0c02 (active)
[    2.061833] pnp 00:0c: [irq 20]
[    2.062200] pnp 00:0c: Plug and Play ACPI device, IDs SMO8800 (active)
[    2.064703] pnp 00:0d: [mem 0x20000000-0x201fffff]
[    2.064709] pnp 00:0d: [mem 0x40000000-0x401fffff]
[    2.065115] system 00:0d: [mem 0x20000000-0x201fffff] has been reserved
[    2.065228] system 00:0d: [mem 0x40000000-0x401fffff] has been reserved
[    2.065326] system 00:0d: Plug and Play ACPI device, IDs PNP0c01 (active)
[    2.066058] pnp: PnP ACPI: found 14 devices
[    2.066150] ACPI: ACPI bus type pnp unregistered
[    2.066243] INFO_MDMA: LNW DMA Driver Version 1.1.0
[    2.098289] pci 0000:00:1c.0: PCI bridge to [bus 03-04]
[    2.098403] pci 0000:00:1c.1: PCI bridge to [bus 05-06]
[    2.098498] pci 0000:00:1c.1:   bridge window [io  0xe000-0xefff]
[    2.098604] pci 0000:00:1c.1:   bridge window [mem 0xf1100000-0xf11fffff 64bit pref]
[    2.098709] pci 0000:00:1c.3: PCI bridge to [bus 09-0a]
[    2.098807] pci 0000:00:1c.3:   bridge window [mem 0xf7e00000-0xf7efffff]
[    2.098914] pci 0000:00:1c.4: PCI bridge to [bus 0b-0c]
[    2.099013] pci 0000:00:1c.4:   bridge window [mem 0xf7d00000-0xf7dfffff]
[    2.099121] pci 0000:00:1c.7: PCI bridge to [bus 11-16]
[    2.099216] pci 0000:00:1c.7:   bridge window [io  0xc000-0xdfff]
[    2.099314] pci 0000:00:1c.7:   bridge window [mem 0xf6c00000-0xf7cfffff]
[    2.099413] pci 0000:00:1c.7:   bridge window [mem 0xf0000000-0xf10fffff 64bit pref]
[    2.099657] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    2.099659] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    2.099660] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    2.099662] pci_bus 0000:00: resource 7 [mem 0x000d0000-0x000d3fff]
[    2.099663] pci_bus 0000:00: resource 8 [mem 0x000d4000-0x000d7fff]
[    2.099664] pci_bus 0000:00: resource 9 [mem 0x000d8000-0x000dbfff]
[    2.099666] pci_bus 0000:00: resource 10 [mem 0x000dc000-0x000dffff]
[    2.099668] pci_bus 0000:00: resource 11 [mem 0x000e0000-0x000e3fff]
[    2.099669] pci_bus 0000:00: resource 12 [mem 0x000e4000-0x000e7fff]
[    2.099671] pci_bus 0000:00: resource 13 [mem 0xdfa00000-0xfeafffff]
[    2.099672] pci_bus 0000:00: resource 14 [mem 0xfed40000-0xfed44fff]
[    2.099674] pci_bus 0000:05: resource 0 [io  0xe000-0xefff]
[    2.099675] pci_bus 0000:05: resource 2 [mem 0xf1100000-0xf11fffff 64bit pref]
[    2.099677] pci_bus 0000:09: resource 1 [mem 0xf7e00000-0xf7efffff]
[    2.099679] pci_bus 0000:0b: resource 1 [mem 0xf7d00000-0xf7dfffff]
[    2.099680] pci_bus 0000:11: resource 0 [io  0xc000-0xdfff]
[    2.099682] pci_bus 0000:11: resource 1 [mem 0xf6c00000-0xf7cfffff]
[    2.099683] pci_bus 0000:11: resource 2 [mem 0xf0000000-0xf10fffff 64bit pref]
[    2.099887] NET: Registered protocol family 2
[    2.101840] TCP established hash table entries: 524288 (order: 11, 8388608 bytes)
[    2.103310] TCP bind hash table entries: 65536 (order: 10, 4194304 bytes)
[    2.107136] TCP: Hash tables configured (established 524288 bind 65536)
[    2.107318] TCP: reno registered
[    2.107520] UDP hash table entries: 8192 (order: 8, 1310720 bytes)
[    2.108627] UDP-Lite hash table entries: 8192 (order: 8, 1310720 bytes)
[    2.110037] NET: Registered protocol family 1
[    2.110710] RPC: Registered named UNIX socket transport module.
[    2.110805] RPC: Registered udp transport module.
[    2.110897] RPC: Registered tcp transport module.
[    2.110987] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.111095] pci 0000:00:02.0: calling pci_fixup_video+0x0/0xa6
[    2.111097] pci 0000:00:02.0: Boot video device
[    2.111105] pci 0000:00:1a.0: calling quirk_usb_early_handoff+0x0/0x655
[    2.111150] pci 0000:00:1a.0: EHCI: BIOS handoff
[    2.236337] pci 0000:00:1d.0: calling quirk_usb_early_handoff+0x0/0x655
[    2.236421] pci 0000:00:1d.0: EHCI: BIOS handoff
[    2.356177] pci 0000:0b:00.0: calling quirk_usb_early_handoff+0x0/0x655
[    2.356259] PCI: CLS 64 bytes, default 64
[    2.356613] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    2.356709] software IO TLB [mem 0xd64e5000-0xda4e4fff] (64MB) mapped at [ffff8800d64e5000-ffff8800da4e4fff]
[    2.360363] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x1b
[    2.360483] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x1b
[    2.360961] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
[    2.367312] sha1_ssse3: Using AVX optimized SHA-1 implementation
[    2.369208] audit: initializing netlink socket (disabled)
[    2.369365] type=2000 audit(1358809217.150:1): initialized
[    2.372347] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    2.415477] DLM installed
[    2.427702] msgmni has been set to 31892
[    2.432750] NET: Registered protocol family 38
[    2.432878] async_tx: api initialized (async)
[    2.432978] Key type asymmetric registered
[    2.433078] Asymmetric key parser 'x509' registered
[    2.433749] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    2.433855] io scheduler noop registered
[    2.433947] io scheduler deadline registered (default)
[    2.434756] io scheduler cfq registered
[    2.437553] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    2.437648] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    2.442223] pci_bus 0000:11: dev 00, created physical slot 1
[    2.442518] acpiphp: Slot [1] registered
[    2.443424] intel_idle: MWAIT substates: 0x21120
[    2.443426] intel_idle: v0.4 model 0x2A
[    2.443427] intel_idle: lapic_timer_reliable_states 0xffffffff
[    2.444692] ACPI: AC Adapter [AC] (on-line)
[    2.446453] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    2.448328] ACPI: Lid Switch [LID0]
[    2.448977] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
[    2.449116] ACPI: Power Button [PWRB]
[    2.449756] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
[    2.449866] ACPI: Sleep Button [SBTN]
[    2.450489] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
[    2.450596] ACPI: Power Button [PWRF]
[    2.451969] ACPI: Requesting acpi_cpufreq
[    2.578930] thermal LNXTHERM:00: registered as thermal_zone0
[    2.579028] ACPI: Thermal Zone [THM] (65 C)
[    2.584528] GHES: HEST is not enabled!
[    2.584620] ioatdma: Intel(R) QuickData Technology Driver 4.00
[    2.683362] ACPI: Battery Slot [BAT0] (battery present)
[    2.772228] Non-volatile memory driver v1.3
[    2.772610] Linux agpgart interface v0.103
[    2.772906] Hangcheck: starting hangcheck timer 0.9.1 (tick is 180 seconds, margin is 60 seconds).
[    2.772907] Hangcheck: Using getrawmonotonic().
[    2.783817] loop: module loaded
[    2.785709] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 1 (20120913/utaddress-251)
[    2.785719] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    2.785877] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
[    2.785884] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    2.786040] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
[    2.786046] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    2.786201] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
[    2.786208] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    2.786355] lpc_ich: Resource conflict(s) found affecting gpio_ich
[    2.787936] ahci 0000:00:1f.2: version 3.0
[    2.788139] ahci 0000:00:1f.2: irq 40 for MSI/MSI-X
[    2.788284] ahci: SSS flag set, parallel bus scan disabled
[    2.805427] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x31 impl SATA mode
[    2.805556] ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pio slum part ems sxs apst 
[    2.805707] ahci 0000:00:1f.2: setting latency timer to 64
[    2.855541] scsi0 : ahci
[    2.857605] scsi1 : ahci
[    2.858562] scsi2 : ahci
[    2.859530] scsi3 : ahci
[    2.860494] scsi4 : ahci
[    2.861457] scsi5 : ahci
[    2.862356] ata1: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06100 irq 40
[    2.862453] ata2: DUMMY
[    2.862541] ata3: DUMMY
[    2.862629] ata4: DUMMY
[    2.862718] ata5: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06300 irq 40
[    2.862814] ata6: SATA max UDMA/133 abar m2048@0xf7f06000 port 0xf7f06380 irq 40
[    2.864356] tun: Universal TUN/TAP device driver, 1.6
[    2.864449] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    2.865027] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded
[    2.865176] r8169 0000:05:00.0: enabling Mem-Wr-Inval
[    2.865447] r8169 0000:05:00.0: irq 41 for MSI/MSI-X
[    2.866825] r8169 0000:05:00.0 eth0: RTL8168e/8111e at 0xffffc9000184a000, 18:03:73:a0:6f:6a, XID 0c200000 IRQ 41
[    2.866974] r8169 0000:05:00.0 eth0: jumbo features [frames: 9200 bytes, tx checksumming: ko]
[    2.867405] VMware vmxnet3 virtual NIC driver - version 1.1.29.0-k-NAPI
[    2.867967] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.868064] ehci_hcd: block sizes: qh 104 qtd 96 itd 192 sitd 96
[    2.868185] ehci_hcd 0000:00:1a.0: enabling bus mastering
[    2.868191] ehci_hcd 0000:00:1a.0: setting latency timer to 64
[    2.868194] ehci_hcd 0000:00:1a.0: EHCI Host Controller
[    2.868396] ehci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    2.868522] ehci_hcd 0000:00:1a.0: debug port 2
[    2.868617] ehci_hcd 0000:00:1a.0: reset hcs_params 0x200002 dbg=2 cc=0 pcc=0 ordered !ppc ports=2
[    2.868621] ehci_hcd 0000:00:1a.0: reset hcc_params 36881 caching frame 1024 64 bit addr
[    2.868698] ehci_hcd 0000:00:1a.0: support lpm
[    2.868718] ehci_hcd 0000:00:1a.0: reset command 0080002 (park)=0 ithresh=8 period=1024 Reset HALT
[    2.872596] ehci_hcd 0000:00:1a.0: cache line size of 64 is not supported
[    2.872597] ehci_hcd 0000:00:1a.0: supports USB remote wakeup
[    2.872720] ehci_hcd 0000:00:1a.0: irq 16, io mem 0xf7f08000
[    2.872816] ehci_hcd 0000:00:1a.0: init command 0010001 (park)=0 ithresh=1 period=1024 RUN
[    2.885283] ehci_hcd 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    2.885780] usb usb1: default language 0x0409
[    2.885899] usb usb1: udev 1, busnum 1, minor = 0
[    2.885901] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.885996] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.886094] usb usb1: Product: EHCI Host Controller
[    2.886186] usb usb1: Manufacturer: Linux 3.7.4-default ehci_hcd
[    2.886279] usb usb1: SerialNumber: 0000:00:1a.0
[    2.887711] usb usb1: usb_probe_device
[    2.887713] usb usb1: configuration #1 chosen from 1 choice
[    2.887867] usb usb1: adding 1-0:1.0 (config #1, interface 0)
[    2.888306] hub 1-0:1.0: usb_probe_interface
[    2.888308] hub 1-0:1.0: usb_probe_interface - got id
[    2.888314] hub 1-0:1.0: USB hub found
[    2.888485] hub 1-0:1.0: 2 ports detected
[    2.888585] hub 1-0:1.0: standalone hub
[    2.888586] hub 1-0:1.0: no power switching (usb 1.0)
[    2.888587] hub 1-0:1.0: individual port over-current protection
[    2.888589] hub 1-0:1.0: power on to power good time: 20ms
[    2.888730] hub 1-0:1.0: local power source is good
[    2.890359] hub 1-0:1.0: trying to enable port power on non-switchable hub
[    2.891003] ehci_hcd 0000:00:1d.0: enabling bus mastering
[    2.891009] ehci_hcd 0000:00:1d.0: setting latency timer to 64
[    2.891012] ehci_hcd 0000:00:1d.0: EHCI Host Controller
[    2.891140] ehci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    2.891264] ehci_hcd 0000:00:1d.0: debug port 2
[    2.891358] ehci_hcd 0000:00:1d.0: reset hcs_params 0x200002 dbg=2 cc=0 pcc=0 ordered !ppc ports=2
[    2.891361] ehci_hcd 0000:00:1d.0: reset hcc_params 36881 caching frame 1024 64 bit addr
[    2.891416] ehci_hcd 0000:00:1d.0: support lpm
[    2.891422] ehci_hcd 0000:00:1d.0: reset command 0080002 (park)=0 ithresh=8 period=1024 Reset HALT
[    2.895298] ehci_hcd 0000:00:1d.0: cache line size of 64 is not supported
[    2.895300] ehci_hcd 0000:00:1d.0: supports USB remote wakeup
[    2.895424] ehci_hcd 0000:00:1d.0: irq 23, io mem 0xf7f07000
[    2.895521] ehci_hcd 0000:00:1d.0: init command 0010001 (park)=0 ithresh=1 period=1024 RUN
[    2.915308] ehci_hcd 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    2.915661] usb usb2: default language 0x0409
[    2.915772] usb usb2: udev 1, busnum 2, minor = 128
[    2.915773] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    2.915869] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.915967] usb usb2: Product: EHCI Host Controller
[    2.916059] usb usb2: Manufacturer: Linux 3.7.4-default ehci_hcd
[    2.916153] usb usb2: SerialNumber: 0000:00:1d.0
[    2.917359] usb usb2: usb_probe_device
[    2.917361] usb usb2: configuration #1 chosen from 1 choice
[    2.917416] usb usb2: adding 2-0:1.0 (config #1, interface 0)
[    2.917800] hub 2-0:1.0: usb_probe_interface
[    2.917802] hub 2-0:1.0: usb_probe_interface - got id
[    2.917805] hub 2-0:1.0: USB hub found
[    2.917961] hub 2-0:1.0: 2 ports detected
[    2.918060] hub 2-0:1.0: standalone hub
[    2.918062] hub 2-0:1.0: no power switching (usb 1.0)
[    2.918063] hub 2-0:1.0: individual port over-current protection
[    2.918065] hub 2-0:1.0: power on to power good time: 20ms
[    2.918126] hub 2-0:1.0: local power source is good
[    2.919641] hub 2-0:1.0: trying to enable port power on non-switchable hub
[    2.920357] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.920453] ohci_hcd: block sizes: ed 80 td 96
[    2.920790] xhci_hcd 0000:0b:00.0: enabling bus mastering
[    2.920795] xhci_hcd 0000:0b:00.0: xHCI Host Controller
[    2.920921] xhci_hcd 0000:0b:00.0: new USB bus registered, assigned bus number 3
[    2.921349] xhci_hcd 0000:0b:00.0: enabling Mem-Wr-Inval
[    2.921352] xhci_hcd 0000:0b:00.0: supports USB remote wakeup
[    2.921380] xhci_hcd 0000:0b:00.0: irq 16, io mem 0xf7d00000
[    2.921689] xhci_hcd 0000:0b:00.0: irq 42 for MSI/MSI-X
[    2.921718] xhci_hcd 0000:0b:00.0: irq 43 for MSI/MSI-X
[    2.921747] xhci_hcd 0000:0b:00.0: irq 44 for MSI/MSI-X
[    2.922403] usb usb3: default language 0x0409
[    2.922509] usb usb3: udev 1, busnum 3, minor = 256
[    2.922511] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[    2.922608] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.924025] usb usb3: Product: xHCI Host Controller
[    2.924118] usb usb3: Manufacturer: Linux 3.7.4-default xhci_hcd
[    2.924212] usb usb3: SerialNumber: 0000:0b:00.0
[    2.925212] usb usb3: usb_probe_device
[    2.925214] usb usb3: configuration #1 chosen from 1 choice
[    2.925231] xHCI xhci_add_endpoint called for root hub
[    2.925232] xHCI xhci_check_bandwidth called for root hub
[    2.925268] usb usb3: adding 3-0:1.0 (config #1, interface 0)
[    2.925665] hub 3-0:1.0: usb_probe_interface
[    2.925667] hub 3-0:1.0: usb_probe_interface - got id
[    2.925670] hub 3-0:1.0: USB hub found
[    2.925826] hub 3-0:1.0: 2 ports detected
[    2.925926] hub 3-0:1.0: standalone hub
[    2.925927] hub 3-0:1.0: individual port power switching
[    2.925928] hub 3-0:1.0: individual port over-current protection
[    2.925930] hub 3-0:1.0: Single TT
[    2.925931] hub 3-0:1.0: TT requires at most 8 FS bit times (666 ns)
[    2.925933] hub 3-0:1.0: power on to power good time: 20ms
[    2.925997] hub 3-0:1.0: local power source is good
[    2.926344] hub 3-0:1.0: enabling power on all ports
[    2.926875] xhci_hcd 0000:0b:00.0: xHCI Host Controller
[    2.926993] xhci_hcd 0000:0b:00.0: new USB bus registered, assigned bus number 4
[    2.927111] xhci_hcd 0000:0b:00.0: supports USB remote wakeup
[    2.927342] usb usb4: skipped 1 descriptor after endpoint
[    2.927378] usb usb4: default language 0x0409
[    2.927496] usb usb4: udev 1, busnum 4, minor = 384
[    2.927498] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[    2.927594] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.927690] usb usb4: Product: xHCI Host Controller
[    2.927783] usb usb4: Manufacturer: Linux 3.7.4-default xhci_hcd
[    2.927877] usb usb4: SerialNumber: 0000:0b:00.0
[    2.928717] usb usb4: usb_probe_device
[    2.928719] usb usb4: configuration #1 chosen from 1 choice
[    2.928737] xHCI xhci_add_endpoint called for root hub
[    2.928738] xHCI xhci_check_bandwidth called for root hub
[    2.928810] usb usb4: adding 4-0:1.0 (config #1, interface 0)
[    2.929200] hub 4-0:1.0: usb_probe_interface
[    2.929202] hub 4-0:1.0: usb_probe_interface - got id
[    2.929205] hub 4-0:1.0: USB hub found
[    2.929365] hub 4-0:1.0: 2 ports detected
[    2.929465] hub 4-0:1.0: standalone hub
[    2.929467] hub 4-0:1.0: individual port power switching
[    2.929468] hub 4-0:1.0: individual port over-current protection
[    2.929470] hub 4-0:1.0: TT requires at most 8 FS bit times (666 ns)
[    2.929471] hub 4-0:1.0: power on to power good time: 20ms
[    2.929538] hub 4-0:1.0: local power source is good
[    2.929878] hub 4-0:1.0: enabling power on all ports
[    2.975694] Initializing USB Mass Storage driver...
[    2.976043] usbcore: registered new interface driver usb-storage
[    2.976137] USB Mass Storage support registered.
[    2.976407] usbcore: registered new interface driver ums-datafab
[    2.976677] usbcore: registered new interface driver ums-freecom
[    2.977003] usbcore: registered new interface driver ums-realtek
[    2.977275] usbcore: registered new interface driver ums-usbat
[    2.977811] i8042: PNP: PS/2 Controller [PNP0303:KBC,PNP0f13:PS2] at 0x60,0x64 irq 1,12
[    2.980609] serio: i8042 KBD port at 0x60,0x64 irq 1
[    2.980761] serio: i8042 AUX port at 0x60,0x64 irq 12
[    2.982360] mousedev: PS/2 mouse device common for all mice
[    2.985158] ehci_hcd 0000:00:1a.0: GetStatus port:1 status 001803 0  ACK POWER sig=j CSC CONNECT
[    2.985169] hub 1-0:1.0: port 1: status 0501 change 0001
[    2.985383] usbcore: registered new interface driver synaptics_usb
[    2.985886] rtc_cmos 00:05: RTC can wake from S4
[    2.986730] rtc_cmos: dev (254:0)
[    2.986758] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[    2.986913] rtc0: alarms up to one month, y3k, 242 bytes nvram, hpet irqs
[    2.987181] i2c /dev entries driver
[    2.987824] ACPI Warning: 0x000000000000f040-0x000000000000f05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20120913/utaddress-251)
[    2.987832] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    2.988233] Driver for 1-wire Dallas network protocol.
[    2.989977] coretemp coretemp.0: TjMax is 100 degrees C
[    2.990013] coretemp coretemp.0: TjMax is 100 degrees C
[    2.990054] coretemp coretemp.0: TjMax is 100 degrees C
[    2.990087] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.10
[    2.990289] iTCO_wdt: Found a Cougar Point TCO device (Version=2, TCOBASE=0x0460)
[    2.991382] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[    2.991638] iTCO_vendor_support: vendor-support=0
[    2.991747] md: linear personality registered for level -1
[    2.991843] md: raid0 personality registered for level 0
[    2.991936] md: raid1 personality registered for level 1
[    2.992029] md: raid10 personality registered for level 10
[    2.992121] md: raid6 personality registered for level 6
[    2.992213] md: raid5 personality registered for level 5
[    2.992306] md: raid4 personality registered for level 4
[    2.993834] device-mapper: uevent: version 1.0.3
[    2.995045] device-mapper: ioctl: 4.23.0-ioctl (2012-07-25) initialised: dm-devel@redhat.com
[    2.997991] device-mapper: dm-log-userspace: version 1.1.0 loaded
[    2.999076] usbcore: registered new interface driver btusb
[    2.999901] cpuidle: using governor ladder
[    3.001121] cpuidle: using governor menu
[    3.001497] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
[    3.001805] sdhci: Secure Digital Host Controller Interface driver
[    3.001901] sdhci: Copyright(c) Pierre Ossman
[    3.006757] dcdbas dcdbas: Dell Systems Management Base Driver (version 5.6.0-3.2)
[    3.011177] usbcore: registered new interface driver usbhid
[    3.011271] usbhid: USB HID core driver
[    3.013001] input: Dell WMI hotkeys as /devices/virtual/input/input5
[    3.015491] snd_hda_intel 0000:00:1b.0: irq 45 for MSI/MSI-X
[    3.015748] ehci_hcd 0000:00:1d.0: GetStatus port:1 status 001803 0  ACK POWER sig=j CSC CONNECT
[    3.015760] hub 2-0:1.0: port 1: status 0501 change 0001
[    3.025155] hub 3-0:1.0: port 1: status 0101 change 0001
[    3.025329] hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0000
[    3.027907] hub 4-0:1.0: state 7 ports 2 chg 0000 evt 0002
[    3.027993] hub 4-0:1.0: reset change on port 1
[    3.028021] hub 4-0:1.0: warm reset change on port 1
[    3.028049] hub 4-0:1.0: port 1, status 0203, change 0031, 5.0 Gb/s
[    3.101733] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input6
[    3.118277] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[    3.119478] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[    3.120657] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[    3.126602] TCP: cubic registered
[    3.126695] NET: Registered protocol family 17
[    3.126951] Bluetooth: RFCOMM TTY layer initialized
[    3.127071] Bluetooth: RFCOMM socket layer initialized
[    3.127164] Bluetooth: RFCOMM ver 1.11
[    3.127254] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.127347] Bluetooth: BNEP filters: protocol multicast
[    3.127451] Bluetooth: BNEP socket layer initialized
[    3.127544] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.127650] Bluetooth: HIDP socket layer initialized
[    3.135805] sctp: Hash tables configured (established 65536 bind 65536)
[    3.136976] Key type dns_resolver registered
[    3.139836] PM: Checking hibernation image partition /dev/sda6
[    3.204890] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    3.204950] hub 4-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x203
[    3.219820] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[    3.220324] ata1.00: ATA-8: WDC WD7500BPKT-75PK4T0, 01.01A01, max UDMA/133
[    3.220449] ata1.00: 1465149168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    3.220761] ata1.00: failed to get Identify Device Data, Emask 0x1
[    3.235897] ata1.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[    3.236612] ata1.00: failed to get Identify Device Data, Emask 0x1
[    3.236625] ata1.00: configured for UDMA/133
[    3.255640] scsi 0:0:0:0: Direct-Access     ATA      WDC WD7500BPKT-7 01.0 PQ: 0 ANSI: 5
[    3.260174] sd 0:0:0:0: [sda] 1465149168 512-byte logical blocks: (750 GB/698 GiB)
[    3.260274] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    3.260817] sd 0:0:0:0: [sda] Write Protect is off
[    3.260911] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.261092] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.261305] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    3.325864] usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd
[    3.354747] tsc: Refined TSC clocksource calibration: 2793.653 MHz
[    3.354864] Switching to clocksource tsc
[    3.357352]  sda: sda1 sda2 sda3 sda4 < sda5 sda6 >
[    3.362676] sd 0:0:0:0: [sda] Attached SCSI disk
[    3.496156] usb 4-1: Parent hub missing LPM exit latency info.  Power management will be impacted.
[    3.605117] usb 4-1: skipped 1 descriptor after endpoint
[    3.614258] ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    3.620191] usb 4-1: default language 0x0409
[    3.624059] ata5.00: ATAPI: PLDS DVD+/-RW DS-8A8SH, KD11, max UDMA/100
[    3.634495] ata5.00: configured for UDMA/100
[    3.650670] usb 4-1: udev 2, busnum 4, minor = 385
[    3.650673] usb 4-1: New USB device found, idVendor=2109, idProduct=0810
[    3.650776] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.650873] usb 4-1: Product: 4-Port USB 3.0 Hub
[    3.651009] usb 4-1: Manufacturer: VIA Labs, Inc.
[    3.651791] scsi 4:0:0:0: CD-ROM            PLDS     DVD+-RW DS-8A8SH KD11 PQ: 0 ANSI: 5
[    3.652391] usb 4-1: usb_probe_device
[    3.652395] usb 4-1: configuration #1 chosen from 1 choice
[    3.662255] usb 4-1: Successful Endpoint Configure command
[    3.666541] usb 4-1: adding 4-1:1.0 (config #1, interface 0)
[    3.667132] hub 4-1:1.0: usb_probe_interface
[    3.667136] hub 4-1:1.0: usb_probe_interface - got id
[    3.667146] hub 4-1:1.0: USB hub found
[    3.672935] sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[    3.672944] cdrom: Uniform CD-ROM driver Revision: 3.20
[    3.675054] sr 4:0:0:0: Attached scsi CD-ROM sr0
[    3.676257] sr 4:0:0:0: Attached scsi generic sg1 type 5
[    3.266053] ACPI: Invalid Power Resource to register!
[    3.680482] ACPI: Invalid Power Resource to register!
[    3.720936] hub 4-1:1.0: 4 ports detected
[    3.721047] hub 4-1:1.0: standalone hub
[    3.721049] hub 4-1:1.0: individual port power switching
[    3.721050] hub 4-1:1.0: individual port over-current protection
[    3.721052] hub 4-1:1.0: TT requires at most 8 FS bit times (666 ns)
[    3.721053] hub 4-1:1.0: power on to power good time: 0ms
[    3.726766] usb 4-1: Successful Endpoint Configure command
[    3.732552] hub 4-1:1.0: local power source is good
[    3.738178] hub 4-1:1.0: enabling power on all ports
[    3.761660] hub 1-0:1.0: state 7 ports 2 chg 0002 evt 0000
[    3.761692] hub 1-0:1.0: port 1, status 0501, change 0000, 480 Mb/s
[    3.814188] ehci_hcd 0000:00:1a.0: port 1 reset complete, port enabled
[    3.814193] ehci_hcd 0000:00:1a.0: GetStatus port:1 status 001005 0  ACK POWER sig=se0 PE CONNECT
[    3.873926] usb 1-1: new high-speed USB device number 2 using ehci_hcd
[    3.934134] ehci_hcd 0000:00:1a.0: port 1 reset complete, port enabled
[    3.934139] ehci_hcd 0000:00:1a.0: GetStatus port:1 status 001005 0  ACK POWER sig=se0 PE CONNECT
[    3.977352] input: DualPoint Stick as /devices/platform/i8042/serio1/input/input10
[    3.992916] input: AlpsPS/2 ALPS DualPoint TouchPad as /devices/platform/i8042/serio1/input/input11
[    4.023664] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    4.024009] ehci_hcd 0000:00:1a.0: set dev address 2 for port 1
[    4.024029] ehci_hcd 0000:00:1a.0: LPM: no device attached
[    4.026393] usb 1-1: udev 2, busnum 1, minor = 1
[    4.026396] usb 1-1: New USB device found, idVendor=8087, idProduct=0024
[    4.026497] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.026672] ata6.00: ATA-8: ST3000DM001-9YN166, CC4C, max UDMA/133
[    4.026766] ata6.00: 5860533168 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
[    4.027286] ata6.00: failed to get Identify Device Data, Emask 0x1
[    4.027560] usb 1-1: usb_probe_device
[    4.027564] usb 1-1: configuration #1 chosen from 1 choice
[    4.029746] usb 1-1: adding 1-1:1.0 (config #1, interface 0)
[    4.030211] hub 1-1:1.0: usb_probe_interface
[    4.030213] hub 1-1:1.0: usb_probe_interface - got id
[    4.030217] hub 1-1:1.0: USB hub found
[    4.030382] ata6.00: failed to get Identify Device Data, Emask 0x1
[    4.030385] ata6.00: configured for UDMA/133
[    4.030507] hub 1-1:1.0: 6 ports detected
[    4.030606] hub 1-1:1.0: standalone hub
[    4.030607] hub 1-1:1.0: individual port power switching
[    4.030609] hub 1-1:1.0: individual port over-current protection
[    4.030610] hub 1-1:1.0: Single TT
[    4.030612] hub 1-1:1.0: TT requires at most 8 FS bit times (666 ns)
[    4.030613] hub 1-1:1.0: power on to power good time: 100ms
[    4.030915] hub 1-1:1.0: local power source is good
[    4.030951] scsi 5:0:0:0: Direct-Access     ATA      ST3000DM001-9YN1 CC4C PQ: 0 ANSI: 5
[    4.034962] sd 5:0:0:0: [sdb] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
[    4.035059] sd 5:0:0:0: [sdb] 4096-byte physical blocks
[    4.035614] sd 5:0:0:0: [sdb] Write Protect is off
[    4.035707] sd 5:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    4.035909] sd 5:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.038633] sd 5:0:0:0: Attached scsi generic sg2 type 0
[    4.048667] hub 1-1:1.0: enabling power on all ports
[    4.050597] hub 2-0:1.0: state 7 ports 2 chg 0002 evt 0000
[    4.050633] hub 2-0:1.0: port 1, status 0501, change 0000, 480 Mb/s
[    4.083577]  sdb: sdb1
[    4.085833] sd 5:0:0:0: [sdb] Attached SCSI disk
[    4.085948] PM: Hibernation image partition 8:6 present
[    4.085949] PM: Looking for hibernation image.
[    4.103878] ehci_hcd 0000:00:1d.0: port 1 reset complete, port enabled
[    4.103884] ehci_hcd 0000:00:1d.0: GetStatus port:1 status 001005 0  ACK POWER sig=se0 PE CONNECT
[    4.121551] PM: Image not found (code -22)
[    4.121554] PM: Hibernation image not present or could not be loaded.
[    4.121731] kmemleak: Kernel memory leak detector initialized
[    4.121759] kmemleak: Automatic memory scanning thread started
[    4.123996] rtc_cmos 00:05: setting system clock to 2013-01-21 23:00:19 UTC (1358809219)
[    4.135788] BIOS EDD facility v0.16 2004-Jun-25, 3 devices found
[    4.140620] ALSA device list:
[    4.140709]   #0: HDA Intel PCH at 0xf7f00000 irq 45
[    4.141155] md: Waiting for all devices to be available before autodetect
[    4.141248] md: If you don't use raid, use raid=noautodetect
[    4.143732] md: Autodetecting RAID arrays.
[    4.143820] md: Scanned 0 and added 0 devices.
[    4.143909] md: autorun ...
[    4.144009] md: ... autorun DONE.
[    4.144106] hub 1-1:1.0: port 5: status 0101 change 0001
[    4.163575] usb 2-1: new high-speed USB device number 2 using ehci_hcd
[    4.214871] kjournald starting.  Commit interval 5 seconds
[    4.215163] EXT3-fs (sda5): mounted filesystem with writeback data mode
[    4.215292] VFS: Mounted root (ext3 filesystem) readonly on device 8:5.
[    4.223707] ehci_hcd 0000:00:1d.0: port 1 reset complete, port enabled
[    4.223723] ehci_hcd 0000:00:1d.0: GetStatus port:1 status 001005 0  ACK POWER sig=se0 PE CONNECT
[    4.243402] usb 1-1: link qh256-0001/ffff88040a84ee40 start 1 [1/0 us]
[    4.255928] devtmpfs: mounted
[    4.257571] Freeing unused kernel memory: 688k freed
[    4.313548] ehci_hcd 0000:00:1d.0: set dev address 2 for port 1
[    4.313559] ehci_hcd 0000:00:1d.0: LPM: no device attached
[    4.314206] usb 2-1: udev 2, busnum 2, minor = 129
[    4.314216] usb 2-1: New USB device found, idVendor=8087, idProduct=0024
[    4.314363] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.316934] usb 2-1: usb_probe_device
[    4.316942] usb 2-1: configuration #1 chosen from 1 choice
[    4.318434] usb 2-1: adding 2-1:1.0 (config #1, interface 0)
[    4.319809] hub 2-1:1.0: usb_probe_interface
[    4.319817] hub 2-1:1.0: usb_probe_interface - got id
[    4.319831] hub 2-1:1.0: USB hub found
[    4.320454] hub 2-1:1.0: 8 ports detected
[    4.320624] hub 2-1:1.0: standalone hub
[    4.320629] hub 2-1:1.0: individual port power switching
[    4.320634] hub 2-1:1.0: individual port over-current protection
[    4.320638] hub 2-1:1.0: Single TT
[    4.320644] hub 2-1:1.0: TT requires at most 8 FS bit times (666 ns)
[    4.320649] hub 2-1:1.0: power on to power good time: 100ms
[    4.321182] hub 2-1:1.0: local power source is good
[    4.420250] hub 2-1:1.0: enabling power on all ports
[    4.422644] hub 3-0:1.0: state 7 ports 2 chg 0002 evt 0000
[    4.422668] hub 3-0:1.0: port 1, status 0101, change 0000, 12 Mb/s
[    4.513519] hub 2-1:1.0: port 2: status 0101 change 0001
[    4.532941] usb 3-1: new high-speed USB device number 2 using xhci_hcd
[    4.555660] usb 3-1: default language 0x0409
[    4.556325] usb 3-1: udev 2, busnum 3, minor = 257
[    4.556335] usb 3-1: New USB device found, idVendor=2109, idProduct=3431
[    4.556479] usb 3-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    4.556621] usb 3-1: Product: USB2.0 Hub
[    4.559120] usb 3-1: usb_probe_device
[    4.559131] usb 3-1: configuration #1 chosen from 1 choice
[    4.588885] usb 3-1: Successful Endpoint Configure command
[    4.589677] usb 3-1: adding 3-1:1.0 (config #1, interface 0)
[    4.591144] hub 3-1:1.0: usb_probe_interface
[    4.591154] hub 3-1:1.0: usb_probe_interface - got id
[    4.591168] hub 3-1:1.0: USB hub found
[    4.591974] hub 3-1:1.0: 4 ports detected
[    4.592149] hub 3-1:1.0: standalone hub
[    4.592155] hub 3-1:1.0: individual port power switching
[    4.592159] hub 3-1:1.0: individual port over-current protection
[    4.592164] hub 3-1:1.0: Single TT
[    4.592170] hub 3-1:1.0: TT requires at most 32 FS bit times (2664 ns)
[    4.592174] hub 3-1:1.0: Port indicators are supported
[    4.592179] hub 3-1:1.0: power on to power good time: 100ms
[    4.592886] usb 3-1: Successful Endpoint Configure command
[    4.593473] hub 3-1:1.0: local power source is good
[    4.595686] hub 3-1:1.0: enabling power on all ports
[    4.604635] hub 4-1:1.0: state 7 ports 4 chg 0000 evt 0000
[    4.604658] hub 1-1:1.0: state 7 ports 6 chg 0020 evt 0000
[    4.604774] usb 4-1: remote wakeup needed for autosuspend
[    4.605018] hub 1-1:1.0: port 5, status 0101, change 0000, 12 Mb/s
[    4.612819] usb 2-1: link qh256-0001/ffff88040a84e098 start 1 [1/0 us]
[    4.683015] usb 1-1.5: new high-speed USB device number 3 using ehci_hcd
[    4.704083] hub 3-1:1.0: port 3: status 0301 change 0001
[    4.704864] hub 3-1:1.0: port 4: status 0301 change 0001
[    4.799491] usb 1-1.5: skipped 1 descriptor after configuration
[    4.799502] usb 1-1.5: skipped 6 descriptors after interface
[    4.799531] usb 1-1.5: skipped 1 descriptor after endpoint
[    4.799538] usb 1-1.5: skipped 19 descriptors after interface
[    4.799855] usb 1-1.5: skipped 1 descriptor after endpoint
[    4.800219] usb 1-1.5: default language 0x0409
[    4.801775] usb 1-1.5: udev 3, busnum 1, minor = 2
[    4.801786] usb 1-1.5: New USB device found, idVendor=05ca, idProduct=1820
[    4.801934] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.802075] usb 1-1.5: Product: Laptop_Integrated_Webcam_FHD
[    4.802210] usb 1-1.5: Manufacturer: CN01MWM9724871A4KB28A00
[    4.804813] usb 1-1.5: usb_probe_device
[    4.804824] usb 1-1.5: configuration #1 chosen from 1 choice
[    4.805159] usb 1-1.5: adding 1-1.5:1.0 (config #1, interface 0)
[    4.807772] usb 1-1.5: adding 1-1.5:1.1 (config #1, interface 1)
[    4.810102] hub 2-1:1.0: state 7 ports 8 chg 0004 evt 0000
[    4.810256] hub 2-1:1.0: port 2, status 0101, change 0000, 12 Mb/s
[    4.882728] usb 2-1.2: new high-speed USB device number 3 using ehci_hcd
[    4.993755] usb 2-1.2: skipped 1 descriptor after interface
[    4.994164] usb 2-1.2: default language 0x0409
[    4.995344] usb 2-1.2: udev 3, busnum 2, minor = 130
[    4.995354] usb 2-1.2: New USB device found, idVendor=13fd, idProduct=0550
[    4.995502] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.995643] usb 2-1.2: Product: WD3200BEVE-00A0H
[    4.995776] usb 2-1.2: Manufacturer: Initio  
[    4.995908] usb 2-1.2: SerialNumber: 00101005500011B80
[    4.998560] usb 2-1.2: usb_probe_device
[    4.998570] usb 2-1.2: configuration #1 chosen from 1 choice
[    4.999046] usb 2-1.2: adding 2-1.2:1.0 (config #1, interface 0)
[    5.000403] usb-storage 2-1.2:1.0: usb_probe_interface
[    5.000418] usb-storage 2-1.2:1.0: usb_probe_interface - got id
[    5.001464] scsi6 : usb-storage 2-1.2:1.0
[    5.005784] usb 2-1.2: adding 2-1.2:1.1 (config #1, interface 1)
[    5.007129] usbhid 2-1.2:1.1: usb_probe_interface
[    5.007135] usbhid 2-1.2:1.1: usb_probe_interface - got id
[    5.012444] usbhid 2-1.2:1.1: looking for a minor, starting at 0
[    5.013855] hid-generic 0003:13FD:0550.0001: hiddev0,hidraw0: USB HID v1.10 Device [Initio   WD3200BEVE-00A0H] on usb-0000:00:1d.0-1.2/input1
[    5.014379] hub 1-1:1.0: state 7 ports 6 chg 0000 evt 0020
[    5.014582] hub 3-1:1.0: state 7 ports 4 chg 0018 evt 0000
[    5.015163] hub 3-1:1.0: port 3, status 0301, change 0000, 1.5 Mb/s
[    5.092676] usb 3-1.3: new low-speed USB device number 3 using xhci_hcd
[    5.118793] usb 3-1.3: skipped 1 descriptor after interface
[    5.119770] usb 3-1.3: default language 0x0409
[    5.123710] usb 3-1.3: udev 3, busnum 3, minor = 258
[    5.123716] usb 3-1.3: New USB device found, idVendor=046d, idProduct=c050
[    5.123857] usb 3-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.123964] usb 3-1.3: Product: USB-PS/2 Optical Mouse
[    5.124066] usb 3-1.3: Manufacturer: Logitech
[    5.125567] usb 3-1.3: usb_probe_device
[    5.125572] usb 3-1.3: configuration #1 chosen from 1 choice
[    5.125660] usb 3-1.3: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[    5.131738] usb 3-1.3: Successful Endpoint Configure command
[    5.132695] usb 3-1.3: adding 3-1.3:1.0 (config #1, interface 0)
[    5.133327] usbhid 3-1.3:1.0: usb_probe_interface
[    5.133328] usbhid 3-1.3:1.0: usb_probe_interface - got id
[    5.139617] input: Logitech USB-PS/2 Optical Mouse as /devices/pci0000:00/0000:00:1c.4/0000:0b:00.0/usb3/3-1/3-1.3/3-1.3:1.0/input/input12
[    5.141599] hid-generic 0003:046D:C050.0002: input,hidraw1: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:0b:00.0-1.3/input0
[    5.142687] hub 3-1:1.0: port 4, status 0301, change 0000, 1.5 Mb/s
[    5.222606] usb 3-1.4: new low-speed USB device number 4 using xhci_hcd
[    5.250876] usb 3-1.4: skipped 1 descriptor after interface
[    5.252298] usb 3-1.4: default language 0x0409
[    5.257324] usb 3-1.4: udev 4, busnum 3, minor = 259
[    5.257334] usb 3-1.4: New USB device found, idVendor=04f2, idProduct=0116
[    5.257483] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    5.257625] usb 3-1.4: Product: USB Keyboard
[    5.257756] usb 3-1.4: Manufacturer: CHICONY
[    5.260283] usb 3-1.4: usb_probe_device
[    5.260294] usb 3-1.4: configuration #1 chosen from 1 choice
[    5.260440] usb 3-1.4: ep 0x81 - rounding interval to 64 microframes, ep desc says 80 microframes
[    5.291791] usb 3-1.4: Successful Endpoint Configure command
[    5.292781] usb 3-1.4: adding 3-1.4:1.0 (config #1, interface 0)
[    5.293387] usbhid 3-1.4:1.0: usb_probe_interface
[    5.293390] usbhid 3-1.4:1.0: usb_probe_interface - got id
[    5.301384] input: CHICONY USB Keyboard as /devices/pci0000:00/0000:00:1c.4/0000:0b:00.0/usb3/3-1/3-1.4/3-1.4:1.0/input/input13
[    5.303510] hid-generic 0003:04F2:0116.0003: input,hidraw2: USB HID v1.10 Keyboard [CHICONY USB Keyboard] on usb-0000:0b:00.0-1.4/input0
[    5.304086] hub 2-1:1.0: state 7 ports 8 chg 0000 evt 0004
[    6.004324] scsi 6:0:0:0: Direct-Access     Initio   WD3200BEVE-00A0H 3.12 PQ: 0 ANSI: 0
[    6.011733] sd 6:0:0:0: [sdc] 625142448 512-byte logical blocks: (320 GB/298 GiB)
[    6.013221] sd 6:0:0:0: [sdc] Write Protect is off
[    6.013330] sd 6:0:0:0: [sdc] Mode Sense: 86 0b 00 02
[    6.013424] sd 6:0:0:0: Attached scsi generic sg3 type 0
[    6.014691] sd 6:0:0:0: [sdc] No Caching mode page present
[    6.014781] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[    6.019939] sd 6:0:0:0: [sdc] No Caching mode page present
[    6.020029] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[    6.020973]  sdc: sdc1
[    6.025102] sd 6:0:0:0: [sdc] No Caching mode page present
[    6.025224] sd 6:0:0:0: [sdc] Assuming drive cache: write through
[    6.025315] sd 6:0:0:0: [sdc] Attached SCSI disk
[    9.293913] systemd-udevd[1958]: starting version 196
[   11.422027] sata_sil24 0000:11:00.0: version 1.1
[   11.427381] scsi7 : sata_sil24
[   11.427938] scsi8 : sata_sil24
[   11.428377] ata7: SATA max UDMA/100 host m128@0xf6c84000 port 0xf6c80000 irq 19
[   11.428380] ata8: SATA max UDMA/100 host m128@0xf6c84000 port 0xf6c82000 irq 19
[   12.556780] Intel(R) Wireless WiFi driver for Linux, in-tree:d
[   12.556783] Copyright(c) 2003-2012 Intel Corporation
[   12.557120] iwlwifi 0000:09:00.0: pci_resource_len = 0x00002000
[   12.557123] iwlwifi 0000:09:00.0: pci_resource_base = ffffc90001874000
[   12.557126] iwlwifi 0000:09:00.0: HW Revision ID = 0x34
[   12.557641] iwlwifi 0000:09:00.0: irq 46 for MSI/MSI-X
[   12.679623] iwlwifi 0000:09:00.0: loaded firmware version 18.168.6.1
[   13.509593] ata7: SATA link down (SStatus 0 SControl 0)
[   13.990768] iwldvm: Intel(R) Wireless WiFi Link AGN driver for Linux, in-tree:d
[   13.990772] iwldvm: Copyright(c) 2003-2012 Intel Corporation
[   13.991114] iwlwifi 0000:09:00.0: CONFIG_IWLWIFI_DEBUG enabled
[   13.991118] iwlwifi 0000:09:00.0: CONFIG_IWLWIFI_DEBUGFS disabled
[   13.991121] iwlwifi 0000:09:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled
[   13.991124] iwlwifi 0000:09:00.0: CONFIG_IWLWIFI_DEVICE_TESTMODE disabled
[   13.991127] iwlwifi 0000:09:00.0: CONFIG_IWLWIFI_P2P disabled
[   13.991132] iwlwifi 0000:09:00.0: Detected Intel(R) Centrino(R) Wireless-N 1030 BGN, REV=0xB0
[   13.991816] iwlwifi 0000:09:00.0: L1 Enabled; Disabling L0S
[   13.998827] iwlwifi 0000:09:00.0: RF_KILL bit toggled to disable radio.
[   14.009349] iwlwifi 0000:09:00.0: device EEPROM VER=0x71a, CALIB=0x6
[   14.009353] iwlwifi 0000:09:00.0: Device SKU: 0x150
[   14.009356] iwlwifi 0000:09:00.0: Valid Tx ant: 0x1, Valid Rx ant: 0x3
[   14.010201] Registered led device: phy0-led
[   14.011142] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
[   15.596437] ata8: SATA link down (SStatus 0 SControl 0)
[   16.575830] [drm] Initialized drm 1.1.0 20060810
[   17.168722] pci 0000:00:00.0: Intel Sandybridge Chipset
[   17.168883] pci 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable
[   17.169570] pci 0000:00:00.0: detected 65536K stolen memory
[   17.169706] i915 0000:00:02.0: setting latency timer to 64
[   17.207948] i915 0000:00:02.0: irq 47 for MSI/MSI-X
[   17.208051] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[   17.208052] [drm] Driver supports precise vblank timestamp query.
[   17.208382] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
[   17.628193] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
[   18.214174] fbcon: inteldrmfb (fb0) is primary device
[   19.323390] Console: switching to colour frame buffer device 170x48
[   19.335223] fb0: inteldrmfb frame buffer device
[   19.335226] drm: registered panic notifier
[   19.414875] acpi device:34: registered as cooling_device2
[   19.418734] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   19.419210] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input14
[   19.419936] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
[   21.727582] EXT3-fs (sda5): using internal journal
[   22.246831] Adding 4998972k swap on /dev/sda6.  Priority:-1 extents:1 across:4998972k 
[   26.735521] r8169 0000:05:00.0 eth0: unable to load firmware patch rtl_nic/rtl8168e-2.fw (-2)
[   26.763781] r8169 0000:05:00.0 eth0: link down
[   26.765158] r8169 0000:05:00.0 eth0: link down
[   28.438571] r8169 0000:05:00.0 eth0: link up
[   44.457132] microcode: CPU0 updated to revision 0x28, date = 2012-04-24
[   44.457823] microcode: CPU1 updated to revision 0x28, date = 2012-04-24
[   44.457827] perf_event_intel: PEBS enabled due to microcode update
[   47.348410] r8169 0000:05:00.0 eth0: link down
[   61.327619] r8169 0000:05:00.0 eth0: link up
[   70.858379] kjournald starting.  Commit interval 5 seconds
[   70.859175] EXT3-fs (sdc1): using internal journal
[   70.859178] EXT3-fs (sdc1): mounted filesystem with writeback data mode
[   75.895183] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
[  258.616949] ata1.00: failed to get Identify Device Data, Emask 0x1
[  258.622417] ata1.00: failed to get Identify Device Data, Emask 0x1
[  258.622431] ata1.00: configured for UDMA/133
[  258.622460] ata1: EH complete
[  258.730297] ata6.00: failed to get Identify Device Data, Emask 0x1
[  258.732901] ata6.00: failed to get Identify Device Data, Emask 0x1
[  258.732914] ata6.00: configured for UDMA/133
[  258.732941] ata6: EH complete
[  259.257830] EXT4-fs (sdb1): re-mounted. Opts: commit=0
[  689.760580] kmemleak: 1 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
[ 1309.528860] kmemleak: 2 new suspected memory leaks (see /sys/kernel/debug/kmemleak)
[ 7592.489133] hda-intel: Unstable LPIB (65528 >= 8192); disabling LPIB delay counting
[10985.856711] r8169 0000:05:00.0 eth0: link down
[41988.520692] r8169 0000:05:00.0 eth0: link up
[42006.969722] r8169 0000:05:00.0 eth0: link down
[42038.394621] r8169 0000:05:00.0 eth0: link up
[42041.799810] r8169 0000:05:00.0 eth0: link down
[42049.589376] r8169 0000:05:00.0 eth0: link up
[42134.563582] r8169 0000:05:00.0 eth0: link down
[42134.563589] r8169 0000:05:00.0 eth0: link down
[42136.750164] r8169 0000:05:00.0 eth0: link up

[-- Attachment #3: lspci.txt --]
[-- Type: text/plain, Size: 1958 bytes --]

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5)
00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5)
00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation HM67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
09:00.0 Network controller: Intel Corporation Centrino Wireless-N 1030 [Rainbow Peak] (rev 34)
0b:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02)
11:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)

[-- Attachment #4: lspci-vvxx.txt --]
[-- Type: text/plain, Size: 36720 bytes --]

00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
	Subsystem: Dell Device 04b3
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
00: 86 80 04 01 06 00 90 20 09 00 00 06 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
	Subsystem: Dell Device 04b3
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 47
	Region 0: Memory at f6800000 (64-bit, non-prefetchable) [size=4M]
	Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at f000 [size=64]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0300c  Data: 4162
	Capabilities: [d0] Power Management version 2
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a4] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: i915
00: 86 80 26 01 07 04 90 00 09 00 00 03 00 00 00 00
10: 04 00 80 f6 00 00 00 00 0c 00 00 e0 00 00 00 00
20: 01 f0 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 90 00 00 00 00 00 00 00 0b 01 00 00

00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
	Subsystem: Dell Device 04b3
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at f7f0a000 (64-bit, non-prefetchable) [size=16]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [8c] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
00: 86 80 3a 1c 06 00 10 00 04 00 80 07 00 00 80 00
10: 04 a0 f0 f7 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 00

00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05) (prog-if 20 [EHCI])
	Subsystem: Dell Device 04b3
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at f7f08000 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Debug port: BAR=1 offset=00a0
	Capabilities: [98] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ehci_hcd
00: 86 80 2d 1c 06 00 90 02 05 20 03 0c 00 00 00 00
10: 00 80 f0 f7 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 50 00 00 00 00 00 00 00 0b 01 00 00

00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
	Subsystem: Dell Device 04b3
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 45
	Region 0: Memory at f7f00000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0300c  Data: 4142
	Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- RBE- FLReset+
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; Disabled- Retrain- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=01
			Status:	NegoPending- InProgress-
		VC1:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=1 ArbSelect=Fixed TC/VC=22
			Status:	NegoPending- InProgress-
	Capabilities: [130 v1] Root Complex Link
		Desc:	PortNumber=0f ComponentID=00 EltType=Config
		Link0:	Desc:	TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+
			Addr:	00000000fed1c000
	Kernel driver in use: snd_hda_intel
00: 86 80 20 1c 06 04 10 00 05 00 03 04 10 00 00 00
10: 04 00 f0 f7 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 50 00 00 00 00 00 00 00 05 01 00 00

00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=03, subordinate=04, sec-latency=0
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <1us, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #0, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
			Changed: MRL- PresDet- LinkState-
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: Dell Device 04b3
	Capabilities: [a0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport
00: 86 80 10 1c 07 00 10 00 b5 00 04 06 10 00 81 00
10: 00 00 00 00 00 00 00 00 00 03 04 00 f0 00 00 20
20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 10 00

00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=05, subordinate=06, sec-latency=0
	I/O behind bridge: 0000e000-0000efff
	Prefetchable memory behind bridge: 00000000f1100000-00000000f11fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #2, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #1, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: Dell Device 04b3
	Capabilities: [a0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport
00: 86 80 12 1c 07 00 10 00 b5 00 04 06 10 00 81 00
10: 00 00 00 00 00 00 00 00 00 05 06 00 e0 e0 00 00
20: f0 ff 00 00 11 f1 11 f1 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 05 02 10 00

00:1c.3 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 (rev b5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=09, subordinate=0a, sec-latency=0
	Memory behind bridge: f7e00000-f7efffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #4, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #3, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: Dell Device 04b3
	Capabilities: [a0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport
00: 86 80 16 1c 07 00 10 00 b5 00 04 06 10 00 81 00
10: 00 00 00 00 00 00 00 00 00 09 0a 00 f0 00 00 20
20: e0 f7 e0 f7 f1 ff 01 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 04 10 00

00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=0b, subordinate=0c, sec-latency=0
	Memory behind bridge: f7d00000-f7dfffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #5, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt+
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
			Slot #4, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState+
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: Dell Device 04b3
	Capabilities: [a0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport
00: 86 80 18 1c 07 00 10 00 b5 00 04 06 10 00 81 00
10: 00 00 00 00 00 00 00 00 00 0b 0c 00 f0 00 00 20
20: d0 f7 d0 f7 f1 ff 01 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 10 00

00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5) (prog-if 00 [Normal decode])
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Bus: primary=00, secondary=11, subordinate=16, sec-latency=0
	I/O behind bridge: 0000c000-0000dfff
	Memory behind bridge: f6c00000-f7cfffff
	Prefetchable memory behind bridge: 00000000f0000000-00000000f10fffff
	Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
	BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
		PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
	Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #8, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <16us
			ClockPM- Surprise- LLActRep+ BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
		SltCap:	AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
			Slot #7, PowerLimit 10.000W; Interlock- NoCompl+
		SltCtl:	Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
			Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
		SltSta:	Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock-
			Changed: MRL- PresDet- LinkState-
		RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna- CRSVisible-
		RootCap: CRSVisible-
		RootSta: PME ReqID 0000, PMEStatus- PMEPending-
		DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
		Address: 00000000  Data: 0000
	Capabilities: [90] Subsystem: Dell Device 04b3
	Capabilities: [a0] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Kernel driver in use: pcieport
00: 86 80 1e 1c 07 00 10 00 b5 00 04 06 10 00 81 00
10: 00 00 00 00 00 00 00 00 00 11 16 00 c0 d0 00 00
20: c0 f6 c0 f7 01 f0 01 f1 00 00 00 00 00 00 00 00
30: 00 00 00 00 40 00 00 00 00 00 00 00 0a 04 10 00

00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05) (prog-if 20 [EHCI])
	Subsystem: Dell Device 04b3
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin A routed to IRQ 23
	Region 0: Memory at f7f07000 (32-bit, non-prefetchable) [size=1K]
	Capabilities: [50] Power Management version 2
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Debug port: BAR=1 offset=00a0
	Capabilities: [98] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ehci_hcd
00: 86 80 26 1c 06 00 90 02 05 20 03 0c 00 00 00 00
10: 00 70 f0 f7 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 50 00 00 00 00 00 00 00 05 01 00 00

00:1f.0 ISA bridge: Intel Corporation HM67 Express Chipset Family LPC Controller (rev 05)
	Subsystem: Dell Device 04b3
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Capabilities: [e0] Vendor Specific Information: Len=0c <?>
	Kernel driver in use: lpc_ich
00: 86 80 4b 1c 07 00 10 02 05 00 01 06 00 00 80 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00

00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 05) (prog-if 01 [AHCI 1.0])
	Subsystem: Dell Device 04b3
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin B routed to IRQ 40
	Region 0: I/O ports at f0b0 [size=8]
	Region 1: I/O ports at f0a0 [size=4]
	Region 2: I/O ports at f090 [size=8]
	Region 3: I/O ports at f080 [size=4]
	Region 4: I/O ports at f060 [size=32]
	Region 5: Memory at f7f06000 (32-bit, non-prefetchable) [size=2K]
	Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
		Address: fee0300c  Data: 4191
	Capabilities: [70] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
	Capabilities: [b0] PCI Advanced Features
		AFCap: TP+ FLR+
		AFCtrl: FLR-
		AFStatus: TP-
	Kernel driver in use: ahci
00: 86 80 03 1c 07 04 b0 02 05 01 06 01 00 00 00 00
10: b1 f0 00 00 a1 f0 00 00 91 f0 00 00 81 f0 00 00
20: 61 f0 00 00 00 60 f0 f7 00 00 00 00 28 10 b3 04
30: 00 00 00 00 80 00 00 00 00 00 00 00 0a 02 00 00

00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
	Subsystem: Dell Device 04b3
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin C routed to IRQ 18
	Region 0: Memory at f7f05000 (64-bit, non-prefetchable) [size=256]
	Region 4: I/O ports at f040 [size=32]
00: 86 80 22 1c 03 00 80 02 05 00 05 0c 00 00 00 00
10: 04 50 f0 f7 00 00 00 00 00 00 00 00 00 00 00 00
20: 41 f0 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 00 00 00 00 00 00 00 00 03 03 00 00

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)
	Subsystem: Dell Device 04b3
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 41
	Region 0: I/O ports at e000 [size=256]
	Region 2: Memory at f1104000 (64-bit, prefetchable) [size=4K]
	Region 4: Memory at f1100000 (64-bit, prefetchable) [size=16K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0300c  Data: 41a1
	Capabilities: [70] Express (v2) Endpoint, MSI 01
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 4096 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
		Vector table: BAR=4 offset=00000000
		PBA: BAR=4 offset=00000800
	Capabilities: [d0] Vital Product Data
		Unknown small resource type 00, will not decode more.
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr+ BadTLP- BadDLLP+ Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
	Capabilities: [140 v1] Virtual Channel
		Caps:	LPEVC=0 RefClk=100ns PATEntryBits=1
		Arb:	Fixed- WRR32- WRR64- WRR128-
		Ctrl:	ArbSelect=Fixed
		Status:	InProgress-
		VC0:	Caps:	PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
			Arb:	Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
			Ctrl:	Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
			Status:	NegoPending- InProgress-
	Capabilities: [160 v1] Device Serial Number 01-00-00-00-68-4c-e0-00
	Kernel driver in use: r8169
00: ec 10 68 81 07 04 10 00 06 00 00 02 10 00 00 00
10: 01 e0 00 00 00 00 00 00 0c 40 10 f1 00 00 00 00
20: 0c 00 10 f1 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 40 00 00 00 00 00 00 00 05 01 00 00

09:00.0 Network controller: Intel Corporation Centrino Wireless-N 1030 [Rainbow Peak] (rev 34)
	Subsystem: Intel Corporation Centrino Wireless-N 1030 BGN
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 46
	Region 0: Memory at f7e00000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [c8] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee0300c  Data: 4152
	Capabilities: [e0] Express (v1) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 <32us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [140 v1] Device Serial Number 4c-80-93-ff-ff-15-e6-c7
	Kernel driver in use: iwlwifi
00: 86 80 8a 00 06 00 10 00 34 00 80 02 10 00 00 00
10: 04 00 e0 f7 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 25 53
30: 00 00 00 00 c8 00 00 00 00 00 00 00 0a 01 00 00

0b:00.0 USB controller: Texas Instruments TUSB73x0 SuperSpeed USB 3.0 xHCI Host Controller (rev 02) (prog-if 30 [XHCI])
	Subsystem: Dell Device 04b3
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at f7d00000 (64-bit, non-prefetchable) [size=64K]
	Region 2: Memory at f7d10000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: [40] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=100mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [48] MSI: Enable- Count=1/8 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [70] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 1024 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <512ns, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [c0] MSI-X: Enable+ Count=8 Masked-
		Vector table: BAR=2 offset=00000000
		PBA: BAR=2 offset=00001000
	Capabilities: [100 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP+ Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
	Capabilities: [150 v1] Device Serial Number 08-00-28-00-00-20-00-00
	Kernel driver in use: xhci_hcd
00: 4c 10 41 82 06 04 10 00 02 30 03 0c 10 00 00 00
10: 04 00 d0 f7 00 00 00 00 04 00 d1 f7 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 28 10 b3 04
30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 00 00

11:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)
	Subsystem: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller
	Physical Slot: 1
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 19
	Region 0: Memory at f6c84000 (64-bit, non-prefetchable) [size=128]
	Region 2: Memory at f6c80000 (64-bit, non-prefetchable) [size=16K]
	Region 4: I/O ports at c000 [size=128]
	Expansion ROM at f6c00000 [disabled] [size=512K]
	Capabilities: [54] Power Management version 2
		Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
	Capabilities: [5c] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [70] Express (v1) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 1024 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 128 bytes, MaxReadReq 4096 bytes
		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited
			ClockPM- Surprise- LLActRep- BwNot-
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
		AERCap:	First Error Pointer: 14, GenCap+ CGenEn- ChkCap+ ChkEn-
	Kernel driver in use: sata_sil24
00: 95 10 32 31 07 00 10 00 01 00 80 01 10 00 00 00
10: 04 40 c8 f6 00 00 00 00 04 00 c8 f6 00 00 00 00
20: 01 c0 00 00 00 00 00 00 00 00 00 00 95 10 32 31
30: 00 00 c0 f6 54 00 00 00 00 00 00 00 0a 01 00 00


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: linux-3.7.[1,4]: kmemleak in i801_probe
  2013-01-23 11:15 linux-3.7.[1,4]: kmemleak in i801_probe Martin Mokrejs
@ 2013-01-23 16:42 ` Jean Delvare
  2013-01-23 17:35   ` Martin Mokrejs
  2013-12-23  9:39   ` [PATCH] i2c: i801: fix memleak on probe error Peter Wu
  0 siblings, 2 replies; 16+ messages in thread
From: Jean Delvare @ 2013-01-23 16:42 UTC (permalink / raw)
  To: Martin Mokrejs; +Cc: Linux I2C, LKML

Hi Martin,

On Wed, 23 Jan 2013 12:15:37 +0100, Martin Mokrejs wrote:
> Hi,
>   I already reported this to lkml recently with linux-3.7.1 but this is to let you know
> that with 3.7.4 I am still getting this kmemleak reported by the kernel.

I don't read LKML.

> unreferenced object 0xffff88040b614690 (size 256):
>   comm "swapper/0", pid 1, jiffies 4294937573 (age 133834.550s)
>   hex dump (first 32 bytes):
>     00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
>     ff ff ff ff ff ff ff ff 08 7f 5d 82 ff ff ff ff  ..........].....
>   backtrace:
>     [<ffffffff815b4aad>] kmemleak_alloc+0x21/0x3e
>     [<ffffffff81110352>] slab_post_alloc_hook+0x28/0x2a
>     [<ffffffff8111288a>] __kmalloc+0xf2/0x104
>     [<ffffffff81305165>] kzalloc.constprop.14+0xe/0x10
>     [<ffffffff813055c6>] device_private_init+0x14/0x63
>     [<ffffffff813076a0>] dev_set_drvdata+0x19/0x2f
>     [<ffffffff815c4f5e>] i801_probe+0x5e/0x451
>     [<ffffffff81280e40>] local_pci_probe+0x39/0x61
>     [<ffffffff81281f53>] pci_device_probe+0xc6/0xf3
>     [<ffffffff81307c5d>] driver_probe_device+0xa9/0x1c1
>     [<ffffffff81307dcf>] __driver_attach+0x5a/0x7e
>     [<ffffffff8130650a>] bus_for_each_dev+0x57/0x83
>     [<ffffffff81307806>] driver_attach+0x19/0x1b
>     [<ffffffff813073d8>] bus_add_driver+0xa8/0x1fa
>     [<ffffffff81308241>] driver_register+0x8c/0x106
>     [<ffffffff81281b4e>] __pci_register_driver+0x59/0x5d

I am using the i2c-i801 driver, enabled kmemleak, but I don't get this
leak. Did you have to do anything special to get it? Didn't you get a
similar leak with older kernels? Do you get a similar leak (with
reference to dev_set_drvdata)?

I can see that dev_set_drvdata may allocate memory (which I didn't
know) and I admit I don't see where it gets released, however this is
all happening in the driver core and isn't specific to the i2c-i801
driver, so if there really is a leak there, you should see it in all
drivers.

-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: linux-3.7.[1,4]: kmemleak in i801_probe
  2013-01-23 16:42 ` Jean Delvare
@ 2013-01-23 17:35   ` Martin Mokrejs
  2013-12-23  9:39   ` [PATCH] i2c: i801: fix memleak on probe error Peter Wu
  1 sibling, 0 replies; 16+ messages in thread
From: Martin Mokrejs @ 2013-01-23 17:35 UTC (permalink / raw)
  To: Jean Delvare; +Cc: Linux I2C, LKML

Hi Jean,

Jean Delvare wrote:
> Hi Martin,
> 
> On Wed, 23 Jan 2013 12:15:37 +0100, Martin Mokrejs wrote:
>> Hi,
>>   I already reported this to lkml recently with linux-3.7.1 but this is to let you know
>> that with 3.7.4 I am still getting this kmemleak reported by the kernel.
> 
> I don't read LKML.
> 
>> unreferenced object 0xffff88040b614690 (size 256):
>>   comm "swapper/0", pid 1, jiffies 4294937573 (age 133834.550s)
>>   hex dump (first 32 bytes):
>>     00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
>>     ff ff ff ff ff ff ff ff 08 7f 5d 82 ff ff ff ff  ..........].....
>>   backtrace:
>>     [<ffffffff815b4aad>] kmemleak_alloc+0x21/0x3e
>>     [<ffffffff81110352>] slab_post_alloc_hook+0x28/0x2a
>>     [<ffffffff8111288a>] __kmalloc+0xf2/0x104
>>     [<ffffffff81305165>] kzalloc.constprop.14+0xe/0x10
>>     [<ffffffff813055c6>] device_private_init+0x14/0x63
>>     [<ffffffff813076a0>] dev_set_drvdata+0x19/0x2f
>>     [<ffffffff815c4f5e>] i801_probe+0x5e/0x451
>>     [<ffffffff81280e40>] local_pci_probe+0x39/0x61
>>     [<ffffffff81281f53>] pci_device_probe+0xc6/0xf3
>>     [<ffffffff81307c5d>] driver_probe_device+0xa9/0x1c1
>>     [<ffffffff81307dcf>] __driver_attach+0x5a/0x7e
>>     [<ffffffff8130650a>] bus_for_each_dev+0x57/0x83
>>     [<ffffffff81307806>] driver_attach+0x19/0x1b
>>     [<ffffffff813073d8>] bus_add_driver+0xa8/0x1fa
>>     [<ffffffff81308241>] driver_register+0x8c/0x106
>>     [<ffffffff81281b4e>] __pci_register_driver+0x59/0x5d
> 
> I am using the i2c-i801 driver, enabled kmemleak, but I don't get this
> leak. Did you have to do anything special to get it? Didn't you get a

Based on the dmesg timestamp I think I just logged in through xdm. Eh.
Actually, xdm crashes for me, I have to do in the framebuffer VT console:

root # /etc/init.d/xdm stop
user $ startx

and happily use my X. I have a bugreport opened at https://bugs.freedesktop.org/show_bug.cgi?id=56608
but I doubt it is related to i2c_801 driver. But it is not clear
why I cannot just use xdm but can always start X11 via startx.
And actually, rarely, but without reinstalling my kernel or x11
server or drivers, I sometimes (1/20 attempts?) I can login through xdm. But
comparing Xorg.log files from successful xdm login against those unsuccessful
did not help so far. Only reordered items, probably due to autoconfig.
So, I don't think it helps you with isolating the i2c_801 driver memleak.

> similar leak with older kernels? Do you get a similar leak (with
> reference to dev_set_drvdata)?

With 3.7.1 I was getting same stacktrace:

unreferenced object 0xffff88040b1c5230 (size 256):
  comm "swapper/0", pid 1, jiffies 4294937570 (age 182492.630s)
  hex dump (first 32 bytes):
    00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
    ff ff ff ff ff ff ff ff 38 3f 5d 82 ff ff ff ff  ........8?].....
  backtrace:
    [<ffffffff815b1dbd>] kmemleak_alloc+0x21/0x3e
    [<ffffffff81110536>] slab_post_alloc_hook+0x28/0x2a
    [<ffffffff81112a6e>] __kmalloc+0xf2/0x104
    [<ffffffff81302bd5>] kzalloc.constprop.14+0xe/0x10
    [<ffffffff81303036>] device_private_init+0x14/0x63
    [<ffffffff81305110>] dev_set_drvdata+0x19/0x2f
    [<ffffffff815c1ed4>] i801_probe+0x5e/0x451
    [<ffffffff81280fb3>] local_pci_probe+0x5b/0xa2
    [<ffffffff81282074>] pci_device_probe+0xc8/0xf7
    [<ffffffff813056cd>] driver_probe_device+0xa9/0x1c1
    [<ffffffff8130583f>] __driver_attach+0x5a/0x7e
    [<ffffffff81303f7a>] bus_for_each_dev+0x57/0x83
    [<ffffffff81305276>] driver_attach+0x19/0x1b
    [<ffffffff81304e48>] bus_add_driver+0xa8/0x1fa
    [<ffffffff81305cb1>] driver_register+0x8c/0x106
    [<ffffffff81281c6d>] __pci_register_driver+0x5a/0x5e

Before 3.7.1 I did not use kmemleak detector. while searching my older emails/reports
I found only that I loaded in the past both drivers (on a 2.6.32.59 kernel):

Mar 26 11:21:55 vostro kernel: i801_smbus 0000:00:1f.3: PCI INT C -> GSI 18 (level, low) -> IRQ 18
Mar 26 11:21:55 vostro kernel: ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver


And here the relevant line from lspci from that time:
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)

00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
        Subsystem: Dell Device 04b3
        Flags: medium devsel, IRQ 18
        Memory at f7f05000 (64-bit, non-prefetchable) [size=256]
        I/O ports at f040 [size=32]
        Kernel modules: i2c-i801


I don't think this will help you now. :(


> 
> I can see that dev_set_drvdata may allocate memory (which I didn't
> know) and I admit I don't see where it gets released, however this is
> all happening in the driver core and isn't specific to the i2c-i801
> driver, so if there really is a leak there, you should see it in all
> drivers.

I am not a kernel developer at all but maybe that little bit points out that the
kmemleak was reported when I was pulling in/out my external USB drives?

Martin

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH] i2c: i801: fix memleak on probe error
  2013-01-23 16:42 ` Jean Delvare
  2013-01-23 17:35   ` Martin Mokrejs
@ 2013-12-23  9:39   ` Peter Wu
  2013-12-23 10:43     ` Peter Wu
  1 sibling, 1 reply; 16+ messages in thread
From: Peter Wu @ 2013-12-23  9:39 UTC (permalink / raw)
  To: Jean Delvare; +Cc: linux-i2c, Martin Mokrejs, linux-kernel, Peter Wu

The driver-specific data for i801 was only set for the device on
success, that led to a memory leak on error paths (for instance, when
there is a resource conflict with ACPI). (The driver core clears the
driver data (if set) if the probe routine fails).

Fix it by setting the driver data right after successful memory
allocation, before reaching any error paths.

References: http://lkml.org/lkml/2013/1/23/191
Reported-by: Martin Mokrejs <mmokrejs@fold.natur.cuni.cz>
Tested-by: Peter Wu <lekensteyn@gmail.com> [ACPI conflict error path]
Signed-off-by: Peter Wu <lekensteyn@gmail.com>
---
Hi Jean,

This memleak issue is still present in v3.13-rc4-256-gb7000ad.
>From kmemleak:

unreferenced object 0xffff88022f501a00 (size 256):
  comm "systemd-udevd", pid 209, jiffies 4294896115 (age 2872.520s)
  hex dump (first 32 bytes):
    00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
    ff ff ff ff ff ff ff ff f4 e2 53 82 ff ff ff ff  ..........S.....
  backtrace:
    [<ffffffff815d29ce>] kmemleak_alloc+0x4e/0xb0
    [<ffffffff8116ea5a>] kmem_cache_alloc_trace+0xfa/0x1e0
    [<ffffffff813efc63>] device_private_init+0x23/0x80
    [<ffffffff813f2b49>] dev_set_drvdata+0x39/0x50
    [<ffffffffa0294539>] i801_probe+0x59/0x528 [i2c_i801]
    [<ffffffff81332d95>] local_pci_probe+0x45/0xa0
    [<ffffffff81333be9>] pci_device_probe+0xd9/0x130
    [<ffffffff813f30e7>] driver_probe_device+0x87/0x390
    [<ffffffff813f34c3>] __driver_attach+0x93/0xa0
    [<ffffffff813f102b>] bus_for_each_dev+0x6b/0xb0
    [<ffffffff813f2b0e>] driver_attach+0x1e/0x20
    [<ffffffff813f26e8>] bus_add_driver+0x188/0x260
    [<ffffffff813f3b04>] driver_register+0x64/0xf0
    [<ffffffff81332930>] __pci_register_driver+0x60/0x70
    [<ffffffffa02990af>] 0xffffffffa02990af
    [<ffffffff81000312>] do_one_initcall+0xf2/0x1a0

The dmesg for this laptop also contains a resource conflict message,
just like the reporter (Martin Mokrejs):

    [   15.409772] ACPI Warning: 0x0000000000001840-0x000000000000185f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20131115/utaddress-251)
    [   15.413439] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

With this patch applied on top of almost 3.13-rc5 (v3.13-rc4-256-gb7000ad),
the memleak is gone.

Regards,
Peter
---
 drivers/i2c/busses/i2c-i801.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 737e298..a7096bf 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -1117,6 +1117,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	if (!priv)
 		return -ENOMEM;
 
+	pci_set_drvdata(dev, priv);
 	i2c_set_adapdata(&priv->adapter, priv);
 	priv->adapter.owner = THIS_MODULE;
 	priv->adapter.class = i801_get_adapter_class(priv);
@@ -1236,8 +1237,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	/* We ignore errors - multiplexing is optional */
 	i801_add_mux(priv);
 
-	pci_set_drvdata(dev, priv);
-
 	return 0;
 
 exit_free_irq:
-- 
1.8.5.2


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH] i2c: i801: fix memleak on probe error
  2013-12-23  9:39   ` [PATCH] i2c: i801: fix memleak on probe error Peter Wu
@ 2013-12-23 10:43     ` Peter Wu
  2013-12-23 10:51       ` Martin Mokrejs
  2014-01-08  9:05       ` [PATCH] i2c: i801: fix memleak on probe error Jean Delvare
  0 siblings, 2 replies; 16+ messages in thread
From: Peter Wu @ 2013-12-23 10:43 UTC (permalink / raw)
  To: Jean Delvare; +Cc: linux-i2c, Martin Mokrejs, linux-kernel

Nevermind this patch, it does not really fix the memleak because
i2c_set_adapdata() calls dev_set_drvdata() which allocates memory.
(I must have ran kmemleak too early, right after boot it did not
give any warnings, now it does).

RFC: what about dropping i2c_set_adapdata() from the probe function
and replacing i2c_get_adapdata(adapter) by
pci_get_drvdata(adapter->pci_dev) on top of this patch? I am not
sure what the purpose is for i2c_set_adapdata, hence this question.

Regards,
Peter

On Monday 23 December 2013 10:39:38 Peter Wu wrote:
> The driver-specific data for i801 was only set for the device on
> success, that led to a memory leak on error paths (for instance, when
> there is a resource conflict with ACPI). (The driver core clears the
> driver data (if set) if the probe routine fails).
> 
> Fix it by setting the driver data right after successful memory
> allocation, before reaching any error paths.
> 
> References: http://lkml.org/lkml/2013/1/23/191
> Reported-by: Martin Mokrejs <mmokrejs@fold.natur.cuni.cz>
> Tested-by: Peter Wu <lekensteyn@gmail.com> [ACPI conflict error path]
> Signed-off-by: Peter Wu <lekensteyn@gmail.com>
> ---
> Hi Jean,
> 
> This memleak issue is still present in v3.13-rc4-256-gb7000ad.
> From kmemleak:
> 
> unreferenced object 0xffff88022f501a00 (size 256):
>   comm "systemd-udevd", pid 209, jiffies 4294896115 (age 2872.520s)
>   hex dump (first 32 bytes):
>     00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
>     ff ff ff ff ff ff ff ff f4 e2 53 82 ff ff ff ff  ..........S.....
>   backtrace:
>     [<ffffffff815d29ce>] kmemleak_alloc+0x4e/0xb0
>     [<ffffffff8116ea5a>] kmem_cache_alloc_trace+0xfa/0x1e0
>     [<ffffffff813efc63>] device_private_init+0x23/0x80
>     [<ffffffff813f2b49>] dev_set_drvdata+0x39/0x50
>     [<ffffffffa0294539>] i801_probe+0x59/0x528 [i2c_i801]
>     [<ffffffff81332d95>] local_pci_probe+0x45/0xa0
>     [<ffffffff81333be9>] pci_device_probe+0xd9/0x130
>     [<ffffffff813f30e7>] driver_probe_device+0x87/0x390
>     [<ffffffff813f34c3>] __driver_attach+0x93/0xa0
>     [<ffffffff813f102b>] bus_for_each_dev+0x6b/0xb0
>     [<ffffffff813f2b0e>] driver_attach+0x1e/0x20
>     [<ffffffff813f26e8>] bus_add_driver+0x188/0x260
>     [<ffffffff813f3b04>] driver_register+0x64/0xf0
>     [<ffffffff81332930>] __pci_register_driver+0x60/0x70
>     [<ffffffffa02990af>] 0xffffffffa02990af
>     [<ffffffff81000312>] do_one_initcall+0xf2/0x1a0
> 
> The dmesg for this laptop also contains a resource conflict message,
> just like the reporter (Martin Mokrejs):
> 
>     [   15.409772] ACPI Warning: 0x0000000000001840-0x000000000000185f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20131115/utaddress-251)
>     [   15.413439] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
> 
> With this patch applied on top of almost 3.13-rc5 (v3.13-rc4-256-gb7000ad),
> the memleak is gone.
> 
> Regards,
> Peter
> ---
>  drivers/i2c/busses/i2c-i801.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
> index 737e298..a7096bf 100644
> --- a/drivers/i2c/busses/i2c-i801.c
> +++ b/drivers/i2c/busses/i2c-i801.c
> @@ -1117,6 +1117,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  	if (!priv)
>  		return -ENOMEM;
>  
> +	pci_set_drvdata(dev, priv);
>  	i2c_set_adapdata(&priv->adapter, priv);
>  	priv->adapter.owner = THIS_MODULE;
>  	priv->adapter.class = i801_get_adapter_class(priv);
> @@ -1236,8 +1237,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
>  	/* We ignore errors - multiplexing is optional */
>  	i801_add_mux(priv);
>  
> -	pci_set_drvdata(dev, priv);
> -
>  	return 0;
>  
>  exit_free_irq:
> 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] i2c: i801: fix memleak on probe error
  2013-12-23 10:43     ` Peter Wu
@ 2013-12-23 10:51       ` Martin Mokrejs
  2013-12-23 15:49         ` How should dev_[gs]et_drvdata be used? (was: Re: [PATCH] i2c: i801: fix memleak on probe error) Peter Wu
  2014-01-08  9:05       ` [PATCH] i2c: i801: fix memleak on probe error Jean Delvare
  1 sibling, 1 reply; 16+ messages in thread
From: Martin Mokrejs @ 2013-12-23 10:51 UTC (permalink / raw)
  To: Peter Wu, Jean Delvare; +Cc: linux-i2c, linux-kernel

Thanks for the note, was just compiling a new 3.10.24 kernel to test it.
;-)

So far just booted an old 3.9 kernel and after plugging in an external
USB3 drive I got the message, just to be sure I am still able to reproduce
the error and that I have the right .config in the running kernel.

Will wait for another fix instead.
Martin

Peter Wu wrote:
> Nevermind this patch, it does not really fix the memleak because
> i2c_set_adapdata() calls dev_set_drvdata() which allocates memory.
> (I must have ran kmemleak too early, right after boot it did not
> give any warnings, now it does).
>
> RFC: what about dropping i2c_set_adapdata() from the probe function
> and replacing i2c_get_adapdata(adapter) by
> pci_get_drvdata(adapter->pci_dev) on top of this patch? I am not
> sure what the purpose is for i2c_set_adapdata, hence this question.
>
> Regards,
> Peter
>
> On Monday 23 December 2013 10:39:38 Peter Wu wrote:
>> The driver-specific data for i801 was only set for the device on
>> success, that led to a memory leak on error paths (for instance, when
>> there is a resource conflict with ACPI). (The driver core clears the
>> driver data (if set) if the probe routine fails).
>>
>> Fix it by setting the driver data right after successful memory
>> allocation, before reaching any error paths.
>>
>> References: http://lkml.org/lkml/2013/1/23/191
>> Reported-by: Martin Mokrejs <mmokrejs@fold.natur.cuni.cz>
>> Tested-by: Peter Wu <lekensteyn@gmail.com> [ACPI conflict error path]
>> Signed-off-by: Peter Wu <lekensteyn@gmail.com>
>> ---
>> Hi Jean,
>>
>> This memleak issue is still present in v3.13-rc4-256-gb7000ad.
>>  From kmemleak:
>>
>> unreferenced object 0xffff88022f501a00 (size 256):
>>    comm "systemd-udevd", pid 209, jiffies 4294896115 (age 2872.520s)
>>    hex dump (first 32 bytes):
>>      00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
>>      ff ff ff ff ff ff ff ff f4 e2 53 82 ff ff ff ff  ..........S.....
>>    backtrace:
>>      [<ffffffff815d29ce>] kmemleak_alloc+0x4e/0xb0
>>      [<ffffffff8116ea5a>] kmem_cache_alloc_trace+0xfa/0x1e0
>>      [<ffffffff813efc63>] device_private_init+0x23/0x80
>>      [<ffffffff813f2b49>] dev_set_drvdata+0x39/0x50
>>      [<ffffffffa0294539>] i801_probe+0x59/0x528 [i2c_i801]
>>      [<ffffffff81332d95>] local_pci_probe+0x45/0xa0
>>      [<ffffffff81333be9>] pci_device_probe+0xd9/0x130
>>      [<ffffffff813f30e7>] driver_probe_device+0x87/0x390
>>      [<ffffffff813f34c3>] __driver_attach+0x93/0xa0
>>      [<ffffffff813f102b>] bus_for_each_dev+0x6b/0xb0
>>      [<ffffffff813f2b0e>] driver_attach+0x1e/0x20
>>      [<ffffffff813f26e8>] bus_add_driver+0x188/0x260
>>      [<ffffffff813f3b04>] driver_register+0x64/0xf0
>>      [<ffffffff81332930>] __pci_register_driver+0x60/0x70
>>      [<ffffffffa02990af>] 0xffffffffa02990af
>>      [<ffffffff81000312>] do_one_initcall+0xf2/0x1a0
>>
>> The dmesg for this laptop also contains a resource conflict message,
>> just like the reporter (Martin Mokrejs):
>>
>>      [   15.409772] ACPI Warning: 0x0000000000001840-0x000000000000185f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20131115/utaddress-251)
>>      [   15.413439] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
>>
>> With this patch applied on top of almost 3.13-rc5 (v3.13-rc4-256-gb7000ad),
>> the memleak is gone.
>>
>> Regards,
>> Peter
>> ---
>>   drivers/i2c/busses/i2c-i801.c | 3 +--
>>   1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
>> index 737e298..a7096bf 100644
>> --- a/drivers/i2c/busses/i2c-i801.c
>> +++ b/drivers/i2c/busses/i2c-i801.c
>> @@ -1117,6 +1117,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
>>   	if (!priv)
>>   		return -ENOMEM;
>>
>> +	pci_set_drvdata(dev, priv);
>>   	i2c_set_adapdata(&priv->adapter, priv);
>>   	priv->adapter.owner = THIS_MODULE;
>>   	priv->adapter.class = i801_get_adapter_class(priv);
>> @@ -1236,8 +1237,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
>>   	/* We ignore errors - multiplexing is optional */
>>   	i801_add_mux(priv);
>>
>> -	pci_set_drvdata(dev, priv);
>> -
>>   	return 0;
>>
>>   exit_free_irq:
>>
>
>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* How should dev_[gs]et_drvdata be used? (was: Re: [PATCH] i2c: i801: fix memleak on probe error)
  2013-12-23 10:51       ` Martin Mokrejs
@ 2013-12-23 15:49         ` Peter Wu
  2013-12-23 17:37           ` Alex Williamson
  0 siblings, 1 reply; 16+ messages in thread
From: Peter Wu @ 2013-12-23 15:49 UTC (permalink / raw)
  To: Martin Mokrejs; +Cc: Jean Delvare, linux-i2c, linux-kernel, Alex Williamson

On Monday 23 December 2013 11:51:12 Martin Mokrejs wrote:
> Thanks for the note, was just compiling a new 3.10.24 kernel to test it.
> ;-)
> 
> So far just booted an old 3.9 kernel and after plugging in an external
> USB3 drive I got the message, just to be sure I am still able to reproduce
> the error and that I have the right .config in the running kernel.
> 
> Will wait for another fix instead.
> Martin

There is still one thing I do not fully understand, how should
dev_set_drvdata and dev_get_drvdata be used? For the devices passed
to probe functions, the core takes care of setting to NULL on error.
Then device_unregister frees the memory, right?

Now, what if the dev_set_drvdata (or aliases such as pci_set_drvdata,
i2c_set_adapinfo, etc.) are manually called outside probe functions?
Or inside the probe function, but not for the device that is being
probed (such as is the case with the i801 i2c driver)?

The VFIO driver also does something odd, it clears the driver data,
but the device holding it is freed using kfree():

    static void vfio_device_release(struct kref *kref) {
        struct vfio_device *device = container_of(kref,
                                                  struct vfio_device, kref);
        struct vfio_group *group = device->group;

        list_del(&device->group_next);
        mutex_unlock(&group->device_lock);

        dev_set_drvdata(device->dev, NULL);

        kfree(device);

Is a memory leak also present here since dev_set_drvdata() always tries to
allocate memory?

Regards,
Peter

> Peter Wu wrote:
> > Nevermind this patch, it does not really fix the memleak because
> > i2c_set_adapdata() calls dev_set_drvdata() which allocates memory.
> > (I must have ran kmemleak too early, right after boot it did not
> > give any warnings, now it does).
> >
> > RFC: what about dropping i2c_set_adapdata() from the probe function
> > and replacing i2c_get_adapdata(adapter) by
> > pci_get_drvdata(adapter->pci_dev) on top of this patch? I am not
> > sure what the purpose is for i2c_set_adapdata, hence this question.
> >
> > Regards,
> > Peter
> >
> > On Monday 23 December 2013 10:39:38 Peter Wu wrote:
> >> The driver-specific data for i801 was only set for the device on
> >> success, that led to a memory leak on error paths (for instance, when
> >> there is a resource conflict with ACPI). (The driver core clears the
> >> driver data (if set) if the probe routine fails).
> >>
> >> Fix it by setting the driver data right after successful memory
> >> allocation, before reaching any error paths.
> >>
> >> References: http://lkml.org/lkml/2013/1/23/191
> >> Reported-by: Martin Mokrejs <mmokrejs@fold.natur.cuni.cz>
> >> Tested-by: Peter Wu <lekensteyn@gmail.com> [ACPI conflict error path]
> >> Signed-off-by: Peter Wu <lekensteyn@gmail.com>
> >> ---
> >> Hi Jean,
> >>
> >> This memleak issue is still present in v3.13-rc4-256-gb7000ad.
> >>  From kmemleak:
> >>
> >> unreferenced object 0xffff88022f501a00 (size 256):
> >>    comm "systemd-udevd", pid 209, jiffies 4294896115 (age 2872.520s)
> >>    hex dump (first 32 bytes):
> >>      00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00  .....N..........
> >>      ff ff ff ff ff ff ff ff f4 e2 53 82 ff ff ff ff  ..........S.....
> >>    backtrace:
> >>      [<ffffffff815d29ce>] kmemleak_alloc+0x4e/0xb0
> >>      [<ffffffff8116ea5a>] kmem_cache_alloc_trace+0xfa/0x1e0
> >>      [<ffffffff813efc63>] device_private_init+0x23/0x80
> >>      [<ffffffff813f2b49>] dev_set_drvdata+0x39/0x50
> >>      [<ffffffffa0294539>] i801_probe+0x59/0x528 [i2c_i801]
> >>      [<ffffffff81332d95>] local_pci_probe+0x45/0xa0
> >>      [<ffffffff81333be9>] pci_device_probe+0xd9/0x130
> >>      [<ffffffff813f30e7>] driver_probe_device+0x87/0x390
> >>      [<ffffffff813f34c3>] __driver_attach+0x93/0xa0
> >>      [<ffffffff813f102b>] bus_for_each_dev+0x6b/0xb0
> >>      [<ffffffff813f2b0e>] driver_attach+0x1e/0x20
> >>      [<ffffffff813f26e8>] bus_add_driver+0x188/0x260
> >>      [<ffffffff813f3b04>] driver_register+0x64/0xf0
> >>      [<ffffffff81332930>] __pci_register_driver+0x60/0x70
> >>      [<ffffffffa02990af>] 0xffffffffa02990af
> >>      [<ffffffff81000312>] do_one_initcall+0xf2/0x1a0
> >>
> >> The dmesg for this laptop also contains a resource conflict message,
> >> just like the reporter (Martin Mokrejs):
> >>
> >>      [   15.409772] ACPI Warning: 0x0000000000001840-0x000000000000185f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 1 (20131115/utaddress-251)
> >>      [   15.413439] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
> >>
> >> With this patch applied on top of almost 3.13-rc5 (v3.13-rc4-256-gb7000ad),
> >> the memleak is gone.
> >>
> >> Regards,
> >> Peter
> >> ---
> >>   drivers/i2c/busses/i2c-i801.c | 3 +--
> >>   1 file changed, 1 insertion(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
> >> index 737e298..a7096bf 100644
> >> --- a/drivers/i2c/busses/i2c-i801.c
> >> +++ b/drivers/i2c/busses/i2c-i801.c
> >> @@ -1117,6 +1117,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
> >>   	if (!priv)
> >>   		return -ENOMEM;
> >>
> >> +	pci_set_drvdata(dev, priv);
> >>   	i2c_set_adapdata(&priv->adapter, priv);
> >>   	priv->adapter.owner = THIS_MODULE;
> >>   	priv->adapter.class = i801_get_adapter_class(priv);
> >> @@ -1236,8 +1237,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
> >>   	/* We ignore errors - multiplexing is optional */
> >>   	i801_add_mux(priv);
> >>
> >> -	pci_set_drvdata(dev, priv);
> >> -
> >>   	return 0;
> >>
> >>   exit_free_irq:
> >>
> >
> >


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used? (was: Re: [PATCH] i2c: i801: fix memleak on probe error)
  2013-12-23 15:49         ` How should dev_[gs]et_drvdata be used? (was: Re: [PATCH] i2c: i801: fix memleak on probe error) Peter Wu
@ 2013-12-23 17:37           ` Alex Williamson
  2013-12-24  0:18             ` How should dev_[gs]et_drvdata be used? Peter Wu
  0 siblings, 1 reply; 16+ messages in thread
From: Alex Williamson @ 2013-12-23 17:37 UTC (permalink / raw)
  To: Peter Wu; +Cc: Martin Mokrejs, Jean Delvare, linux-i2c, linux-kernel

On Mon, 2013-12-23 at 16:49 +0100, Peter Wu wrote:
> On Monday 23 December 2013 11:51:12 Martin Mokrejs wrote:
> > Thanks for the note, was just compiling a new 3.10.24 kernel to test it.
> > ;-)
> > 
> > So far just booted an old 3.9 kernel and after plugging in an external
> > USB3 drive I got the message, just to be sure I am still able to reproduce
> > the error and that I have the right .config in the running kernel.
> > 
> > Will wait for another fix instead.
> > Martin
> 
> There is still one thing I do not fully understand, how should
> dev_set_drvdata and dev_get_drvdata be used? For the devices passed
> to probe functions, the core takes care of setting to NULL on error.
> Then device_unregister frees the memory, right?
> 
> Now, what if the dev_set_drvdata (or aliases such as pci_set_drvdata,
> i2c_set_adapinfo, etc.) are manually called outside probe functions?
> Or inside the probe function, but not for the device that is being
> probed (such as is the case with the i801 i2c driver)?
> 
> The VFIO driver also does something odd, it clears the driver data,
> but the device holding it is freed using kfree():
> 
>     static void vfio_device_release(struct kref *kref) {
>         struct vfio_device *device = container_of(kref,
>                                                   struct vfio_device, kref);
>         struct vfio_group *group = device->group;
> 
>         list_del(&device->group_next);
>         mutex_unlock(&group->device_lock);
> 
>         dev_set_drvdata(device->dev, NULL);
> 
>         kfree(device);
> 
> Is a memory leak also present here since dev_set_drvdata() always tries to
> allocate memory?

But it doesn't:

int dev_set_drvdata(struct device *dev, void *data)
{
        int error;

        if (!dev->p) {
                error = device_private_init(dev);
                if (error)
                        return error;
        }
        dev->p->driver_data = data;
        return 0;
}

Also, the code referenced is kfree'ing a struct vfio_device, not the
struct device.  VFIO uses the drvdata to provide a back pointer to the
vfio specific structure, which also includes a pointer to the struct
device.  We obviously want to clear drvdata when the vfio specific
structure is being released.  Thanks,

Alex


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2013-12-23 17:37           ` Alex Williamson
@ 2013-12-24  0:18             ` Peter Wu
  2013-12-24  1:51               ` Alex Williamson
  2014-01-08 13:28               ` Jean Delvare
  0 siblings, 2 replies; 16+ messages in thread
From: Peter Wu @ 2013-12-24  0:18 UTC (permalink / raw)
  To: Alex Williamson; +Cc: Martin Mokrejs, Jean Delvare, linux-i2c, linux-kernel

On Monday 23 December 2013 10:37:21 Alex Williamson wrote:
> On Mon, 2013-12-23 at 16:49 +0100, Peter Wu wrote:
[..]
> > 
> > There is still one thing I do not fully understand, how should
> > dev_set_drvdata and dev_get_drvdata be used? For the devices passed
> > to probe functions, the core takes care of setting to NULL on error.
> > Then device_unregister frees the memory, right?
> > 
> > Now, what if the dev_set_drvdata (or aliases such as pci_set_drvdata,
> > i2c_set_adapinfo, etc.) are manually called outside probe functions?
> > Or inside the probe function, but not for the device that is being
> > probed (such as is the case with the i801 i2c driver)?
> > 
> > The VFIO driver also does something odd, it clears the driver data,
> > but the device holding it is freed using kfree():
> > 
> >     static void vfio_device_release(struct kref *kref) {
> >         struct vfio_device *device = container_of(kref,
> >                                                   struct vfio_device, kref);
> >         struct vfio_group *group = device->group;
> > 
> >         list_del(&device->group_next);
> >         mutex_unlock(&group->device_lock);
> > 
> >         dev_set_drvdata(device->dev, NULL);
> > 
> >         kfree(device);
> > 
> > Is a memory leak also present here since dev_set_drvdata() always tries to
> > allocate memory?
> 
> But it doesn't:
> 
> int dev_set_drvdata(struct device *dev, void *data)
> {
>         int error;
> 
>         if (!dev->p) {
>                 error = device_private_init(dev);
>                 if (error)
>                         return error;
>         }
>         dev->p->driver_data = data;
>         return 0;
> }

It does:

int device_private_init(struct device *dev)
{
        dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL);
        if (!dev->p)
                return -ENOMEM;
        dev->p->device = dev; 
        klist_init(&dev->p->klist_children, klist_children_get,
                   klist_children_put);
        INIT_LIST_HEAD(&dev->p->deferred_probe);
        return 0;
}

and if it doesn't, then I must be missing something in this non-obvious
code. I scanned the interwebs and Documentation/, but could not really
find a great example on how this is supposed to work. The dev_set_drvdata
function existed since Linus moved to git.

> Also, the code referenced is kfree'ing a struct vfio_device, not the
> struct device.  VFIO uses the drvdata to provide a back pointer to the
> vfio specific structure, which also includes a pointer to the struct
> device.  We obviously want to clear drvdata when the vfio specific
> structure is being released.

Ah, I see. "device->dev" is not freed, but "device". And the data is
cleared for "device->dev". Thanks for correcting.

Clear examples of how to use dev_{s,g}et_drvdata correctly in i2c is
still wanted. I stepped in it yesterday, i2c seems to have its own
way to register new devices. More specifically, how can the memory
associated with dev_set_drvdata be free'd on error paths if the
device is not registered with device_register (as is done in the
probe function of the i801 i2c driver)?

Regards,
Peter


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2013-12-24  0:18             ` How should dev_[gs]et_drvdata be used? Peter Wu
@ 2013-12-24  1:51               ` Alex Williamson
  2013-12-24  9:44                 ` Peter Wu
  2014-01-08 13:28               ` Jean Delvare
  1 sibling, 1 reply; 16+ messages in thread
From: Alex Williamson @ 2013-12-24  1:51 UTC (permalink / raw)
  To: Peter Wu; +Cc: Martin Mokrejs, Jean Delvare, linux-i2c, linux-kernel

On Tue, 2013-12-24 at 01:18 +0100, Peter Wu wrote:
> On Monday 23 December 2013 10:37:21 Alex Williamson wrote:
> > On Mon, 2013-12-23 at 16:49 +0100, Peter Wu wrote:
> [..]
> > > 
> > > There is still one thing I do not fully understand, how should
> > > dev_set_drvdata and dev_get_drvdata be used? For the devices passed
> > > to probe functions, the core takes care of setting to NULL on error.
> > > Then device_unregister frees the memory, right?
> > > 
> > > Now, what if the dev_set_drvdata (or aliases such as pci_set_drvdata,
> > > i2c_set_adapinfo, etc.) are manually called outside probe functions?
> > > Or inside the probe function, but not for the device that is being
> > > probed (such as is the case with the i801 i2c driver)?
> > > 
> > > The VFIO driver also does something odd, it clears the driver data,
> > > but the device holding it is freed using kfree():
> > > 
> > >     static void vfio_device_release(struct kref *kref) {
> > >         struct vfio_device *device = container_of(kref,
> > >                                                   struct vfio_device, kref);
> > >         struct vfio_group *group = device->group;
> > > 
> > >         list_del(&device->group_next);
> > >         mutex_unlock(&group->device_lock);
> > > 
> > >         dev_set_drvdata(device->dev, NULL);
> > > 
> > >         kfree(device);
> > > 
> > > Is a memory leak also present here since dev_set_drvdata() always tries to
> > > allocate memory?
> > 
> > But it doesn't:
> > 
> > int dev_set_drvdata(struct device *dev, void *data)
> > {
> >         int error;
> > 
> >         if (!dev->p) {
> >                 error = device_private_init(dev);
> >                 if (error)
> >                         return error;
> >         }
> >         dev->p->driver_data = data;
> >         return 0;
> > }
> 
> It does:
> 
> int device_private_init(struct device *dev)
> {
>         dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL);
>         if (!dev->p)
>                 return -ENOMEM;
>         dev->p->device = dev; 
>         klist_init(&dev->p->klist_children, klist_children_get,
>                    klist_children_put);
>         INIT_LIST_HEAD(&dev->p->deferred_probe);
>         return 0;
> }
> 
> and if it doesn't, then I must be missing something in this non-obvious
> code. I scanned the interwebs and Documentation/, but could not really
> find a great example on how this is supposed to work. The dev_set_drvdata
> function existed since Linus moved to git.

You're missing that device_private_init() is only called if (!dev->p).
It's a one time initializer and after that we only set the driver_data.

> > Also, the code referenced is kfree'ing a struct vfio_device, not the
> > struct device.  VFIO uses the drvdata to provide a back pointer to the
> > vfio specific structure, which also includes a pointer to the struct
> > device.  We obviously want to clear drvdata when the vfio specific
> > structure is being released.
> 
> Ah, I see. "device->dev" is not freed, but "device". And the data is
> cleared for "device->dev". Thanks for correcting.
> 
> Clear examples of how to use dev_{s,g}et_drvdata correctly in i2c is
> still wanted. I stepped in it yesterday, i2c seems to have its own
> way to register new devices. More specifically, how can the memory
> associated with dev_set_drvdata be free'd on error paths if the
> device is not registered with device_register (as is done in the
> probe function of the i801 i2c driver)?
> 
> Regards,
> Peter
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/



^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2013-12-24  1:51               ` Alex Williamson
@ 2013-12-24  9:44                 ` Peter Wu
  0 siblings, 0 replies; 16+ messages in thread
From: Peter Wu @ 2013-12-24  9:44 UTC (permalink / raw)
  To: Alex Williamson; +Cc: Martin Mokrejs, Jean Delvare, linux-i2c, linux-kernel

On Monday 23 December 2013 18:51:09 Alex Williamson wrote:
> > It does:
> > 
> > int device_private_init(struct device *dev)
> > {
> >         dev->p = kzalloc(sizeof(*dev->p), GFP_KERNEL);
> >         if (!dev->p)
> >                 return -ENOMEM;
> >         dev->p->device = dev; 
> >         klist_init(&dev->p->klist_children, klist_children_get,
> >                    klist_children_put);
> >         INIT_LIST_HEAD(&dev->p->deferred_probe);
> >         return 0;
> > }
> > 
> > and if it doesn't, then I must be missing something in this non-obvious
> > code. I scanned the interwebs and Documentation/, but could not really
> > find a great example on how this is supposed to work. The dev_set_drvdata
> > function existed since Linus moved to git.
> 
> You're missing that device_private_init() is only called if (!dev->p).
> It's a one time initializer and after that we only set the driver_data.

Yes I am aware of that, the question is about the memory that got allocated
in vfio_group_create_device().

I think I have found the answer. The "dev" device is passed from the PCI
layer, that will probably take care of freeing the resources when the
device is gone. Is this view correct?

Thanks for your replies!

Peter

> > > Also, the code referenced is kfree'ing a struct vfio_device, not the
> > > struct device.  VFIO uses the drvdata to provide a back pointer to the
> > > vfio specific structure, which also includes a pointer to the struct
> > > device.  We obviously want to clear drvdata when the vfio specific
> > > structure is being released.
> > 
> > Ah, I see. "device->dev" is not freed, but "device". And the data is
> > cleared for "device->dev". Thanks for correcting.
> > 
> > Clear examples of how to use dev_{s,g}et_drvdata correctly in i2c is
> > still wanted. I stepped in it yesterday, i2c seems to have its own
> > way to register new devices. More specifically, how can the memory
> > associated with dev_set_drvdata be free'd on error paths if the
> > device is not registered with device_register (as is done in the
> > probe function of the i801 i2c driver)?


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] i2c: i801: fix memleak on probe error
  2013-12-23 10:43     ` Peter Wu
  2013-12-23 10:51       ` Martin Mokrejs
@ 2014-01-08  9:05       ` Jean Delvare
  1 sibling, 0 replies; 16+ messages in thread
From: Jean Delvare @ 2014-01-08  9:05 UTC (permalink / raw)
  To: Peter Wu; +Cc: linux-i2c, Martin Mokrejs, linux-kernel

Hi Peter,

Joining the discussion late as I was on vacation...

On Mon, 23 Dec 2013 11:43:21 +0100, Peter Wu wrote:
> Nevermind this patch, it does not really fix the memleak because
> i2c_set_adapdata() calls dev_set_drvdata() which allocates memory.
> (I must have ran kmemleak too early, right after boot it did not
> give any warnings, now it does).

I can confirm that your proposed patch doesn't fix anything. It makes
no difference if pci_set_drvdata(dev, priv) is called earlier or later.

> RFC: what about dropping i2c_set_adapdata() from the probe function
> and replacing i2c_get_adapdata(adapter) by
> pci_get_drvdata(adapter->pci_dev) on top of this patch? I am not
> sure what the purpose is for i2c_set_adapdata, hence this question.

The purpose of i2c_set_adapdata is to attach a data structure to a
specific i2c_adapter device. In the case of the i2c-i801 driver,
there's only one such (class) device per PCI device so we could indeed
reuse the PCI device data pointer as you suggest above. But in the
general case there can be several i2c_adapter devices and each needs
its own data.

Also for performance reasons we don't want to do that because
pci_get_drvdata(adapter->pci_dev) is slower than
i2c_get_adapdata(adapter) (due to the extra pointer deference.) As this
happens repeatedly at run-time (in function i801_access) we want it to
be as fast as possible.

Note that we could (ab)use i2c_adapter.algo_data to store the
i2c_adapter device-specific data. Some drivers are doing exactly that,
for example i2c-nforce2. I suspect this legacy field is now somewhat
redundant with i2c_set_adapdata() as I couldn't find any i2c bus
driver using both.

-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2013-12-24  0:18             ` How should dev_[gs]et_drvdata be used? Peter Wu
  2013-12-24  1:51               ` Alex Williamson
@ 2014-01-08 13:28               ` Jean Delvare
  2014-11-25 21:14                 ` Uwe Kleine-König
  1 sibling, 1 reply; 16+ messages in thread
From: Jean Delvare @ 2014-01-08 13:28 UTC (permalink / raw)
  To: Peter Wu; +Cc: Alex Williamson, Martin Mokrejs, linux-i2c, linux-kernel

On Tue, 24 Dec 2013 01:18:03 +0100, Peter Wu wrote:
> On Monday 23 December 2013 10:37:21 Alex Williamson wrote:
> > On Mon, 2013-12-23 at 16:49 +0100, Peter Wu wrote:
> [..]
> > > 
> > > There is still one thing I do not fully understand, how should
> > > dev_set_drvdata and dev_get_drvdata be used? For the devices passed
> > > to probe functions, the core takes care of setting to NULL on error.
> > > Then device_unregister frees the memory, right?
> > > 
> > > Now, what if the dev_set_drvdata (or aliases such as pci_set_drvdata,
> > > i2c_set_adapinfo, etc.) are manually called outside probe functions?

FWIW I don't think this is supposed to happen.

> > > Or inside the probe function, but not for the device that is being
> > > probed (such as is the case with the i801 i2c driver)?

This OTOH does happen. Is suspect any driver which instantiates class
devices will do exactly that. It's nothing i2c specific. For example
media drivers call video_set_drvdata() in their probe functions.

> (...)
> Clear examples of how to use dev_{s,g}et_drvdata correctly in i2c is
> still wanted. I stepped in it yesterday, i2c seems to have its own
> way to register new devices.

What makes you think so? It's as standard as I can imagine.

> More specifically, how can the memory
> associated with dev_set_drvdata be free'd on error paths if the
> device is not registered with device_register (as is done in the
> probe function of the i801 i2c driver)?

There are two pieces of data to consider here. The data structure which
is pointed to by dev_get_drvdata (or i2c_get_adapdata) is allocated
explicitly by the driver and must be freed explicitly by the driver
(unless devm_kzalloc is used, in which case the cleanup is automatic).

The data structure used internally by the driver core (dev->p) is
allocated transparently and is thus the core's responsibility to free.
I remember looking into this some time ago after someone reported a
possible memleak to me, and was not fully convinced that the core was
properly releasing dev->p in all cases. This may be the same problem
you are looking at right now.

I do not understand your claim that i2c_adapter class devices are not
registered with device_register. I2c bus drivers such as i2c-i801 call
i2c_add_adapter(), which calls i2c_register_adapter(), which calls
device_register().

Having looked at the code in deeper detail, I think I understand what
is going on. The problem is with:

	i2c_set_adapdata(&priv->adapter, priv);

at the beginning of i801_probe(). It triggers the allocation of dev->p
by the driver core. If we bail out at any point before i2c_add_adapter
(and subsequently device_register) is called, then that memory is never
freed.

Unfortunately it is not possible to move the i2c_set_adapdata() call
after i2c_add_adapter(), because the data pointer is needed by code
which runs as part of i2c_add_adapter().

We could move it right before the call to i2c_add_adapter(), to make
the problem window smaller, but this wouldn't solve the problem
completely, as i2c_add_adapter() itself can fail before
device_register() is called.

The only solution I can think of at this point is to stop using
i2c_set_adapdata() altogether, and use i2c_adapter.algo_data instead:

From: Jean Delvare <khali@linux-fr.org>
Subject: i2c-i801: Use i2c_adapter.algo_data

Use i2c_adapter.algo_data instead of i2c_set/get_adapdata(). The
latter makes use of the driver core's private data mechanism, which
allocates memory. That memory is never released if an error happens
between the call to i2c_set_adapdata() and the actual i2c_adapter
registration.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Peter Wu <lekensteyn@gmail.com>
---
 drivers/i2c/busses/i2c-i801.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -671,7 +671,7 @@ static s32 i801_access(struct i2c_adapte
 	int hwpec;
 	int block = 0;
 	int ret, xact = 0;
-	struct i801_priv *priv = i2c_get_adapdata(adap);
+	struct i801_priv *priv = adap->algo_data;
 
 	hwpec = (priv->features & FEATURE_SMBUS_PEC) && (flags & I2C_CLIENT_PEC)
 		&& size != I2C_SMBUS_QUICK
@@ -774,7 +774,7 @@ static s32 i801_access(struct i2c_adapte
 
 static u32 i801_func(struct i2c_adapter *adapter)
 {
-	struct i801_priv *priv = i2c_get_adapdata(adapter);
+	struct i801_priv *priv = adapter->algo_data;
 
 	return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
 	       I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
@@ -1117,7 +1117,7 @@ static int i801_probe(struct pci_dev *de
 	if (!priv)
 		return -ENOMEM;
 
-	i2c_set_adapdata(&priv->adapter, priv);
+	priv->adapter.algo_data = priv;
 	priv->adapter.owner = THIS_MODULE;
 	priv->adapter.class = i801_get_adapter_class(priv);
 	priv->adapter.algo = &smbus_algorithm;

I can't think of any drawback, other than the feeling that switching
from a generic implementation to a specific one is a move in the wrong
direction.

If the above is the proper fix then we may consider just changing the
implementation of i2c_set/get_adapdata to use adapter.algo_data instead
of calling dev_set/get_drvdata(). This would let us fix all the drivers
at once.

I'll bring the topic upstream for discussion.

-- 
Jean Delvare

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2014-01-08 13:28               ` Jean Delvare
@ 2014-11-25 21:14                 ` Uwe Kleine-König
  2014-11-28 13:48                   ` Jean Delvare
  0 siblings, 1 reply; 16+ messages in thread
From: Uwe Kleine-König @ 2014-11-25 21:14 UTC (permalink / raw)
  To: Jean Delvare
  Cc: Peter Wu, Alex Williamson, Martin Mokrejs, linux-i2c, linux-kernel

Hello Jean,

[not stripping the quotes as the thread is already old]

On Wed, Jan 08, 2014 at 02:28:49PM +0100, Jean Delvare wrote:
> On Tue, 24 Dec 2013 01:18:03 +0100, Peter Wu wrote:
> > On Monday 23 December 2013 10:37:21 Alex Williamson wrote:
> > > On Mon, 2013-12-23 at 16:49 +0100, Peter Wu wrote:
> > [..]
> > > > 
> > > > There is still one thing I do not fully understand, how should
> > > > dev_set_drvdata and dev_get_drvdata be used? For the devices passed
> > > > to probe functions, the core takes care of setting to NULL on error.
> > > > Then device_unregister frees the memory, right?
> > > > 
> > > > Now, what if the dev_set_drvdata (or aliases such as pci_set_drvdata,
> > > > i2c_set_adapinfo, etc.) are manually called outside probe functions?
> 
> FWIW I don't think this is supposed to happen.
> 
> > > > Or inside the probe function, but not for the device that is being
> > > > probed (such as is the case with the i801 i2c driver)?
> 
> This OTOH does happen. Is suspect any driver which instantiates class
> devices will do exactly that. It's nothing i2c specific. For example
> media drivers call video_set_drvdata() in their probe functions.
> 
> > (...)
> > Clear examples of how to use dev_{s,g}et_drvdata correctly in i2c is
> > still wanted. I stepped in it yesterday, i2c seems to have its own
> > way to register new devices.
> 
> What makes you think so? It's as standard as I can imagine.
> 
> > More specifically, how can the memory
> > associated with dev_set_drvdata be free'd on error paths if the
> > device is not registered with device_register (as is done in the
> > probe function of the i801 i2c driver)?
> 
> There are two pieces of data to consider here. The data structure which
> is pointed to by dev_get_drvdata (or i2c_get_adapdata) is allocated
> explicitly by the driver and must be freed explicitly by the driver
> (unless devm_kzalloc is used, in which case the cleanup is automatic).
> 
> The data structure used internally by the driver core (dev->p) is
> allocated transparently and is thus the core's responsibility to free.
> I remember looking into this some time ago after someone reported a
> possible memleak to me, and was not fully convinced that the core was
> properly releasing dev->p in all cases. This may be the same problem
> you are looking at right now.
> 
> I do not understand your claim that i2c_adapter class devices are not
> registered with device_register. I2c bus drivers such as i2c-i801 call
> i2c_add_adapter(), which calls i2c_register_adapter(), which calls
> device_register().
> 
> Having looked at the code in deeper detail, I think I understand what
> is going on. The problem is with:
> 
> 	i2c_set_adapdata(&priv->adapter, priv);
> 
> at the beginning of i801_probe(). It triggers the allocation of dev->p
> by the driver core. If we bail out at any point before i2c_add_adapter
> (and subsequently device_register) is called, then that memory is never
> freed.
> 
> Unfortunately it is not possible to move the i2c_set_adapdata() call
> after i2c_add_adapter(), because the data pointer is needed by code
> which runs as part of i2c_add_adapter().
> 
> We could move it right before the call to i2c_add_adapter(), to make
> the problem window smaller, but this wouldn't solve the problem
> completely, as i2c_add_adapter() itself can fail before
> device_register() is called.
> 
> The only solution I can think of at this point is to stop using
> i2c_set_adapdata() altogether, and use i2c_adapter.algo_data instead:
> 
> From: Jean Delvare <khali@linux-fr.org>
> Subject: i2c-i801: Use i2c_adapter.algo_data
> 
> Use i2c_adapter.algo_data instead of i2c_set/get_adapdata(). The
> latter makes use of the driver core's private data mechanism, which
> allocates memory. That memory is never released if an error happens
> between the call to i2c_set_adapdata() and the actual i2c_adapter
> registration.
Since commit 1bb6c08abfb6 (which makes the driver core use a pointer in
struct device again for dev_set_drvdata; went into v3.16-rc1) this patch
is obsolete, right?

(Still there might be the opportunity for a few patches converting all
driver to i2c_set_adapdata and then drop adapter.algo_data.)

Best regards
Uwe

> Signed-off-by: Jean Delvare <khali@linux-fr.org>
> Cc: Peter Wu <lekensteyn@gmail.com>
> ---
>  drivers/i2c/busses/i2c-i801.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> --- a/drivers/i2c/busses/i2c-i801.c
> +++ b/drivers/i2c/busses/i2c-i801.c
> @@ -671,7 +671,7 @@ static s32 i801_access(struct i2c_adapte
>  	int hwpec;
>  	int block = 0;
>  	int ret, xact = 0;
> -	struct i801_priv *priv = i2c_get_adapdata(adap);
> +	struct i801_priv *priv = adap->algo_data;
>  
>  	hwpec = (priv->features & FEATURE_SMBUS_PEC) && (flags & I2C_CLIENT_PEC)
>  		&& size != I2C_SMBUS_QUICK
> @@ -774,7 +774,7 @@ static s32 i801_access(struct i2c_adapte
>  
>  static u32 i801_func(struct i2c_adapter *adapter)
>  {
> -	struct i801_priv *priv = i2c_get_adapdata(adapter);
> +	struct i801_priv *priv = adapter->algo_data;
>  
>  	return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
>  	       I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
> @@ -1117,7 +1117,7 @@ static int i801_probe(struct pci_dev *de
>  	if (!priv)
>  		return -ENOMEM;
>  
> -	i2c_set_adapdata(&priv->adapter, priv);
> +	priv->adapter.algo_data = priv;
>  	priv->adapter.owner = THIS_MODULE;
>  	priv->adapter.class = i801_get_adapter_class(priv);
>  	priv->adapter.algo = &smbus_algorithm;
> 
> I can't think of any drawback, other than the feeling that switching
> from a generic implementation to a specific one is a move in the wrong
> direction.
> 
> If the above is the proper fix then we may consider just changing the
> implementation of i2c_set/get_adapdata to use adapter.algo_data instead
> of calling dev_set/get_drvdata(). This would let us fix all the drivers
> at once.
> 
> I'll bring the topic upstream for discussion.
> 
> -- 
> Jean Delvare

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2014-11-25 21:14                 ` Uwe Kleine-König
@ 2014-11-28 13:48                   ` Jean Delvare
  2014-11-28 14:04                     ` Uwe Kleine-König
  0 siblings, 1 reply; 16+ messages in thread
From: Jean Delvare @ 2014-11-28 13:48 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Peter Wu, Alex Williamson, Martin Mokrejs, linux-i2c, linux-kernel

Hi Uwe,

On Tue, 25 Nov 2014 22:14:32 +0100, Uwe Kleine-König wrote:
> On Wed, Jan 08, 2014 at 02:28:49PM +0100, Jean Delvare wrote:
> > Having looked at the code in deeper detail, I think I understand what
> > is going on. The problem is with:
> > 
> > 	i2c_set_adapdata(&priv->adapter, priv);
> > 
> > at the beginning of i801_probe(). It triggers the allocation of dev->p
> > by the driver core. If we bail out at any point before i2c_add_adapter
> > (and subsequently device_register) is called, then that memory is never
> > freed.
> > 
> > Unfortunately it is not possible to move the i2c_set_adapdata() call
> > after i2c_add_adapter(), because the data pointer is needed by code
> > which runs as part of i2c_add_adapter().
> > 
> > We could move it right before the call to i2c_add_adapter(), to make
> > the problem window smaller, but this wouldn't solve the problem
> > completely, as i2c_add_adapter() itself can fail before
> > device_register() is called.
> > 
> > The only solution I can think of at this point is to stop using
> > i2c_set_adapdata() altogether, and use i2c_adapter.algo_data instead:
> > 
> > From: Jean Delvare <khali@linux-fr.org>
> > Subject: i2c-i801: Use i2c_adapter.algo_data
> > 
> > Use i2c_adapter.algo_data instead of i2c_set/get_adapdata(). The
> > latter makes use of the driver core's private data mechanism, which
> > allocates memory. That memory is never released if an error happens
> > between the call to i2c_set_adapdata() and the actual i2c_adapter
> > registration.
>
> Since commit 1bb6c08abfb6 (which makes the driver core use a pointer in
> struct device again for dev_set_drvdata; went into v3.16-rc1) this patch
> is obsolete, right?

Correct. It was never applied upstream anyway, which is good as I never
liked it.

> (Still there might be the opportunity for a few patches converting all
> driver to i2c_set_adapdata and then drop adapter.algo_data.)

That's at least 35 bus drivers that would have to be converted then.
But you should first check if it is possible to get rid of
i2c_adapter.algo_data without breaking i2c-algo-bit and i2c-mux. If not
then converting the bus drivers would really only be a minor cleanup
with no real benefit (not saying it's not worth it though.)

> > Signed-off-by: Jean Delvare <khali@linux-fr.org>
> > Cc: Peter Wu <lekensteyn@gmail.com>
> > ---
> >  drivers/i2c/busses/i2c-i801.c |    6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > --- a/drivers/i2c/busses/i2c-i801.c
> > +++ b/drivers/i2c/busses/i2c-i801.c
> > @@ -671,7 +671,7 @@ static s32 i801_access(struct i2c_adapte
> >  	int hwpec;
> >  	int block = 0;
> >  	int ret, xact = 0;
> > -	struct i801_priv *priv = i2c_get_adapdata(adap);
> > +	struct i801_priv *priv = adap->algo_data;
> >  
> >  	hwpec = (priv->features & FEATURE_SMBUS_PEC) && (flags & I2C_CLIENT_PEC)
> >  		&& size != I2C_SMBUS_QUICK
> > @@ -774,7 +774,7 @@ static s32 i801_access(struct i2c_adapte
> >  
> >  static u32 i801_func(struct i2c_adapter *adapter)
> >  {
> > -	struct i801_priv *priv = i2c_get_adapdata(adapter);
> > +	struct i801_priv *priv = adapter->algo_data;
> >  
> >  	return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
> >  	       I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
> > @@ -1117,7 +1117,7 @@ static int i801_probe(struct pci_dev *de
> >  	if (!priv)
> >  		return -ENOMEM;
> >  
> > -	i2c_set_adapdata(&priv->adapter, priv);
> > +	priv->adapter.algo_data = priv;
> >  	priv->adapter.owner = THIS_MODULE;
> >  	priv->adapter.class = i801_get_adapter_class(priv);
> >  	priv->adapter.algo = &smbus_algorithm;
> > 
> > I can't think of any drawback, other than the feeling that switching
> > from a generic implementation to a specific one is a move in the wrong
> > direction.
> > 
> > If the above is the proper fix then we may consider just changing the
> > implementation of i2c_set/get_adapdata to use adapter.algo_data instead
> > of calling dev_set/get_drvdata(). This would let us fix all the drivers
> > at once.
> > 
> > I'll bring the topic upstream for discussion.

-- 
Jean Delvare
SUSE L3 Support

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: How should dev_[gs]et_drvdata be used?
  2014-11-28 13:48                   ` Jean Delvare
@ 2014-11-28 14:04                     ` Uwe Kleine-König
  0 siblings, 0 replies; 16+ messages in thread
From: Uwe Kleine-König @ 2014-11-28 14:04 UTC (permalink / raw)
  To: Jean Delvare
  Cc: Peter Wu, Alex Williamson, Martin Mokrejs, linux-i2c, linux-kernel

Hi Jean,

On Fri, Nov 28, 2014 at 02:48:13PM +0100, Jean Delvare wrote:
> On Tue, 25 Nov 2014 22:14:32 +0100, Uwe Kleine-König wrote:
> > On Wed, Jan 08, 2014 at 02:28:49PM +0100, Jean Delvare wrote:
> > > Having looked at the code in deeper detail, I think I understand what
> > > is going on. The problem is with:
> > > 
> > > 	i2c_set_adapdata(&priv->adapter, priv);
> > > 
> > > at the beginning of i801_probe(). It triggers the allocation of dev->p
> > > by the driver core. If we bail out at any point before i2c_add_adapter
> > > (and subsequently device_register) is called, then that memory is never
> > > freed.
> > > 
> > > Unfortunately it is not possible to move the i2c_set_adapdata() call
> > > after i2c_add_adapter(), because the data pointer is needed by code
> > > which runs as part of i2c_add_adapter().
> > > 
> > > We could move it right before the call to i2c_add_adapter(), to make
> > > the problem window smaller, but this wouldn't solve the problem
> > > completely, as i2c_add_adapter() itself can fail before
> > > device_register() is called.
> > > 
> > > The only solution I can think of at this point is to stop using
> > > i2c_set_adapdata() altogether, and use i2c_adapter.algo_data instead:
> > > 
> > > From: Jean Delvare <khali@linux-fr.org>
> > > Subject: i2c-i801: Use i2c_adapter.algo_data
> > > 
> > > Use i2c_adapter.algo_data instead of i2c_set/get_adapdata(). The
> > > latter makes use of the driver core's private data mechanism, which
> > > allocates memory. That memory is never released if an error happens
> > > between the call to i2c_set_adapdata() and the actual i2c_adapter
> > > registration.
> >
> > Since commit 1bb6c08abfb6 (which makes the driver core use a pointer in
> > struct device again for dev_set_drvdata; went into v3.16-rc1) this patch
> > is obsolete, right?
> 
> Correct. It was never applied upstream anyway, which is good as I never
> liked it.
I came back to it as it was still in the linux-i2c patchwork queue.
It is set to be superseeded now.

> > (Still there might be the opportunity for a few patches converting all
> > driver to i2c_set_adapdata and then drop adapter.algo_data.)
> 
> That's at least 35 bus drivers that would have to be converted then.
> But you should first check if it is possible to get rid of
> i2c_adapter.algo_data without breaking i2c-algo-bit and i2c-mux. If not
> then converting the bus drivers would really only be a minor cleanup
> with no real benefit (not saying it's not worth it though.)
Yeah. I'm not sure I will address this cleanup, but will keep your hint
on my radar.

Best regards and thanks for your reply,
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2014-11-28 14:04 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-23 11:15 linux-3.7.[1,4]: kmemleak in i801_probe Martin Mokrejs
2013-01-23 16:42 ` Jean Delvare
2013-01-23 17:35   ` Martin Mokrejs
2013-12-23  9:39   ` [PATCH] i2c: i801: fix memleak on probe error Peter Wu
2013-12-23 10:43     ` Peter Wu
2013-12-23 10:51       ` Martin Mokrejs
2013-12-23 15:49         ` How should dev_[gs]et_drvdata be used? (was: Re: [PATCH] i2c: i801: fix memleak on probe error) Peter Wu
2013-12-23 17:37           ` Alex Williamson
2013-12-24  0:18             ` How should dev_[gs]et_drvdata be used? Peter Wu
2013-12-24  1:51               ` Alex Williamson
2013-12-24  9:44                 ` Peter Wu
2014-01-08 13:28               ` Jean Delvare
2014-11-25 21:14                 ` Uwe Kleine-König
2014-11-28 13:48                   ` Jean Delvare
2014-11-28 14:04                     ` Uwe Kleine-König
2014-01-08  9:05       ` [PATCH] i2c: i801: fix memleak on probe error Jean Delvare

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).