15 Jul, 2013

1 commit

  • The __cpuinit type of throwaway sections might have made sense
    some time ago when RAM was more constrained, but now the savings
    do not offset the cost and complications. For example, the fix in
    commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time")
    is a good example of the nasty type of bugs that can be created
    with improper use of the various __init prefixes.

    After a discussion on LKML[1] it was decided that cpuinit should go
    the way of devinit and be phased out. Once all the users are gone,
    we can then finally remove the macros themselves from linux/init.h.

    Note that some harmless section mismatch warnings may result, since
    notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
    are flagged as __cpuinit -- so if we remove the __cpuinit from
    arch specific callers, we will also get section mismatch warnings.
    As an intermediate step, we intend to turn the linux/init.h cpuinit
    content into no-ops as early as possible, since that will get rid
    of these warnings. In any case, they are temporary and harmless.

    This removes all the arch/xtensa uses of the __cpuinit macros from
    all C files. Currently xtensa does not have any __CPUINIT used in
    assembly files.

    [1] https://lkml.org/lkml/2013/5/20/589

    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: linux-xtensa@linux-xtensa.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

14 Jul, 2013

1 commit

  • Pull networking fixes from David Miller:
    "Just a bunch of small fixes and tidy ups:

    1) Finish the "busy_poll" renames, from Eliezer Tamir.

    2) Fix RCU stalls in IFB driver, from Ding Tianhong.

    3) Linearize buffers properly in tun/macvtap zerocopy code.

    4) Don't crash on rmmod in vxlan, from Pravin B Shelar.

    5) Spinlock used before init in alx driver, from Maarten Lankhorst.

    6) A sparse warning fix in bnx2x broke TSO checksums, fix from Dmitry
    Kravkov.

    7) Dummy and ifb driver load failure paths can oops, fixes from Tan
    Xiaojun and Ding Tianhong.

    8) Correct MTU calculations in IP tunnels, from Alexander Duyck.

    9) Account all TCP retransmits in SNMP stats properly, from Yuchung
    Cheng.

    10) atl1e and via-rhine do not handle DMA mapping failures properly,
    from Neil Horman.

    11) Various equal-cost multipath route fixes in ipv6 from Hannes
    Frederic Sowa"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (36 commits)
    ipv6: only static routes qualify for equal cost multipathing
    via-rhine: fix dma mapping errors
    atl1e: fix dma mapping warnings
    tcp: account all retransmit failures
    usb/net/r815x: fix cast to restricted __le32
    usb/net/r8152: fix integer overflow in expression
    net: access page->private by using page_private
    net: strict_strtoul is obsolete, use kstrtoul instead
    drivers/net/ieee802154: don't use devm_pinctrl_get_select_default() in probe
    drivers/net/ethernet/cadence: don't use devm_pinctrl_get_select_default() in probe
    drivers/net/can/c_can: don't use devm_pinctrl_get_select_default() in probe
    net/usb: add relative mii functions for r815x
    net/tipc: use %*phC to dump small buffers in hex form
    qlcnic: Adding Maintainers.
    gre: Fix MTU sizing check for gretap tunnels
    pkt_sched: sch_qfq: remove forward declaration of qfq_update_agg_ts
    pkt_sched: sch_qfq: improve efficiency of make_eligible
    gso: Update tunnel segmentation to support Tx checksum offload
    inet: fix spacing in assignment
    ifb: fix oops when loading the ifb failed
    ...

    Linus Torvalds
     

12 Jul, 2013

1 commit

  • Pull Xtensa updates from Chris Zankel.

    * tag 'xtensa-next-20130710' of git://github.com/czankel/xtensa-linux: (22 commits)
    xtensa: remove the second argument of __bio_kmap_atomic()
    xtensa: add static function tracer support
    xtensa: Flat DeviceTree copy not future-safe
    xtensa: check TLB sanity on return to userspace
    xtensa: adjust boot parameters address when INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX is selected
    xtensa: bootparams: fix typo
    xtensa: tell git to ignore generated .dtb files
    xtensa: ccount based sched_clock
    xtensa: ccount based clockevent implementation
    xtensa: consolidate ccount access routines
    xtensa: cleanup ccount frequency tracking
    xtensa: timex.h: remove unused symbols
    xtensa: tell git to ignore copied zlib source files
    xtensa: fix section mismatch in pcibios_fixup_bus
    xtensa: ISS: fix section mismatch in iss_net_setup
    arch: xtensa: include: asm: compiling issue, need cmpxchg64() defined.
    xtensa: xtfpga: fix section mismatch
    xtensa: remove unused platform_init_irq()
    xtensa: tell git to ignore generated files
    xtensa: flush TLB entries for pages of non-current mm correctly
    ...

    Linus Torvalds
     

11 Jul, 2013

1 commit

  • Rename LL_SO to BUSY_POLL_SO
    Rename sysctl_net_ll_{read,poll} to sysctl_busy_{read,poll}
    Fix up users of these variables.
    Fix documentation for sysctl.

    a patch for the socket.7 man page will follow separately,
    because of limitations of my mail setup.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     

10 Jul, 2013

1 commit

  • Pull networking updates from David Miller:
    "This is a re-do of the net-next pull request for the current merge
    window. The only difference from the one I made the other day is that
    this has Eliezer's interface renames and the timeout handling changes
    made based upon your feedback, as well as a few bug fixes that have
    trickeled in.

    Highlights:

    1) Low latency device polling, eliminating the cost of interrupt
    handling and context switches. Allows direct polling of a network
    device from socket operations, such as recvmsg() and poll().

    Currently ixgbe, mlx4, and bnx2x support this feature.

    Full high level description, performance numbers, and design in
    commit 0a4db187a999 ("Merge branch 'll_poll'")

    From Eliezer Tamir.

    2) With the routing cache removed, ip_check_mc_rcu() gets exercised
    more than ever before in the case where we have lots of multicast
    addresses. Use a hash table instead of a simple linked list, from
    Eric Dumazet.

    3) Add driver for Atheros CQA98xx 802.11ac wireless devices, from
    Bartosz Markowski, Janusz Dziedzic, Kalle Valo, Marek Kwaczynski,
    Marek Puzyniak, Michal Kazior, and Sujith Manoharan.

    4) Support reporting the TUN device persist flag to userspace, from
    Pavel Emelyanov.

    5) Allow controlling network device VF link state using netlink, from
    Rony Efraim.

    6) Support GRE tunneling in openvswitch, from Pravin B Shelar.

    7) Adjust SOCK_MIN_RCVBUF and SOCK_MIN_SNDBUF for modern times, from
    Daniel Borkmann and Eric Dumazet.

    8) Allow controlling of TCP quickack behavior on a per-route basis,
    from Cong Wang.

    9) Several bug fixes and improvements to vxlan from Stephen
    Hemminger, Pravin B Shelar, and Mike Rapoport. In particular,
    support receiving on multiple UDP ports.

    10) Major cleanups, particular in the area of debugging and cookie
    lifetime handline, to the SCTP protocol code. From Daniel
    Borkmann.

    11) Allow packets to cross network namespaces when traversing tunnel
    devices. From Nicolas Dichtel.

    12) Allow monitoring netlink traffic via AF_PACKET sockets, in a
    manner akin to how we monitor real network traffic via ptype_all.
    From Daniel Borkmann.

    13) Several bug fixes and improvements for the new alx device driver,
    from Johannes Berg.

    14) Fix scalability issues in the netem packet scheduler's time queue,
    by using an rbtree. From Eric Dumazet.

    15) Several bug fixes in TCP loss recovery handling, from Yuchung
    Cheng.

    16) Add support for GSO segmentation of MPLS packets, from Simon
    Horman.

    17) Make network notifiers have a real data type for the opaque
    pointer that's passed into them. Use this to properly handle
    network device flag changes in arp_netdev_event(). From Jiri
    Pirko and Timo Teräs.

    18) Convert several drivers over to module_pci_driver(), from Peter
    Huewe.

    19) tcp_fixup_rcvbuf() can loop 500 times over loopback, just use a
    O(1) calculation instead. From Eric Dumazet.

    20) Support setting of explicit tunnel peer addresses in ipv6, just
    like ipv4. From Nicolas Dichtel.

    21) Protect x86 BPF JIT against spraying attacks, from Eric Dumazet.

    22) Prevent a single high rate flow from overruning an individual cpu
    during RX packet processing via selective flow shedding. From
    Willem de Bruijn.

    23) Don't use spinlocks in TCP md5 signing fast paths, from Eric
    Dumazet.

    24) Don't just drop GSO packets which are above the TBF scheduler's
    burst limit, chop them up so they are in-bounds instead. Also
    from Eric Dumazet.

    25) VLAN offloads are missed when configured on top of a bridge, fix
    from Vlad Yasevich.

    26) Support IPV6 in ping sockets. From Lorenzo Colitti.

    27) Receive flow steering targets should be updated at poll() time
    too, from David Majnemer.

    28) Fix several corner case regressions in PMTU/redirect handling due
    to the routing cache removal, from Timo Teräs.

    29) We have to be mindful of ipv4 mapped ipv6 sockets in
    upd_v6_push_pending_frames(). From Hannes Frederic Sowa.

    30) Fix L2TP sequence number handling bugs, from James Chapman."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1214 commits)
    drivers/net: caif: fix wrong rtnl_is_locked() usage
    drivers/net: enic: release rtnl_lock on error-path
    vhost-net: fix use-after-free in vhost_net_flush
    net: mv643xx_eth: do not use port number as platform device id
    net: sctp: confirm route during forward progress
    virtio_net: fix race in RX VQ processing
    virtio: support unlocked queue poll
    net/cadence/macb: fix bug/typo in extracting gem_irq_read_clear bit
    Documentation: Fix references to defunct linux-net@vger.kernel.org
    net/fs: change busy poll time accounting
    net: rename low latency sockets functions to busy poll
    bridge: fix some kernel warning in multicast timer
    sfc: Fix memory leak when discarding scattered packets
    sit: fix tunnel update via netlink
    dt:net:stmmac: Add dt specific phy reset callback support.
    dt:net:stmmac: Add support to dwmac version 3.610 and 3.710
    dt:net:stmmac: Allocate platform data only if its NULL.
    net:stmmac: fix memleak in the open method
    ipv6: rt6_check_neigh should successfully verify neigh if no NUD information are available
    net: ipv6: fix wrong ping_v6_sendmsg return value
    ...

    Linus Torvalds
     

08 Jul, 2013

13 commits


04 Jul, 2013

4 commits

  • Prepare for removing num_physpages and simplify mem_init().

    Signed-off-by: Jiang Liu
    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Concentrate code to modify totalram_pages into the mm core, so the arch
    memory initialized code doesn't need to take care of it. With these
    changes applied, only following functions from mm core modify global
    variable totalram_pages: free_bootmem_late(), free_all_bootmem(),
    free_all_bootmem_node(), adjust_managed_page_count().

    With this patch applied, it will be much more easier for us to keep
    totalram_pages and zone->managed_pages in consistence.

    Signed-off-by: Jiang Liu
    Acked-by: David Howells
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Address more review comments from last round of code review.
    1) Enhance free_reserved_area() to support poisoning freed memory with
    pattern '0'. This could be used to get rid of poison_init_mem()
    on ARM64.
    2) A previous patch has disabled memory poison for initmem on s390
    by mistake, so restore to the original behavior.
    3) Remove redundant PAGE_ALIGN() when calling free_reserved_area().

    Signed-off-by: Jiang Liu
    Cc: Geert Uytterhoeven
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     
  • Change signature of free_reserved_area() according to Russell King's
    suggestion to fix following build warnings:

    arch/arm/mm/init.c: In function 'mem_init':
    arch/arm/mm/init.c:603:2: warning: passing argument 1 of 'free_reserved_area' makes integer from pointer without a cast [enabled by default]
    free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);
    ^
    In file included from include/linux/mman.h:4:0,
    from arch/arm/mm/init.c:15:
    include/linux/mm.h:1301:22: note: expected 'long unsigned int' but argument is of type 'void *'
    extern unsigned long free_reserved_area(unsigned long start, unsigned long end,

    mm/page_alloc.c: In function 'free_reserved_area':
    >> mm/page_alloc.c:5134:3: warning: passing argument 1 of 'virt_to_phys' makes pointer from integer without a cast [enabled by default]
    In file included from arch/mips/include/asm/page.h:49:0,
    from include/linux/mmzone.h:20,
    from include/linux/gfp.h:4,
    from include/linux/mm.h:8,
    from mm/page_alloc.c:18:
    arch/mips/include/asm/io.h:119:29: note: expected 'const volatile void *' but argument is of type 'long unsigned int'
    mm/page_alloc.c: In function 'free_area_init_nodes':
    mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]

    Also address some minor code review comments.

    Signed-off-by: Jiang Liu
    Reported-by: Arnd Bergmann
    Cc: "H. Peter Anvin"
    Cc: "Michael S. Tsirkin"
    Cc:
    Cc: Catalin Marinas
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jeremy Fitzhardinge
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Konrad Rzeszutek Wilk
    Cc: Marek Szyprowski
    Cc: Mel Gorman
    Cc: Michel Lespinasse
    Cc: Minchan Kim
    Cc: Rik van Riel
    Cc: Rusty Russell
    Cc: Tang Chen
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Wen Congyang
    Cc: Will Deacon
    Cc: Yasuaki Ishimatsu
    Cc: Yinghai Lu
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     

29 Jun, 2013

1 commit


18 Jun, 2013

1 commit


06 Jun, 2013

7 commits


21 May, 2013

2 commits

  • Before _PAGE_WRITABLE_BIT test fast_store_prohibited must make sure that
    PTE is present. Otherwise 'writable' bit is undefined and may be reused
    in the 'file offset' or 'swap type' PTE fields.

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov
     
  • - set _PAGE_USER in the pte_clear to avoid having TLB multihit exceptions
    (see following threads for more details);
    http://lists.linux-xtensa.org/pipermail/linux-xtensa/Week-of-Mon-20130401/
    http://lists.linux-xtensa.org/pipermail/linux-xtensa/Week-of-Mon-20130408/
    - improved documentation of the PTE layout
    - fix PTE mapping for present and 'prot_none' pages for T1050 hw and earlier
    - fix pte_file offset and size
    - add check for the correct number of bits for swap type

    CC: piet.delaney@gmail.com
    CC: jcmvbkbc@gmail.com
    Signed-off-by: Chris Zankel

    Chris Zankel
     

10 May, 2013

4 commits

  • Pull xtensa updates from Chris Zankel:
    "Support for the latest MMU architecture that allows for a larger
    accessible memory region, and various bug-fixes"

    * tag 'xtensa-next-20130508' of git://github.com/czankel/xtensa-linux:
    xtensa: Switch to asm-generic/linkage.h
    xtensa: fix redboot load address
    xtensa: ISS: fix timer_lock usage in rs_open
    xtensa: disable IRQs while IRQ handler is running
    xtensa: enable lockdep support
    xtensa: fix arch_irqs_disabled_flags implementation
    xtensa: add irq flags trace support
    xtensa: provide custom CALLER_ADDR* implementations
    xtensa: add stacktrace support
    xtensa: clean up stpill_registers
    xtensa: don't use a7 in simcalls
    xtensa: don't attempt to use unconfigured timers
    xtensa: provide default platform_pcibios_init implementation
    xtensa: remove KCORE_ELF again
    xtensa: document MMUv3 setup sequence
    xtensa: add MMU v3 support
    xtensa: fix ibreakenable register update
    xtensa: fix oprofile building as module

    Linus Torvalds
     
  • Pull more vfs fixes from Al Viro:
    "Regression fix from Geert + yet another open-coded kernel_read()"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    ecryptfs: don't open-code kernel_read()
    xtensa simdisk: Fix proc_create_data() conversion fallout

    Linus Torvalds
     
  • arch/xtensa/platforms/iss/simdisk.c: In function 'proc_read_simdisk':
    arch/xtensa/platforms/iss/simdisk.c:220:12: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
    arch/xtensa/platforms/iss/simdisk.c: In function 'proc_write_simdisk':
    arch/xtensa/platforms/iss/simdisk.c:241:38: error: 'buffer' undeclared (first use in this function)
    arch/xtensa/platforms/iss/simdisk.c:241:38: note: each undeclared identifier is reported only once for each function it appears in

    Introduced by commit a69755b187749e7cc020e17127a54f395aea4eaa ("xtensa
    simdisk: switch to proc_create_data()")

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Al Viro

    Geert Uytterhoeven
     
  • Pull removal of GENERIC_GPIO from Grant Likely:
    "GENERIC_GPIO now synonymous with GPIOLIB. There are no longer any
    valid cases for enableing GENERIC_GPIO without GPIOLIB, even though it
    is possible to do so which has been causing confusion and breakage.
    This branch does the work to completely eliminate GENERIC_GPIO."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux:
    gpio: update gpio Chinese documentation
    Remove GENERIC_GPIO config option
    Convert selectors of GENERIC_GPIO to GPIOLIB
    blackfin: force use of gpiolib
    m68k: coldfire: use gpiolib
    mips: pnx833x: remove requirement for GENERIC_GPIO
    openrisc: default GENERIC_GPIO to false
    avr32: default GENERIC_GPIO to false
    xtensa: remove explicit selection of GENERIC_GPIO
    sh: replace CONFIG_GENERIC_GPIO by CONFIG_GPIOLIB
    powerpc: remove redundant GENERIC_GPIO selection
    unicore32: default GENERIC_GPIO to false
    unicore32: remove unneeded select GENERIC_GPIO
    arm: plat-orion: use GPIO driver on CONFIG_GPIOLIB
    arm: remove redundant GENERIC_GPIO selection
    mips: alchemy: require gpiolib
    mips: txx9: change GENERIC_GPIO to GPIOLIB
    mips: loongson: use GPIO driver on CONFIG_GPIOLIB
    mips: remove redundant GENERIC_GPIO select

    Linus Torvalds
     

09 May, 2013

3 commits

  • Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • With the patch to support MMUv3, the base address for the loaded
    binary image has changed, and a fix was applied to the U-Boot image.
    This fixes the RedBoot image.

    Signed-off-by: Chris Zankel

    Chris Zankel
     
  • This fixes the following lockdep splat:

    [ 66.460000] =================================
    [ 66.460000] [ INFO: inconsistent lock state ]
    [ 66.460000] 3.9.0-rc5-00161-ga48dd49 #4 Not tainted
    [ 66.460000] ---------------------------------
    [ 66.460000] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
    [ 66.460000] swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
    [ 66.460000] (timer_lock){+.?...}, at: [] rs_poll+0x12/0xdc
    [ 66.460000] {SOFTIRQ-ON-W} state was registered at:
    [ 66.460000] [] lock_acquire+0xec/0x13c
    [ 66.460000] [] _raw_spin_lock+0x3a/0x84
    [ 66.460000] [] rs_open+0x18/0x58
    [ 66.460000] [] tty_open+0x262/0x3cc
    [ 66.460000] [] chrdev_open+0x8c/0xe0
    [ 66.460000] [] do_dentry_open$isra$16+0x10e/0x190
    [ 66.460000] [] finish_open+0x39/0x48
    [ 66.460000] [] do_last$isra$34+0x6c4/0x824
    [ 66.460000] [] path_openat+0x66/0x310
    [ 66.460000] [] do_filp_open+0x16/0x44
    [ 66.460000] [] do_sys_open+0xd5/0x13c
    [ 66.460000] [] sys_open+0x12/0x18
    [ 66.460000] [] kernel_init_freeable+0xe4/0x12c
    [ 66.460000] [] kernel_init+0xc/0x9c
    [ 66.460000] [] ret_from_kernel_thread+0x8/0xc
    [ 66.460000] irq event stamp: 132542
    [ 66.460000] hardirqs last enabled at (132542): [] _raw_spin_unlock_irq+0x30/0x44
    [ 66.460000] hardirqs last disabled at (132541): [] _raw_spin_lock_irq+0xe/0x8c
    [ 66.460000] softirqs last enabled at (132234): [] __do_softirq+0x216/0x2a4
    [ 66.460000] softirqs last disabled at (132539): [] irq_exit+0x38/0x40
    [ 66.460000]
    [ 66.460000] other info that might help us debug this:
    [ 66.460000] Possible unsafe locking scenario:
    [ 66.460000]
    [ 66.460000] CPU0
    [ 66.460000] ----
    [ 66.460000] lock(timer_lock);
    [ 66.460000]
    [ 66.460000] lock(timer_lock);
    [ 66.460000]
    [ 66.460000] *** DEADLOCK ***
    [ 66.460000]
    [ 66.460000] 1 lock held by swapper/1:
    [ 66.460000] #0: (((&serial_timer))){+.-...}, at: [] call_timer_fn+0x0/0x1f0
    [ 66.460000]
    Stack: d7c2fac0 00000018 00000004 00000001 d7c2faa0 00000004 00000006 d7c2fa90
    9003e87c d7c2fae0 d7c30000 d025a87c 00000001 0000000f 00000000 d7c2fac0
    9004005d d7c2fb10 d7c30000 d7c30338 00000001 00000001 00000000 d7c30338
    [ 66.460000] Call Trace:
    [ 66.460000] [] print_usage_bug$part$26+0x1c3/0x1c8
    [ 66.460000] [] mark_lock+0x2b4/0x440
    [ 66.460000] [] __lock_acquire+0x54d/0x16c4
    [ 66.460000] [] lock_acquire+0xec/0x13c
    [ 66.460000] [] _raw_spin_lock+0x3a/0x84
    [ 66.460000] [] rs_poll+0x12/0xdc
    [ 66.460000] [] call_timer_fn+0xbe/0x1f0
    [ 66.460000] [] run_timer_softirq+0x198/0x1f4
    [ 66.460000] [] __do_softirq+0x114/0x2a4
    [ 66.460000] [] irq_exit+0x38/0x40
    [ 66.460000] [] do_IRQ+0x44/0x48
    [ 66.460000] [] do_interrupt+0x4c/0x54
    [ 66.460000] [] common_exception_return+0x0/0x5c
    [ 66.460000] [] free_pcppages_bulk+0x254/0x308
    [ 66.460000]

    Signed-off-by: Max Filippov
    Signed-off-by: Chris Zankel

    Max Filippov