1. 06 May, 2013 19 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 51a26ae7
      Linus Torvalds authored
      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
      51a26ae7
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 2b69703f
      Linus Torvalds authored
      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
      2b69703f
    • Linus Torvalds's avatar
      Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux · 30c67e93
      Linus Torvalds authored
      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
        ...
      30c67e93
    • Linus Torvalds's avatar
      Merge tag 'for-3.10-rc1' of git://gitorious.org/linux-pwm/linux-pwm · f87bb9ee
      Linus Torvalds authored
      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
        ...
      f87bb9ee
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 99737982
      Linus Torvalds authored
      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
        ...
      99737982
    • Dan Carpenter's avatar
      tipc: potential divide by zero in tipc_link_recv_fragment() · 6bf15191
      Dan Carpenter authored
      The worry here is that fragm_sz could be zero since it comes from
      skb->data.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6bf15191
    • Dan Carpenter's avatar
      tipc: add a bounds check in link_recv_changeover_msg() · cb4b102f
      Dan Carpenter authored
      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: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cb4b102f
    • hayeswang's avatar
      net/usb: new driver for RTL8152 · ac718b69
      hayeswang authored
      Add new driver for supporting Realtek RTL8152 Based USB 2.0 Ethernet Adapters
      Signed-off-by: default avatarHayes Wang <hayeswang@realtek.com>
      Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ac718b69
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 91f85756
      Linus Torvalds authored
      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
        ...
      91f85756
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 2e378f3e
      Linus Torvalds authored
      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
      2e378f3e
    • David Jeffery's avatar
      autofs - remove autofs dentry mount check · ce8a5dbd
      David Jeffery authored
      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: default avatarDavid Jeffery <djeffery@redhat.com>
      Signed-off-by: default avatarIan Kent <raven@themaw.net>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ce8a5dbd
    • Claudiu Ghioc's avatar
      autofs - fix sparse warning for autofs4_d_manage() · 95482986
      Claudiu Ghioc authored
      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: default avatarClaudiu Ghioc <claudiu.ghioc@gmail.com>
      Signed-off-by: default avatarIan Kent <raven@themaw.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      95482986
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 2bf1bef0
      Linus Torvalds authored
      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
      2bf1bef0
    • Sergei Shtylyov's avatar
      3c59x: fix freeing nonexistent resource on driver unload · c81400be
      Sergei Shtylyov authored
      When unloading the driver that drives an EISA board, a message similar to the
      following one is displayed:
      
      Trying to free nonexistent resource <0000000000013000-000000000001301f>
      
      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: default avatarMatthew Whitehead <tedheadster@gmail.com>
      Tested-by: default avatarMatthew Whitehead <tedheadster@gmail.com>
      Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c81400be
    • Dan Carpenter's avatar
      netpoll: inverted down_trylock() test · a3dbbc2b
      Dan Carpenter authored
      The return value is reversed from mutex_trylock().
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a3dbbc2b
    • Al Viro's avatar
      rps_dev_flow_table_release(): no need to delay vfree() · 243198d0
      Al Viro authored
      The same story as with fib_trie patch - vfree() from RCU callbacks
      is legitimate now.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      243198d0
    • Al Viro's avatar
      fib_trie: no need to delay vfree() · 00203563
      Al Viro authored
      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: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00203563
    • Konstantin Khlebnikov's avatar
      net: frag, fix race conditions in LRU list maintenance · b56141ab
      Konstantin Khlebnikov authored
      This patch fixes race between inet_frag_lru_move() and inet_frag_lru_add()
      which was introduced in commit 3ef0eb0d
      ("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: [<ffffffff812ede89>] __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:[<ffffffff812ede89>]  [<ffffffff812ede89>] __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]  [<ffffffff8155dcda>] ip_defrag+0x8fa/0xd10
      [119482.252921]  [<ffffffff815a8013>] ipv4_conntrack_defrag+0x83/0xe0
      [119482.257803]  [<ffffffff8154485b>] nf_iterate+0x8b/0xa0
      [119482.262658]  [<ffffffff8155c7f0>] ? inet_del_offload+0x40/0x40
      [119482.267527]  [<ffffffff815448e4>] nf_hook_slow+0x74/0x130
      [119482.272412]  [<ffffffff8155c7f0>] ? inet_del_offload+0x40/0x40
      [119482.277302]  [<ffffffff8155d068>] ip_rcv+0x268/0x320
      [119482.282147]  [<ffffffff81519992>] __netif_receive_skb_core+0x612/0x7e0
      [119482.286998]  [<ffffffff81519b78>] __netif_receive_skb+0x18/0x60
      [119482.291826]  [<ffffffff8151a650>] process_backlog+0xa0/0x160
      [119482.296648]  [<ffffffff81519f29>] net_rx_action+0x139/0x220
      [119482.301403]  [<ffffffff81053707>] __do_softirq+0xe7/0x220
      [119482.306103]  [<ffffffff81053868>] run_ksoftirqd+0x28/0x40
      [119482.310809]  [<ffffffff81074f5f>] smpboot_thread_fn+0xff/0x1a0
      [119482.315515]  [<ffffffff81074e60>] ? lg_local_lock_cpu+0x40/0x40
      [119482.320219]  [<ffffffff8106d870>] kthread+0xc0/0xd0
      [119482.324858]  [<ffffffff8106d7b0>] ? insert_kthread_work+0x40/0x40
      [119482.329460]  [<ffffffff816c32dc>] ret_from_fork+0x7c/0xb0
      [119482.334057]  [<ffffffff8106d7b0>] ? 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 <4c> 8b 00 4c 39 c7 75 53 4c 8b 42 08 4c 39 c7 75 2b 48 89 42 08
      [119482.343787] RIP  [<ffffffff812ede89>] __list_del_entry+0x29/0xd0
      [119482.348675]  RSP <ffff880216d5db58>
      [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: default avatarKonstantin Khlebnikov <khlebnikov@openvz.org>
      Cc: Jesper Dangaard Brouer <brouer@redhat.com>
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: David S. Miller <davem@davemloft.net>
      Acked-by: default avatarFlorian Westphal <fw@strlen.de>
      Signed-off-by: default avatarJesper Dangaard Brouer <brouer@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b56141ab
    • Linus Torvalds's avatar
      Merge tag 'mfd-3.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-next · d7ab7302
      Linus Torvalds authored
      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()
        ...
      d7ab7302
  2. 05 May, 2013 21 commits
    • Linus Torvalds's avatar
      Merge tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 01227a88
      Linus Torvalds authored
      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
        ...
      01227a88
    • David Howells's avatar
      Give the OID registry file module info to avoid kernel tainting · 9e687946
      David Howells authored
      Give the OID registry file module information so that it doesn't taint the
      kernel when compiled as a module and loaded.
      Reported-by: default avatarDros Adamson <Weston.Adamson@netapp.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Trond Myklebust <Trond.Myklebust@netapp.com>
      cc: stable@vger.kernel.org
      cc: linux-nfs@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9e687946
    • Eric Dumazet's avatar
      tcp: do not expire TCP fastopen cookies · efeaa555
      Eric Dumazet authored
      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: default avatarEric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      efeaa555
    • Benjamin Herrenschmidt's avatar
      net/eth/ibmveth: Fixup retrieval of MAC address · 13f85203
      Benjamin Herrenschmidt authored
      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: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      CC: <stable@vger.kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13f85203
    • stephen hemminger's avatar
      virtio: don't expose u16 in userspace api · 77d21f23
      stephen hemminger authored
      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 986a4f4d
        Author: Jason Wang <jasowang@redhat.com>
        Date:   Fri Dec 7 07:04:56 2012 +0000
      
          virtio_net: multiqueue support
      Signed-off-by: default avatarStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      77d21f23
    • Linus Torvalds's avatar
      Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 534c97b0
      Linus Torvalds authored
      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
        ...
      534c97b0
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 64049d19
      Linus Torvalds authored
      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
      64049d19
    • Linus Torvalds's avatar
      Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · f8ce1faf
      Linus Torvalds authored
      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.
      f8ce1faf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 24d0c254
      Linus Torvalds authored
      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
      24d0c254
    • Linus Torvalds's avatar
      Merge branch 'ipc-cleanups' · 802d0db8
      Linus Torvalds authored
      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
      802d0db8
    • Scott Wood's avatar
      kvm: Add compat_ioctl for device control API · db6ae615
      Scott Wood authored
      This API shouldn't have 32/64-bit issues, but VFS assumes it does
      unless told otherwise.
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      db6ae615
    • Peter Zijlstra's avatar
      perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL · 7cc23cd6
      Peter Zijlstra authored
      We should always have proper privileges when requesting kernel
      data.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: <stable@kernel.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/20130503121256.230745028@chello.nl
      [ Fix build error reported by fengguang.wu@intel.com, propagate error code back. ]
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Link: http://lkml.kernel.org/n/tip-v0x9ky3ahzr6nm3c6ilwrili@git.kernel.org
      7cc23cd6
    • Al Viro's avatar
      rcutrace: single_open() leaks · 7ee2b9e5
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7ee2b9e5
    • Al Viro's avatar
      gadget: single_open() leaks · 962a1ab2
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      962a1ab2
    • Al Viro's avatar
      staging: single_open() leaks · bae301d3
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bae301d3
    • Al Viro's avatar
      megaraid: single_open() leak · 9bec8a74
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9bec8a74
    • Al Viro's avatar
      wireless: single_open() leaks · bc3041f0
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bc3041f0
    • Al Viro's avatar
      input: single_open() leak · 9b3a0a6f
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9b3a0a6f
    • Al Viro's avatar
      rtc: single_open() leaks · 2e7718cf
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      2e7718cf
    • Al Viro's avatar
      ds1620: single_open() leak · 7485e16c
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7485e16c
    • Al Viro's avatar
      sh: single_open() leaks · c39b9fd7
      Al Viro authored
      Cc: vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      c39b9fd7