07 May, 2013

23 commits

  • Pull slab changes from Pekka Enberg:
    "The bulk of the changes are more slab unification from Christoph.

    There's also few fixes from Aaron, Glauber, and Joonsoo thrown into
    the mix."

    * 'slab/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux: (24 commits)
    mm, slab_common: Fix bootstrap creation of kmalloc caches
    slab: Return NULL for oversized allocations
    mm: slab: Verify the nodeid passed to ____cache_alloc_node
    slub: tid must be retrieved from the percpu area of the current processor
    slub: Do not dereference NULL pointer in node_match
    slub: add 'likely' macro to inc_slabs_node()
    slub: correct to calculate num of acquired objects in get_partial_node()
    slub: correctly bootstrap boot caches
    mm/sl[au]b: correct allocation type check in kmalloc_slab()
    slab: Fixup CONFIG_PAGE_ALLOC/DEBUG_SLAB_LEAK sections
    slab: Handle ARCH_DMA_MINALIGN correctly
    slab: Common definition for kmem_cache_node
    slab: Rename list3/l3 to node
    slab: Common Kmalloc cache determination
    stat: Use size_t for sizes instead of unsigned
    slab: Common function to create the kmalloc array
    slab: Common definition for the array of kmalloc caches
    slab: Common constants for kmalloc boundaries
    slab: Rename nodelists to node
    slab: Common name for the per node structures
    ...

    Linus Torvalds
     
  • Pull misc kbuild updates from Michal Marek:
    "Non-critical kbuild changes:

    - make coccicheck improvements, but no new semantic patches this time

    - make rpm improvements

    - make tar-pkg change to include the architecture in the filename.

    This is a deliberate incompatibility, but nobody has complained so
    far and it is useful if you build for different architectures. It
    also matches what the deb-pkg and rpm-pkg targets produce.

    - kbuild documentation fix"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    rpm-pkg: Remove pointless set -e statements
    rpm-pkg: Always regenerate the specfile
    rpm-pkg: Do not write to the parent directory
    rpm-pkg: Do not package the whole source directory
    buildtar: Add ARCH to the archive name
    Coccinelle: Fix patch output when coccicheck is used with M= and C=
    Coccinelle: Add support to the SPFLAGS variable
    Coccinelle: Cleanup the setting of the FLAGS and OPTIONS variables
    Coccinelle: Restore coccicheck verbosity in ONLINE mode (C=1 or C=2)
    scripts/package/Makefile: compare objtree with srctree instead of test KBUILD_OUTPUT
    doc: change example to existing Makefile fragment
    scripts/tags.sh: Add magic for OFFSET and DEFINE

    Linus Torvalds
     
  • Pull kconfig updates from Michal Marek:
    - use pkg-config to detect curses libraries
    - clean up the way curses headers are searched
    - Some randconfig fixes, of which one had to be reverted
    - KCONFIG_SEED for randconfig debugging
    - memuconfig memory leak plugged
    - menuconfig > breadcrumbs > navigation
    - xconfig compilation fix
    - Other minor fixes

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig: fix lists definition for C++
    Revert "kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG"
    kconfig: implement KCONFIG_PROBABILITY for randconfig
    kconfig: allow specifying the seed for randconfig
    kconfig: fix randomising choice entries in presence of KCONFIG_ALLCONFIG
    kconfig: do not override symbols already set
    kconfig: fix randconfig tristate detection
    kconfig/lxdialog: rationalise the include paths where to find {.n}curses{,w}.h
    menuconfig: Add "breadcrumbs" navigation aid
    menuconfig: Fix memory leak introduced by jump keys feature
    merge_config.sh: Avoid creating unnessary source softlinks
    kconfig: optionally use pkg-config to detect ncurses libs
    menuconfig: optionally use pkg-config to detect ncurses libs

    Linus Torvalds
     
  • Pull kbuild changes from Michal Marek:
    "Kbuild commits for v3.10-rc1:

    - Fix make mrproper after mod/file2alias rework
    - Fix ld-option Makefile function
    - Rewrite headers_install to shell to drop Perl dependency.

    There are some more patches I have to look at, so I might send another
    pull request later. Or just queue them for 3.11."

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    Fix cleaning in scripts/mod
    headers_install.pl: convert to headers_install.sh
    kbuild: fix ld-option function

    Linus Torvalds
     
  • Searching for PPC_EFIKA results in a segmentation fault, and it's
    because get_symbol_prop() returns NULL.

    In this case CONFIG_PPC_EFIKA is defined in arch/powerpc/platforms/
    52xx/Kconfig, so it won't be parsed if ARCH!=PPC, but menuconfig knows
    this symbol when it parses sound/soc/fsl/Kconfig:

    config SND_MPC52xx_SOC_EFIKA
    tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
    depends on PPC_EFIKA

    This bug was introduced by commit bcdedcc1afd6 ("menuconfig: print more
    info for symbol without prompts").

    Reported-and-tested-by: Borislav Petkov
    Signed-off-by: Li Zefan
    Tested-by: Libo Chen
    Reviewed-by: "Yann E. MORIN"
    Signed-off-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Li Zefan
     
  • A scheduling while atomic bug was introduced recently (by commit
    ce43a2168c59: "e1000e: cleanup USLEEP_RANGE checkpatch checks").

    Revert the particular instance of usleep_range() which causes the bug.

    Reported-by: Maarten Lankhorst
    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Acked-by: David S. Miller
    Signed-off-by: Linus Torvalds

    Bruce Allan
     
  • Pekka Enberg
     
  • Pull networking fixes from David Miller:
    "Just a small pile of fixes"

    1) Fix race conditions in IP fragmentation LRU list handling, from
    Konstantin Khlebnikov.

    2) vfree() is no longer verboten in interrupts, so deferring is
    pointless, from Al Viro.

    3) Conversion from mutex to semaphore in netpoll left trylock test
    inverted, caught by Dan Carpenter.

    4) 3c59x uses wrong base address when releasing regions, from Sergei
    Shtylyov.

    5) Bounds checking in TIPC from Dan Carpenter.

    6) Fastopen cookies should not be expired as aggressively as other TCP
    metrics. From Eric Dumazet.

    7) Fix retrieval of MAC address in ibmveth, from Ben Herrenschmidt.

    8) Don't use "u16" in virtio user headers, from Stephen Hemminger

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    tipc: potential divide by zero in tipc_link_recv_fragment()
    tipc: add a bounds check in link_recv_changeover_msg()
    net/usb: new driver for RTL8152
    3c59x: fix freeing nonexistent resource on driver unload
    netpoll: inverted down_trylock() test
    rps_dev_flow_table_release(): no need to delay vfree()
    fib_trie: no need to delay vfree()
    net: frag, fix race conditions in LRU list maintenance
    tcp: do not expire TCP fastopen cookies
    net/eth/ibmveth: Fixup retrieval of MAC address
    virtio: don't expose u16 in userspace api

    Linus Torvalds
     
  • Pull LED subsystem updates from Bryan Wu:
    - move LED trigger drivers into a new directory
    - lp55xx common driver updates
    - other led drivers updates and bug fixing

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
    leds: leds-asic3: switch to using SIMPLE_DEV_PM_OPS
    leds: leds-bd2802: add CONFIG_PM_SLEEP to suspend/resume functions
    leds: lp55xx: configure the clock detection
    leds: lp55xx: use common clock framework when external clock is used
    leds: leds-ns2: fix oops at module removal
    leds: leds-pwm: Defer led_pwm_set() if PWM can sleep
    leds: lp55xx: fix the sysfs read operation
    leds: lm355x, lm3642: support camera LED triggers for flash and torch
    leds: add camera LED triggers
    leds: trigger: use inline functions instead of macros
    leds: tca6507: Use of_match_ptr() macro
    leds: wm8350: Complain if we fail to reenable DCDC
    leds: renesas: set gpio_request_one() flags param correctly
    leds: leds-ns2: set devm_gpio_request_one() flags param correctly
    leds: leds-lt3593: set devm_gpio_request_one() flags param correctly
    leds: leds-bd2802: remove erroneous __exit annotation
    leds: atmel-pwm: remove erroneous __exit annotation
    leds: move LED trigger drivers into new subdirectory
    leds: add new LP5562 LED driver

    Linus Torvalds
     
  • Pull GPIO changes from Grant Likely:
    "The usual selection of bug fixes and driver updates for GPIO. Nothing
    really stands out except the addition of the GRGPIO driver and some
    enhacements to ACPI support"

    I'm pulling this despite the earlier mess. Let's hope it compiles these
    days.

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux: (46 commits)
    gpio: grgpio: Add irq support
    gpio: grgpio: Add device driver for GRGPIO cores
    gpiolib-acpi: introduce acpi_get_gpio_by_index() helper
    GPIO: gpio-generic: remove kfree() from bgpio_remove call
    gpio / ACPI: Handle ACPI events in accordance with the spec
    gpio: lpc32xx: Fix off-by-one valid range checking for bank
    gpio: mcp23s08: convert driver to DT
    gpio/omap: force restore if context loss is not detectable
    gpio/omap: optimise interrupt service routine
    gpio/omap: remove extra context restores in *_runtime_resume()
    gpio/omap: free irq domain in probe() failure paths
    gpio: gpio-generic: Add 16 and 32 bit big endian byte order support
    gpio: samsung: Add terminating entry for exynos_pinctrl_ids
    gpio: mvebu: add dbg_show function
    MAX7301 GPIO: Do not force SPI speed when using OF Platform
    gpio: gpio-tps65910.c: fix checkpatch error
    gpio: gpio-timberdale.c: fix checkpatch error
    gpio: gpio-tc3589x.c: fix checkpatch errors
    gpio: gpio-stp-xway.c: fix checkpatch error
    gpio: gpio-sch.c: fix checkpatch error
    ...

    Linus Torvalds
     
  • Pull pwm changes from Thierry Reding:
    "Nothing very exciting this time around. A couple of bug fixes and a
    lot of cleanup across the board. The DaVinci 8xx family of SoCs now
    use the same driver as the AM33xx family.

    Many thanks to Axel Lin and Jingoo Han who have done a great job
    fixing various bugs and inconsistencies."

    * tag 'for-3.10-rc1' of git://gitorious.org/linux-pwm/linux-pwm: (27 commits)
    pwm: lpc32xx: Don't change PWM_ENABLE bit in lpc32xx_pwm_config
    pwm: lpc32xx: Properly set PWM_ENABLE bit in lpc32xx_pwm_[enable|disable]
    pwm: Constify OF match tables
    pwm: pwm-tiehrpwm: Update device-tree binding document
    pwm: pwm-tiecap: Update device-tree binding document
    pwm: puv3: Remove unused enabled filed from struct puv3_pwm_chip
    pwm: pxa: Remove PWM_ID_BASE macro
    pwm: spear: Remove unused *dev from struct spear_pwm_chip
    pwm: mxs: Remove unused *dev from struct mxs_pwm_chip
    pwm: twl: Return proper error if twl6030_pwm_enable() fails
    pwm: pxa: Remove clk_enabled field from struct pxa_pwm_chip
    pwm: imx: Remove enabled field from struct imx_chip
    pwm: twl: Add .owner to struct pwm_ops
    pwm: twl-led: Add .owner to struct pwm_ops
    pwm: atmel-tcb: Add .owner to struct pwm_ops
    pwm: ab8500: Add .owner to struct pwm_ops
    pwm: spear: Fix checking return value of clk_enable() and clk_prepare()
    pwm: tiehrpwm: Staticize non-exported symbols
    pwm: tiecap: Staticize non-exported symbols
    pwm: ab8500: Fix trivial typo in dev_err message
    ...

    Linus Torvalds
     
  • Pull IOMMU updates from Joerg Roedel:
    "The updates are mostly about the x86 IOMMUs this time.

    Exceptions are the groundwork for the PAMU IOMMU from Freescale (for a
    PPC platform) and an extension to the IOMMU group interface.

    On the x86 side this includes a workaround for VT-d to disable
    interrupt remapping on broken chipsets. On the AMD-Vi side the most
    important new feature is a kernel command-line interface to override
    broken information in IVRS ACPI tables and get interrupt remapping
    working this way.

    Besides that there are small fixes all over the place."

    * tag 'iommu-updates-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (24 commits)
    iommu/tegra: Fix printk formats for dma_addr_t
    iommu: Add a function to find an iommu group by id
    iommu/vt-d: Remove warning for HPET scope type
    iommu: Move swap_pci_ref function to drivers/iommu/pci.h.
    iommu/vt-d: Disable translation if already enabled
    iommu/amd: fix error return code in early_amd_iommu_init()
    iommu/AMD: Per-thread IOMMU Interrupt Handling
    iommu: Include linux/err.h
    iommu/amd: Workaround for ERBT1312
    iommu/amd: Document ivrs_ioapic and ivrs_hpet parameters
    iommu/amd: Don't report firmware bugs with cmd-line ivrs overrides
    iommu/amd: Add ioapic and hpet ivrs override
    iommu/amd: Add early maps for ioapic and hpet
    iommu/amd: Extend IVRS special device data structure
    iommu/amd: Move add_special_device() to __init
    iommu: Fix compile warnings with forward declarations
    iommu/amd: Properly initialize irq-table lock
    iommu/amd: Use AMD specific data structure for irq remapping
    iommu/amd: Remove map_sg_no_iommu()
    iommu/vt-d: add quirk for broken interrupt remapping on 55XX chipsets
    ...

    Linus Torvalds
     
  • Make sure devicetable-offsets.h is cleaned in the scripts/mod directory

    Signed-off-by: Andreas Schwab
    Tested-by: Geert Uytterhoeven
    Signed-off-by: Michal Marek

    Andreas Schwab
     
  • For SLAB the kmalloc caches must be created in ascending sizes in order
    for the OFF_SLAB sub-slab cache to work properly.

    Create the non power of two caches immediately after the prior power of
    two kmalloc cache. Do not create the non power of two caches before all
    other caches.

    Reported-and-tested-by: Tetsuo Handa
    Signed-off-by: Christoph Lamete
    Link: http://lkml.kernel.org/r/201305040348.CIF81716.OStQOHFJMFLOVF@I-love.SAKURA.ne.jp
    Signed-off-by: Pekka Enberg

    Christoph Lameter
     
  • The worry here is that fragm_sz could be zero since it comes from
    skb->data.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • The bearer_id here comes from skb->data and it can be a number from 0 to
    7. The problem is that the ->links[] array has only 2 elements so I
    have added a range check.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • Add new driver for supporting Realtek RTL8152 Based USB 2.0 Ethernet Adapters

    Signed-off-by: Hayes Wang
    Cc: Realtek linux nic maintainers
    Signed-off-by: David S. Miller

    hayeswang
     
  • Pull Ceph changes from Alex Elder:
    "This is a big pull.

    Most of it is culmination of Alex's work to implement RBD image
    layering, which is now complete (yay!).

    There is also some work from Yan to fix i_mutex behavior surrounding
    writes in cephfs, a sync write fix, a fix for RBD images that get
    resized while they are mapped, and a few patches from me that resolve
    annoying auth warnings and fix several bugs in the ceph auth code."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (254 commits)
    rbd: fix image request leak on parent read
    libceph: use slab cache for osd client requests
    libceph: allocate ceph message data with a slab allocator
    libceph: allocate ceph messages with a slab allocator
    rbd: allocate image object names with a slab allocator
    rbd: allocate object requests with a slab allocator
    rbd: allocate name separate from obj_request
    rbd: allocate image requests with a slab allocator
    rbd: use binary search for snapshot lookup
    rbd: clear EXISTS flag if mapped snapshot disappears
    rbd: kill off the snapshot list
    rbd: define rbd_snap_size() and rbd_snap_features()
    rbd: use snap_id not index to look up snap info
    rbd: look up snapshot name in names buffer
    rbd: drop obj_request->version
    rbd: drop rbd_obj_method_sync() version parameter
    rbd: more version parameter removal
    rbd: get rid of some version parameters
    rbd: stop tracking header object version
    rbd: snap names are pointer to constant data
    ...

    Linus Torvalds
     
  • Pull CIFS fixes from Steve French:
    "A set of cifs cleanup fixes.

    The only big one of this set optimizes the cifs error logging,
    renaming cFYI and cERROR macros to cifs_dbg, and in the process makes
    it clearer and reduces module size."

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: small variable name cleanup
    CIFS: fix error return code in cifs_atomic_open()
    cifs: store the real expected sequence number in the mid
    cifs: on send failure, readjust server sequence number downward
    cifs: remove ENOSPC handling in smb_sendv
    [CIFS] cifs: Rename cERROR and cFYI to cifs_dbg
    fs: cifs: use kmemdup instead of kmalloc + memcpy
    cifs: replaced kmalloc + memset with kzalloc
    cifs: ignore the unc= and prefixpath= mount options

    Linus Torvalds
     
  • When checking if an autofs mount point is busy it isn't sufficient to
    only check if it's a mount point.

    For example, if the mount of an offset mountpoint in a tree is denied
    for this host by its export and the dentry becomes a process working
    directory the check incorrectly returns the mount as not in use at
    expire.

    This can happen since the default when mounting within a tree is
    nostrict, which means ingnore mount fails on mounts within the tree and
    continue. The nostrict option is meant to allow mounting in this case.

    Signed-off-by: David Jeffery
    Signed-off-by: Ian Kent
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    David Jeffery
     
  • Fixed the sparse warning:

    fs/autofs4/root.c:411:5: warning: symbol 'autofs4_d_manage' was not declared. Should it be static?"

    [ Clearly it should be static as the function is declared static at the
    top of root.c. - imk ]

    Signed-off-by: Claudiu Ghioc
    Signed-off-by: Ian Kent
    Signed-off-by: Linus Torvalds

    Claudiu Ghioc
     
  • Pull more s390 updates from Martin Schwidefsky:
    "This is the second batch of s390 patches for the 3.10 merge window.

    Heiko improved the memory detection, this fixes kdump for large memory
    sizes. Some kvm related memory management work, new ipldev/condev
    keywords in cio and bug fixes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/mem_detect: remove artificial kdump memory types
    s390/mm: add pte invalidation notifier for kvm
    s390/zcrypt: ap bus rescan problem when toggle crypto adapters on/off
    s390/memory hotplug,sclp: get rid of per memory increment usecount
    s390/memory hotplug: provide memory_block_size_bytes() function
    s390/mem_detect: limit memory detection loop to "mem=" parameter
    s390/kdump,bootmem: fix bootmem allocator bitmap size
    s390: get rid of odd global real_memory_size
    s390/kvm: Change the virtual memory mapping location for Virtio devices
    s390/zcore: calculate real memory size using own get_mem_size function
    s390/mem_detect: add DAT sanity check
    s390/mem_detect: fix lockdep irq tracing
    s390/mem_detect: move memory detection code to mm folder
    s390/zfcpdump: exploit new cio_ignore keywords
    s390/cio: add condev keyword to cio_ignore
    s390/cio: add ipldev keyword to cio_ignore
    s390/uaccess: add "fallthrough" comments

    Linus Torvalds
     
  • When unloading the driver that drives an EISA board, a message similar to the
    following one is displayed:

    Trying to free nonexistent resource

    Then an user is unable to reload the driver because the resource it requested in
    the previous load hasn't been freed. This happens most probably due to a typo in
    vortex_eisa_remove() which calls release_region() with 'dev->base_addr' instead
    of 'edev->base_addr'...

    Reported-by: Matthew Whitehead
    Tested-by: Matthew Whitehead
    Signed-off-by: Sergei Shtylyov
    Signed-off-by: David S. Miller

    Sergei Shtylyov
     

06 May, 2013

16 commits

  • The return value is reversed from mutex_trylock().

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • The same story as with fib_trie patch - vfree() from RCU callbacks
    is legitimate now.

    Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • Now that vfree() can be called from interrupt contexts, there's no
    need to play games with schedule_work() to escape calling vfree()
    from RCU callbacks.

    Signed-off-by: Al Viro
    Signed-off-by: David S. Miller

    Al Viro
     
  • This patch fixes race between inet_frag_lru_move() and inet_frag_lru_add()
    which was introduced in commit 3ef0eb0db4bf92c6d2510fe5c4dc51852746f206
    ("net: frag, move LRU list maintenance outside of rwlock")

    One cpu already added new fragment queue into hash but not into LRU.
    Other cpu found it in hash and tries to move it to the end of LRU.
    This leads to NULL pointer dereference inside of list_move_tail().

    Another possible race condition is between inet_frag_lru_move() and
    inet_frag_lru_del(): move can happens after deletion.

    This patch initializes LRU list head before adding fragment into hash and
    inet_frag_lru_move() doesn't touches it if it's empty.

    I saw this kernel oops two times in a couple of days.

    [119482.128853] BUG: unable to handle kernel NULL pointer dereference at (null)
    [119482.132693] IP: [] __list_del_entry+0x29/0xd0
    [119482.136456] PGD 2148f6067 PUD 215ab9067 PMD 0
    [119482.140221] Oops: 0000 [#1] SMP
    [119482.144008] Modules linked in: vfat msdos fat 8021q fuse nfsd auth_rpcgss nfs_acl nfs lockd sunrpc ppp_async ppp_generic bridge slhc stp llc w83627ehf hwmon_vid snd_hda_codec_hdmi snd_hda_codec_realtek kvm_amd k10temp kvm snd_hda_intel snd_hda_codec edac_core radeon snd_hwdep ath9k snd_pcm ath9k_common snd_page_alloc ath9k_hw snd_timer snd soundcore drm_kms_helper ath ttm r8169 mii
    [119482.152692] CPU 3
    [119482.152721] Pid: 20, comm: ksoftirqd/3 Not tainted 3.9.0-zurg-00001-g9f95269 #132 To Be Filled By O.E.M. To Be Filled By O.E.M./RS880D
    [119482.161478] RIP: 0010:[] [] __list_del_entry+0x29/0xd0
    [119482.166004] RSP: 0018:ffff880216d5db58 EFLAGS: 00010207
    [119482.170568] RAX: 0000000000000000 RBX: ffff88020882b9c0 RCX: dead000000200200
    [119482.175189] RDX: 0000000000000000 RSI: 0000000000000880 RDI: ffff88020882ba00
    [119482.179860] RBP: ffff880216d5db58 R08: ffffffff8155c7f0 R09: 0000000000000014
    [119482.184570] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88020882ba00
    [119482.189337] R13: ffffffff81c8d780 R14: ffff880204357f00 R15: 00000000000005a0
    [119482.194140] FS: 00007f58124dc700(0000) GS:ffff88021fcc0000(0000) knlGS:0000000000000000
    [119482.198928] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [119482.203711] CR2: 0000000000000000 CR3: 00000002155f0000 CR4: 00000000000007e0
    [119482.208533] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [119482.213371] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [119482.218221] Process ksoftirqd/3 (pid: 20, threadinfo ffff880216d5c000, task ffff880216d3a9a0)
    [119482.223113] Stack:
    [119482.228004] ffff880216d5dbd8 ffffffff8155dcda 0000000000000000 ffff000200000001
    [119482.233038] ffff8802153c1f00 ffff880000289440 ffff880200000014 ffff88007bc72000
    [119482.238083] 00000000000079d5 ffff88007bc72f44 ffffffff00000002 ffff880204357f00
    [119482.243090] Call Trace:
    [119482.248009] [] ip_defrag+0x8fa/0xd10
    [119482.252921] [] ipv4_conntrack_defrag+0x83/0xe0
    [119482.257803] [] nf_iterate+0x8b/0xa0
    [119482.262658] [] ? inet_del_offload+0x40/0x40
    [119482.267527] [] nf_hook_slow+0x74/0x130
    [119482.272412] [] ? inet_del_offload+0x40/0x40
    [119482.277302] [] ip_rcv+0x268/0x320
    [119482.282147] [] __netif_receive_skb_core+0x612/0x7e0
    [119482.286998] [] __netif_receive_skb+0x18/0x60
    [119482.291826] [] process_backlog+0xa0/0x160
    [119482.296648] [] net_rx_action+0x139/0x220
    [119482.301403] [] __do_softirq+0xe7/0x220
    [119482.306103] [] run_ksoftirqd+0x28/0x40
    [119482.310809] [] smpboot_thread_fn+0xff/0x1a0
    [119482.315515] [] ? lg_local_lock_cpu+0x40/0x40
    [119482.320219] [] kthread+0xc0/0xd0
    [119482.324858] [] ? insert_kthread_work+0x40/0x40
    [119482.329460] [] ret_from_fork+0x7c/0xb0
    [119482.334057] [] ? insert_kthread_work+0x40/0x40
    [119482.338661] Code: 00 00 55 48 8b 17 48 b9 00 01 10 00 00 00 ad de 48 8b 47 08 48 89 e5 48 39 ca 74 29 48 b9 00 02 20 00 00 00 ad de 48 39 c8 74 7a 8b 00 4c 39 c7 75 53 4c 8b 42 08 4c 39 c7 75 2b 48 89 42 08
    [119482.343787] RIP [] __list_del_entry+0x29/0xd0
    [119482.348675] RSP
    [119482.353493] CR2: 0000000000000000

    Oops happened on this path:
    ip_defrag() -> ip_frag_queue() -> inet_frag_lru_move() -> list_move_tail() -> __list_del_entry()

    Signed-off-by: Konstantin Khlebnikov
    Cc: Jesper Dangaard Brouer
    Cc: Florian Westphal
    Cc: Eric Dumazet
    Cc: David S. Miller
    Acked-by: Florian Westphal
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Konstantin Khlebnikov
     
  • The inline path seems to have changed the SLAB behavior for very large
    kmalloc allocations with commit e3366016 ("slab: Use common
    kmalloc_index/kmalloc_size functions"). This patch restores the old
    behavior but also adds diagnostics so that we can figure where in the
    code these large allocations occur.

    Reported-and-tested-by: Tetsuo Handa
    Signed-off-by: Christoph Lameter
    Link: http://lkml.kernel.org/r/201305040348.CIF81716.OStQOHFJMFLOVF@I-love.SAKURA.ne.jp
    [ penberg@kernel.org: use WARN_ON_ONCE ]
    Signed-off-by: Pekka Enberg

    Christoph Lameter
     
  • Pull MFD update from Samuel Ortiz:
    "For 3.10 we have a few new MFD drivers for:

    - The ChromeOS embedded controller which provides keyboard, battery
    and power management services. This controller is accessible
    through i2c or SPI.

    - Silicon Laboratories 476x controller, providing access to their FM
    chipset and their audio codec.

    - Realtek's RTS5249, a memory stick, MMC and SD/SDIO PCI based
    reader.

    - Nokia's Tahvo power button and watchdog device. This device is
    very similar to Retu and is thus supported by the same code base.

    - STMicroelectronics STMPE1801, a keyboard and GPIO controller
    supported by the stmpe driver.

    - ST-Ericsson AB8540 and AB8505 power management and voltage
    converter controllers through the existing ab8500 code.

    Some other drivers got cleaned up or improved. In particular:

    - The Linaro/STE guys got the ab8500 driver in sync with their
    internal code through a series of optimizations, fixes and
    improvements.

    - The AS3711 and OMAP USB drivers now have DT support.

    - The arizona clock and interrupt handling code got improved.

    - The wm5102 register patch and boot mechanism also got improved."

    * tag 'mfd-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next: (104 commits)
    mfd: si476x: Don't use 0bNNN
    mfd: vexpress: Handle pending config transactions
    mfd: ab8500: Export ab8500_gpadc_sw_hw_convert properly
    mfd: si476x: Fix i2c warning
    mfd: si476x: Add header files and Kbuild plumbing
    mfd: si476x: Add chip properties handling code
    mfd: si476x: Add the bulk of the core driver
    mfd: si476x: Add commands abstraction layer
    mfd: rtsx: Support RTS5249
    mfd: retu: Add Tahvo support
    mfd: ucb1400: Pass ucb1400-gpio data through ac97 bus
    mfd: wm8994: Add some OF properties
    mfd: wm8994: Add device ID data to WM8994 OF device IDs
    input: Export matrix_keypad_parse_of_params()
    mfd: tps65090: Add compatible string for charger subnode
    mfd: db8500-prcmu: Support platform dependant device selection
    mfd: syscon: Fix warnings when printing resource_size_t
    of: Add stub of_get_parent for non-OF builds
    mfd: omap-usb-tll: Convert to devm_ioremap_resource()
    mfd: omap-usb-host: Convert to devm_ioremap_resource()
    ...

    Linus Torvalds
     
  • Pull kvm updates from Gleb Natapov:
    "Highlights of the updates are:

    general:
    - new emulated device API
    - legacy device assignment is now optional
    - irqfd interface is more generic and can be shared between arches

    x86:
    - VMCS shadow support and other nested VMX improvements
    - APIC virtualization and Posted Interrupt hardware support
    - Optimize mmio spte zapping

    ppc:
    - BookE: in-kernel MPIC emulation with irqfd support
    - Book3S: in-kernel XICS emulation (incomplete)
    - Book3S: HV: migration fixes
    - BookE: more debug support preparation
    - BookE: e6500 support

    ARM:
    - reworking of Hyp idmaps

    s390:
    - ioeventfd for virtio-ccw

    And many other bug fixes, cleanups and improvements"

    * tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (204 commits)
    kvm: Add compat_ioctl for device control API
    KVM: x86: Account for failing enable_irq_window for NMI window request
    KVM: PPC: Book3S: Add API for in-kernel XICS emulation
    kvm/ppc/mpic: fix missing unlock in set_base_addr()
    kvm/ppc: Hold srcu lock when calling kvm_io_bus_read/write
    kvm/ppc/mpic: remove users
    kvm/ppc/mpic: fix mmio region lists when multiple guests used
    kvm/ppc/mpic: remove default routes from documentation
    kvm: KVM_CAP_IOMMU only available with device assignment
    ARM: KVM: iterate over all CPUs for CPU compatibility check
    KVM: ARM: Fix spelling in error message
    ARM: KVM: define KVM_ARM_MAX_VCPUS unconditionally
    KVM: ARM: Fix API documentation for ONE_REG encoding
    ARM: KVM: promote vfp_host pointer to generic host cpu context
    ARM: KVM: add architecture specific hook for capabilities
    ARM: KVM: perform HYP initilization for hotplugged CPUs
    ARM: KVM: switch to a dual-step HYP init code
    ARM: KVM: rework HYP page table freeing
    ARM: KVM: enforce maximum size for identity mapped code
    ARM: KVM: move to a KVM provided HYP idmap
    ...

    Linus Torvalds
     
  • Give the OID registry file module information so that it doesn't taint the
    kernel when compiled as a module and loaded.

    Reported-by: Dros Adamson
    Signed-off-by: David Howells
    cc: Trond Myklebust
    cc: stable@vger.kernel.org
    cc: linux-nfs@vger.kernel.org
    Signed-off-by: Linus Torvalds

    David Howells
     
  • TCP metric cache expires entries after one hour.

    This probably make sense for TCP RTT/RTTVAR/CWND, but not
    for TCP fastopen cookies.

    Its better to try previous cookie. If it appears to be obsolete,
    server will send us new cookie anyway.

    Signed-off-by: Eric Dumazet
    Cc: Yuchung Cheng
    Cc: Neal Cardwell
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Some ancient pHyp versions used to create a 8 bytes local-mac-address
    property in the device-tree instead of a 6 bytes one for veth.

    The Linux driver code to deal with that is an insane hack which also
    happens to break with some choices of MAC addresses in qemu by testing
    for a bit in the address rather than just looking at the size of the
    property.

    Sanitize this by doing the latter instead.

    Signed-off-by: Benjamin Herrenschmidt
    CC:
    Signed-off-by: David S. Miller

    Benjamin Herrenschmidt
     
  • Programs using virtio headers outside of kernel will no longer
    build because u16 type does not exist in userspace. All user ABI
    must use __u16 typedef instead.

    Bug introduce by:
    commit 986a4f4d452dec004697f667439d27c3fda9c928
    Author: Jason Wang
    Date: Fri Dec 7 07:04:56 2012 +0000

    virtio_net: multiqueue support

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • Pull 'full dynticks' support from Ingo Molnar:
    "This tree from Frederic Weisbecker adds a new, (exciting! :-) core
    kernel feature to the timer and scheduler subsystems: 'full dynticks',
    or CONFIG_NO_HZ_FULL=y.

    This feature extends the nohz variable-size timer tick feature from
    idle to busy CPUs (running at most one task) as well, potentially
    reducing the number of timer interrupts significantly.

    This feature got motivated by real-time folks and the -rt tree, but
    the general utility and motivation of full-dynticks runs wider than
    that:

    - HPC workloads get faster: CPUs running a single task should be able
    to utilize a maximum amount of CPU power. A periodic timer tick at
    HZ=1000 can cause a constant overhead of up to 1.0%. This feature
    removes that overhead - and speeds up the system by 0.5%-1.0% on
    typical distro configs even on modern systems.

    - Real-time workload latency reduction: CPUs running critical tasks
    should experience as little jitter as possible. The last remaining
    source of kernel-related jitter was the periodic timer tick.

    - A single task executing on a CPU is a pretty common situation,
    especially with an increasing number of cores/CPUs, so this feature
    helps desktop and mobile workloads as well.

    The cost of the feature is mainly related to increased timer
    reprogramming overhead when a CPU switches its tick period, and thus
    slightly longer to-idle and from-idle latency.

    Configuration-wise a third mode of operation is added to the existing
    two NOHZ kconfig modes:

    - CONFIG_HZ_PERIODIC: [formerly !CONFIG_NO_HZ], now explicitly named
    as a config option. This is the traditional Linux periodic tick
    design: there's a HZ tick going on all the time, regardless of
    whether a CPU is idle or not.

    - CONFIG_NO_HZ_IDLE: [formerly CONFIG_NO_HZ=y], this turns off the
    periodic tick when a CPU enters idle mode.

    - CONFIG_NO_HZ_FULL: this new mode, in addition to turning off the
    tick when a CPU is idle, also slows the tick down to 1 Hz (one
    timer interrupt per second) when only a single task is running on a
    CPU.

    The .config behavior is compatible: existing !CONFIG_NO_HZ and
    CONFIG_NO_HZ=y settings get translated to the new values, without the
    user having to configure anything. CONFIG_NO_HZ_FULL is turned off by
    default.

    This feature is based on a lot of infrastructure work that has been
    steadily going upstream in the last 2-3 cycles: related RCU support
    and non-periodic cputime support in particular is upstream already.

    This tree adds the final pieces and activates the feature. The pull
    request is marked RFC because:

    - it's marked 64-bit only at the moment - the 32-bit support patch is
    small but did not get ready in time.

    - it has a number of fresh commits that came in after the merge
    window. The overwhelming majority of commits are from before the
    merge window, but still some aspects of the tree are fresh and so I
    marked it RFC.

    - it's a pretty wide-reaching feature with lots of effects - and
    while the components have been in testing for some time, the full
    combination is still not very widely used. That it's default-off
    should reduce its regression abilities and obviously there are no
    known regressions with CONFIG_NO_HZ_FULL=y enabled either.

    - the feature is not completely idempotent: there is no 100%
    equivalent replacement for a periodic scheduler/timer tick. In
    particular there's ongoing work to map out and reduce its effects
    on scheduler load-balancing and statistics. This should not impact
    correctness though, there are no known regressions related to this
    feature at this point.

    - it's a pretty ambitious feature that with time will likely be
    enabled by most Linux distros, and we'd like you to make input on
    its design/implementation, if you dislike some aspect we missed.
    Without flaming us to crisp! :-)

    Future plans:

    - there's ongoing work to reduce 1Hz to 0Hz, to essentially shut off
    the periodic tick altogether when there's a single busy task on a
    CPU. We'd first like 1 Hz to be exposed more widely before we go
    for the 0 Hz target though.

    - once we reach 0 Hz we can remove the periodic tick assumption from
    nr_running>=2 as well, by essentially interrupting busy tasks only
    as frequently as the sched_latency constraints require us to do -
    once every 4-40 msecs, depending on nr_running.

    I am personally leaning towards biting the bullet and doing this in
    v3.10, like the -rt tree this effort has been going on for too long -
    but the final word is up to you as usual.

    More technical details can be found in Documentation/timers/NO_HZ.txt"

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
    sched: Keep at least 1 tick per second for active dynticks tasks
    rcu: Fix full dynticks' dependency on wide RCU nocb mode
    nohz: Protect smp_processor_id() in tick_nohz_task_switch()
    nohz_full: Add documentation.
    cputime_nsecs: use math64.h for nsec resolution conversion helpers
    nohz: Select VIRT_CPU_ACCOUNTING_GEN from full dynticks config
    nohz: Reduce overhead under high-freq idling patterns
    nohz: Remove full dynticks' superfluous dependency on RCU tree
    nohz: Fix unavailable tick_stop tracepoint in dynticks idle
    nohz: Add basic tracing
    nohz: Select wide RCU nocb for full dynticks
    nohz: Disable the tick when irq resume in full dynticks CPU
    nohz: Re-evaluate the tick for the new task after a context switch
    nohz: Prepare to stop the tick on irq exit
    nohz: Implement full dynticks kick
    nohz: Re-evaluate the tick from the scheduler IPI
    sched: New helper to prevent from stopping the tick in full dynticks
    sched: Kick full dynticks CPU that have more than one task enqueued.
    perf: New helper to prevent full dynticks CPUs from stopping tick
    perf: Kick full dynticks CPU if events rotation is needed
    ...

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Misc fixes plus a small hw-enablement patch for Intel IB model 58
    uncore events"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL
    perf/x86/intel/lbr: Fix LBR filter
    perf/x86: Blacklist all MEM_*_RETIRED events for Ivy Bridge
    perf: Fix vmalloc ring buffer pages handling
    perf/x86/intel: Fix unintended variable name reuse
    perf/x86/intel: Add support for IvyBridge model 58 Uncore
    perf/x86/intel: Fix typo in perf_event_intel_uncore.c
    x86: Eliminate irq_mis_count counted in arch_irq_stat

    Linus Torvalds
     
  • Pull mudule updates from Rusty Russell:
    "We get rid of the general module prefix confusion with a binary config
    option, fix a remove/insert race which Never Happens, and (my
    favorite) handle the case when we have too many modules for a single
    commandline. Seriously, the kernel is full, please go away!"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    modpost: fix unwanted VMLINUX_SYMBOL_STR expansion
    X.509: Support parse long form of length octets in Authority Key Identifier
    module: don't unlink the module until we've removed all exposure.
    kernel: kallsyms: memory override issue, need check destination buffer length
    MODSIGN: do not send garbage to stderr when enabling modules signature
    modpost: handle huge numbers of modules.
    modpost: add -T option to read module names from file/stdin.
    modpost: minor cleanup.
    genksyms: pass symbol-prefix instead of arch
    module: fix symbol versioning with symbol prefixes
    CONFIG_SYMBOL_PREFIX: cleanup.

    Linus Torvalds
     
  • Pull single_open() leak fixes from Al Viro:
    "A bunch of fixes for a moderately common class of bugs: file with
    single_open() done by its ->open() and seq_release as its ->release().

    That leaks; fortunately, it's not _too_ common (either people manage
    to RTFM that says "When using single_open(), the programmer should use
    single_release() instead of seq_release() in the file_operations
    structure to avoid a memory leak", or they just copy a correct
    instance), but grepping through the tree has caught quite a pile.

    All of that is, AFAICS, -stable fodder, for as far as the patches
    apply. I tried to carve it up into reasonably-sized pieces (more or
    less "comes from the same tree")"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    rcutrace: single_open() leaks
    gadget: single_open() leaks
    staging: single_open() leaks
    megaraid: single_open() leak
    wireless: single_open() leaks
    input: single_open() leak
    rtc: single_open() leaks
    ds1620: single_open() leak
    sh: single_open() leaks
    parisc: single_open() leaks
    mips: single_open() leaks
    ia64: single_open() leaks
    h8300: single_open() leaks
    cris: single_open() leaks
    arm: single_open() leaks

    Linus Torvalds
     
  • Merge ipc fixes and cleanups from my IPC branch.

    The ipc locking has always been pretty ugly, and the scalability fixes
    to some degree made it even less readable. We had two cases of double
    unlocks in error paths due to this (one rcu read unlock, one semaphore
    unlock), and this fixes the bugs I found while trying to clean things up
    a bit so that we are less likely to have more.

    * ipc-cleanups:
    ipc: simplify rcu_read_lock() in semctl_nolock()
    ipc: simplify semtimedop/semctl_main() common error path handling
    ipc: move sem_obtain_lock() rcu locking into the only caller
    ipc: fix double sem unlock in semctl error path
    ipc: move the rcu_read_lock() from sem_lock_and_putref() into callers
    ipc: sem_putref() does not need the semaphore lock any more
    ipc: move rcu_read_unlock() out of sem_unlock() and into callers

    Linus Torvalds
     

05 May, 2013

1 commit