17 Oct, 2013

1 commit

  • Commit 3812c8c8f395 ("mm: memcg: do not trap chargers with full
    callstack on OOM") assumed that only a few places that can trigger a
    memcg OOM situation do not return VM_FAULT_OOM, like optional page cache
    readahead. But there are many more and it's impractical to annotate
    them all.

    First of all, we don't want to invoke the OOM killer when the failed
    allocation is gracefully handled, so defer the actual kill to the end of
    the fault handling as well. This simplifies the code quite a bit for
    added bonus.

    Second, since a failed allocation might not be the abrupt end of the
    fault, the memcg OOM handler needs to be re-entrant until the fault
    finishes for subsequent allocation attempts. If an allocation is
    attempted after the task already OOMed, allow it to bypass the limit so
    that it can quickly finish the fault and invoke the OOM killer.

    Reported-by: azurIt
    Signed-off-by: Johannes Weiner
    Cc: Michal Hocko
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     

16 Oct, 2013

1 commit

  • Pull device tree fixes and reverts from Grant Likely:
    "One bug fix and three reverts. The reverts back out the slightly
    controversial feeding the entire device tree into the random pool and
    the reserved-memory binding which isn't fully baked yet. Expect the
    reserved-memory patches at least to resurface for v3.13.

    The bug fixes removes a scary but harmless warning on SPARC that was
    introduced in the v3.12 merge window. v3.13 will contain a proper fix
    that makes the new code work on SPARC.

    On the plus side, the diffstat looks *awesome*. I love removing lines
    of code"

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
    Revert "drivers: of: add initialization code for dma reserved memory"
    Revert "ARM: init: add support for reserved memory defined by device tree"
    Revert "of: Feed entire flattened device tree into the random pool"
    of: fix unnecessary warning on missing /cpus node

    Linus Torvalds
     

15 Oct, 2013

2 commits

  • This reverts commit 9d8eab7af79cb4ce2de5de39f82c455b1f796963. There is
    still no consensus on the bindings for the reserved memory and various
    drawbacks of the proposed solution has been shown, so the best now is to
    revert it completely and start again from scratch later.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Grant Likely

    Marek Szyprowski
     
  • Pull infiniband updates from Roland Dreier:
    "Last batch of IB changes for 3.12: many mlx5 hardware driver fixes
    plus one trivial semicolon cleanup"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB: Remove unnecessary semicolons
    IB/mlx5: Ensure proper synchronization accessing memory
    IB/mlx5: Fix alignment of reg umr gather buffers
    IB/mlx5: Fix eq names to display nicely in /proc/interrupts
    mlx5: Fix error code translation from firmware to driver
    IB/mlx5: Fix opt param mask according to firmware spec
    mlx5: Fix opt param mask for sq err to rts transition
    IB/mlx5: Disable atomic operations
    mlx5: Fix layout of struct mlx5_init_seg
    mlx5: Keep polling to reclaim pages while any returned
    IB/mlx5: Avoid async events on invalid port number
    IB/mlx5: Decrease memory consumption of mr caches
    mlx5: Remove checksum on command interface commands
    IB/mlx5: Fix memory leak in mlx5_ib_create_srq
    IB/mlx5: Flush cache workqueue before destroying it
    IB/mlx5: Fix send work queue size calculation

    Linus Torvalds
     

14 Oct, 2013

2 commits

  • Pull ARM SoC fixes from Olof Johansson:
    "A small batch of fixes this week, mostly OMAP related. Nothing stands
    out as particularly controversial.

    Also a fix for a 3.12-rc1 timer regression for Exynos platforms,
    including the Chromebooks"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: exynos: dts: Update 5250 arch timer node with clock frequency
    ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
    ARM: mach-omap2: board-generic: fix undefined symbol
    ARM: dts: Fix pinctrl mask for omap3
    ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
    ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT

    Linus Torvalds
     
  • …kernel/git/tmlind/linux-omap into fixes

    From Tony Lindgren:

    Few fixes for omap3 related hangs and errors that people have
    noticed now that people are actually using the device tree
    based booting for omap3.

    Also one regression fix for timer compile for dra7xx when
    omap5 is not selected, and a LED regression fix for n900.

    * tag 'fixes-against-v3.12-rc3-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
    ARM: OMAP2: RX-51: Add missing max_current to rx51_lp5523_led_config
    ARM: mach-omap2: board-generic: fix undefined symbol
    ARM: dts: Fix pinctrl mask for omap3
    ARM: OMAP3: Fix hardware detection for omap3630 when booted with device tree
    ARM: OMAP2: gpmc-onenand: fix sync mode setup with DT

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

13 Oct, 2013

1 commit


12 Oct, 2013

1 commit

  • Pull drm fixes from Dave Airlie:
    "All over the map..

    - nouveau:
    disable MSI, needs more work, will try again next merge window
    - radeon:
    audio + uvd regression fixes, dpm fixes, reset fixes
    - i915:
    the dpms fix might fix your haswell

    And one pain in the ass revert, so we have VGA arbitration that when
    implemented 4-5 years ago really hoped that GPUs could remove
    themselves from arbitration completely once they had a kernel driver.

    It seems Intel hw designers decided that was too nice a facility to
    allow us to have so they removed it when they went on-die (so since
    Ironlake at least). Now Alex Williamson added support for VGA
    arbitration for newer GPUs however this now exposes itself to
    userspace as requireing arbitration of GPU VGA regions and the X
    server gets involved and disables things that it can't handle when VGA
    access is possibly required around every operation.

    So in order to not break userspace we just reverted things back to the
    old known broken status so maybe we can try and design out way out.

    Ville also had a patch to use stop machine for the two times Intel
    needs to access VGA space, that might be acceptable with some rework,
    but for now myself and Daniel agreed to just go back"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (23 commits)
    Revert "i915: Update VGA arbiter support for newer devices"
    Revert "drm/i915: Delay disabling of VGA memory until vgacon->fbcon handoff is done"
    drm/radeon: re-enable sw ACR support on pre-DCE4
    drm/radeon/dpm: disable bapm on TN asics
    drm/radeon: improve soft reset on CIK
    drm/radeon: improve soft reset on SI
    drm/radeon/dpm: off by one in si_set_mc_special_registers()
    drm/radeon/dpm/btc: off by one in btc_set_mc_special_registers()
    drm/radeon: forever loop on error in radeon_do_test_moves()
    drm/radeon: fix hw contexts for SUMO2 asics
    drm/radeon: fix typo in CP DMA register headers
    drm/radeon/dpm: disable multiple UVD states
    drm/radeon: use hw generated CTS/N values for audio
    drm/radeon: fix N/CTS clock matching for audio
    drm/radeon: use 64-bit math to calculate CTS values for audio (v2)
    drm/edid: catch kmalloc failure in drm_edid_to_speaker_allocation
    Revert "drm/fb-helper: don't sleep for screen unblank when an oops is in progress"
    drm/gma500: fix things after get/put page helpers
    drm/nouveau/mc: disable msi support by default, it's busted in tons of places
    drm/i915: Only apply DPMS to the encoder if enabled
    ...

    Linus Torvalds
     

11 Oct, 2013

7 commits

  • Fengguang Wu, Oleg Nesterov and Peter Zijlstra tracked down
    a kernel crash to a GCC bug: GCC miscompiles certain 'asm goto'
    constructs, as outlined here:

    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670

    Implement a workaround suggested by Jakub Jelinek.

    Reported-and-tested-by: Fengguang Wu
    Reported-by: Oleg Nesterov
    Reported-by: Peter Zijlstra
    Suggested-by: Jakub Jelinek
    Reviewed-by: Richard Henderson
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • This reverts commit 81b5c7bc8de3e6f63419139c2fc91bf81dea8a7d.

    Adding drm/i915 into the vga arbiter chain means that X (in a piece of
    well-meant paranoia) will do a get/put on the vga decoding around
    _every_ accel call down into the ddx. Which results in some nice
    performance disasters [1]. This really breaks userspace, by disabling
    DRI for everyone, and stops OpenGL from working, this isn't limited
    to just the i915 but both the integrated and discrete GPUs on
    multi-gpu systems, in other words this causes untold worlds of pain,

    Ville tried to come up with a Great Hack to fiddle the required VGA
    I/O ops behind everyone's back using stop_machine, but that didn't
    really work out [2]. Given that we're fairly late in the -rc stage for
    such games let's just revert this all.

    One thing we might want to keep is to delay the disabling of the vga
    decoding until the fbdev emulation and the fbcon screen is set up. If
    we kill vga mem decoding beforehand fbcon can end up with a white
    square in the top-left corner it tried to save from the vga memory for
    a seamless transition. And we have bug reports on older platforms
    which seem to match these symptoms.

    But again that's something to play around with in -next.

    References: [1] http://lists.x.org/archives/xorg-devel/2013-September/037763.html
    References: [2] http://www.spinics.net/lists/intel-gfx/msg34062.html
    Cc: Alex Williamson
    Cc: Ville Syrjälä
    Cc: Chris Wilson
    Signed-off-by: Daniel Vetter
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • Pull /dev/random changes from Ted Ts'o:
    "These patches are designed to enable improvements to /dev/random for
    non-x86 platforms, in particular MIPS and ARM"

    * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
    random: allow architectures to optionally define random_get_entropy()
    random: run random_int_secret_init() run after all late_initcalls

    Linus Torvalds
     
  • Allow architectures which have a disabled get_cycles() function to
    provide a random_get_entropy() function which provides a fine-grained,
    rapidly changing counter that can be used by the /dev/random driver.

    For example, an architecture might have a rapidly changing register
    used to control random TLB cache eviction, or DRAM refresh that
    doesn't meet the requirements of get_cycles(), but which is good
    enough for the needs of the random driver.

    Signed-off-by: "Theodore Ts'o"
    Cc: stable@vger.kernel.org

    Theodore Ts'o
     
  • It's helpful for a driver to put the pci slot name in its interrupt
    names, so /proc/interrupts will show the pci slot of the device.

    Signed-off-by: Sagi Grimberg
    Signed-off-by: Eli Cohen
    Signed-off-by: Roland Dreier

    Sagi Grimberg
     
  • The layout of struct health_buffer was not according to firmware
    specification. Fix it to comply.

    Signed-off-by: Eli Cohen
    Signed-off-by: Roland Dreier

    Eli Cohen
     
  • Checksum calculations consume CPU resources and can be significant to
    the rate of resource creation/destruction.

    Signed-off-by: Eli Cohen
    Signed-off-by: Roland Dreier

    Eli Cohen
     

09 Oct, 2013

2 commits

  • The wake-up interrupt bit is available on omap3/4/5 processors
    unlike what we claim. Without fixing it we cannot use it on
    omap3 and the system configured for wake-up events will just
    hang on wake-up.

    Cc: Grygorii Strashko
    Cc: Benoît Cousson
    Cc: devicetree@vger.kernel.org
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • Pull perf fixes from Ingo Molnar:
    "Various fixlets:

    On the kernel side:

    - fix a race
    - fix a bug in the handling of the perf ring-buffer data page

    On the tooling side:

    - fix the handling of certain corrupted perf.data files
    - fix a bug in 'perf probe'
    - fix a bug in 'perf record + perf sched'
    - fix a bug in 'make install'
    - fix a bug in libaudit feature-detection on certain distros"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf session: Fix infinite loop on invalid perf.data file
    perf tools: Fix installation of libexec components
    perf probe: Fix to find line information for probe list
    perf tools: Fix libaudit test
    perf stat: Set child_pid after perf_evlist__prepare_workload()
    perf tools: Add default handler for mmap2 events
    perf/x86: Clean up cap_user_time* setting
    perf: Fix perf_pmu_migrate_context

    Linus Torvalds
     

08 Oct, 2013

1 commit

  • Pull HID fixes from Jiri Kosina:
    - fix for hidraw reference counting regression, by Manoj Chourasia
    - fix for minor number allocation for uhid, by David Herrmann
    - other small unsorted fixes / device ID additions

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: wiimote: fix FF deadlock
    HID: add Holtek USB ID 04d9:a081 SHARKOON DarkGlider
    HID: hidraw: close underlying device at removal of last reader
    HID: roccat: Fix "cannot create duplicate filename" problems
    HID: uhid: allocate static minor

    Linus Torvalds
     

05 Oct, 2013

1 commit

  • Pull iommu fixes from Joerg Roedel:
    "A couple of fixes from the IOMMU side:

    - some small fixes for the new ARM-SMMU driver
    - a register offset correction for VT-d
    - add MAINTAINERS entry for drivers/iommu

    Overall no really big or intrusive changes"

    * tag 'iommu-fixes-v3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    x86/iommu: correct ICS register offset
    MAINTAINERS: add overall IOMMU section
    iommu/arm-smmu: don't enable SMMU device until probing has completed
    iommu/arm-smmu: fix iommu_present() test in init
    iommu/arm-smmu: fix a signedness bug

    Linus Torvalds
     

04 Oct, 2013

1 commit

  • While auditing the list_entry usage due to a trinity bug I found that
    perf_pmu_migrate_context violates the rules for
    perf_event::event_entry.

    The problem is that perf_event::event_entry is a RCU list element, and
    hence we must wait for a full RCU grace period before re-using the
    element after deletion.

    Therefore the usage in perf_pmu_migrate_context() which re-uses the
    entry immediately is broken. For now introduce another list_head into
    perf_event for this specific usage.

    This doesn't actually fix the trinity report because that never goes
    through this code.

    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-mkj72lxagw1z8fvjm648iznw@git.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

03 Oct, 2013

1 commit

  • The include/asm-generic/hugetlb.h stubs that just vector huge_pte_*()
    calls to the pte_*() implementations won't work in certain situations.

    x86 and sparc, for example, return "unsigned long" from the bit
    checks, and just go "return pte_val(pte) & PTE_BIT_FOO;"

    But since huge_pte_*() returns 'int', if any high bits on 64-bit are
    relevant, they get chopped off.

    The net effect is that we can loop forever trying to COW a huge page,
    because the huge_pte_write() check signals false all the time.

    Reported-by: Gurudas Pai
    Tested-by: Gurudas Pai
    Signed-off-by: David S. Miller
    Acked-by: David Rientjes

    David Miller
     

02 Oct, 2013

2 commits

  • Pull networking changes from David Miller:

    1) Multiply in netfilter IPVS can overflow when calculating destination
    weight. From Simon Kirby.

    2) Use after free fixes in IPVS from Julian Anastasov.

    3) SFC driver bug fixes from Daniel Pieczko.

    4) Memory leak in pcan_usb_core failure paths, from Alexey Khoroshilov.

    5) Locking and encapsulation fixes to serial line CAN driver, from
    Andrew Naujoks.

    6) Duplex and VF handling fixes to bnx2x driver from Yaniv Rosner,
    Eilon Greenstein, and Ariel Elior.

    7) In lapb, if no other packets are outstanding, T1 timeouts actually
    stall things and no packet gets sent. Fix from Josselin Costanzi.

    8) ICMP redirects should not make it to the socket error queues, from
    Duan Jiong.

    9) Fix bugs in skge DMA mapping error handling, from Nikulas Patocka.

    10) Fix setting of VLAN priority field on via-rhine driver, from Roget
    Luethi.

    11) Fix TX stalls and VLAN promisc programming in be2net driver from
    Ajit Khaparde.

    12) Packet padding doesn't get handled correctly in new usbnet SG
    support code, from Ming Lei.

    13) Fix races in netdevice teardown wrt. network namespace closing.
    From Eric W. Biederman.

    14) Fix potential missed initialization of net_secret if not TCP
    connections are openned. From Eric Dumazet.

    15) Cinterion PLXX product ID in qmi_wwan driver is wrong, from
    Aleksander Morgado.

    16) skb_cow_head() can change skb->data and thus packet header pointers,
    don't use stale ip_hdr reference in ip_tunnel code.

    17) Backend state transition handling fixes in xen-netback, from Paul
    Durrant.

    18) Packet offset for AH protocol is handled wrong in flow dissector,
    from Eric Dumazet.

    19) Taking down an fq packet scheduler instance can leave stale packets
    in the queues, fix from Eric Dumazet.

    20) Fix performance regressions introduced by TCP Small Queues. From
    Eric Dumazet.

    21) IPV6 GRE tunneling code calculates max_headroom incorrectly, from
    Hannes Frederic Sowa.

    22) Multicast timer handlers in ipv4 and ipv6 can be the last and final
    reference to the ipv4/ipv6 specific network device state, so use the
    reference put that will check and release the object if the
    reference hits zero. From Salam Noureddine.

    23) Fix memory corruption in ip_tunnel driver, and use skb_push()
    instead of __skb_push() so that similar bugs are less hard to find.
    From Steffen Klassert.

    24) Add forgotten hookup of rtnl_ops in SIT and ip6tnl drivers, from
    Nicolas Dichtel.

    25) fq scheduler doesn't accurately rate limit in certain circumstances,
    from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (103 commits)
    pkt_sched: fq: rate limiting improvements
    ip6tnl: allow to use rtnl ops on fb tunnel
    sit: allow to use rtnl ops on fb tunnel
    ip_tunnel: Remove double unregister of the fallback device
    ip_tunnel_core: Change __skb_push back to skb_push
    ip_tunnel: Add fallback tunnels to the hash lists
    ip_tunnel: Fix a memory corruption in ip_tunnel_xmit
    qlcnic: Fix SR-IOV configuration
    ll_temac: Reset dma descriptors indexes on ndo_open
    skbuff: size of hole is wrong in a comment
    ipv6 mcast: use in6_dev_put in timer handlers instead of __in6_dev_put
    ipv4 igmp: use in_dev_put in timer handlers instead of __in_dev_put
    ethernet: moxa: fix incorrect placement of __initdata tag
    ipv6: gre: correct calculation of max_headroom
    powerpc/83xx: gianfar_ptp: select 1588 clock source through dts file
    Revert "powerpc/83xx: gianfar_ptp: select 1588 clock source through dts file"
    bonding: Fix broken promiscuity reference counting issue
    tcp: TSQ can use a dynamic limit
    dm9601: fix IFF_ALLMULTI handling
    pkt_sched: fq: qdisc dismantle fixes
    ...

    Linus Torvalds
     
  • Pablo Neira Ayuso says:

    ====================
    The following patchset contains Netfilter/IPVS fixes for your net
    tree, they are:

    * Fix BUG_ON splat due to malformed TCP packets seen by synproxy, from
    Patrick McHardy.

    * Fix possible weight overflow in lblc and lblcr schedulers due to
    32-bits arithmetics, from Simon Kirby.

    * Fix possible memory access race in the lblc and lblcr schedulers,
    introduced when it was converted to use RCU, two patches from
    Julian Anastasov.

    * Fix hard dependency on CPU 0 when reading per-cpu stats in the
    rate estimator, from Julian Anastasov.

    * Fix race that may lead to object use after release, when invoking
    ipvsadm -C && ipvsadm -R, introduced when adding RCU, from Julian
    Anastasov.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

01 Oct, 2013

6 commits

  • Since commit c93bdd0e03e8 ("netvm: allow skb allocation to use PFMEMALLOC
    reserves"), hole size is one bit less than what is written in the comment.

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     
  • Pull NFS client bugfixes from Trond Myklebust:
    - Stable fix for Oopses in the pNFS files layout driver
    - Fix a regression when doing a non-exclusive file create on NFSv4.x
    - NFSv4.1 security negotiation fixes when looking up the root
    filesystem
    - Fix a memory ordering issue in the pNFS files layout driver

    * tag 'nfs-for-3.12-4' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    NFS: Give "flavor" an initial value to fix a compile warning
    NFSv4.1: try SECINFO_NO_NAME flavs until one works
    NFSv4.1: Ensure memory ordering between nfs4_ds_connect and nfs4_fl_prepare_ds
    NFSv4.1: nfs4_fl_prepare_ds - fix bugs when the connect attempt fails
    NFSv4: Honour the 'opened' parameter in the atomic_open() filesystem method

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton.

    * emailed patches from Andrew Morton : (22 commits)
    pidns: fix free_pid() to handle the first fork failure
    ipc,msg: prevent race with rmid in msgsnd,msgrcv
    ipc/sem.c: update sem_otime for all operations
    mm/hwpoison: fix the lack of one reference count against poisoned page
    mm/hwpoison: fix false report on 2nd attempt at page recovery
    mm/hwpoison: fix test for a transparent huge page
    mm/hwpoison: fix traversal of hugetlbfs pages to avoid printk flood
    block: change config option name for cmdline partition parsing
    mm/mlock.c: prevent walking off the end of a pagetable in no-pmd configuration
    mm: avoid reinserting isolated balloon pages into LRU lists
    arch/parisc/mm/fault.c: fix uninitialized variable usage
    include/asm-generic/vtime.h: avoid zero-length file
    nilfs2: fix issue with race condition of competition between segments for dirty blocks
    Documentation/kernel-parameters.txt: replace kernelcore with Movable
    mm/bounce.c: fix a regression where MS_SNAP_STABLE (stable pages snapshotting) was ignored
    kernel/kmod.c: check for NULL in call_usermodehelper_exec()
    ipc/sem.c: synchronize the proc interface
    ipc/sem.c: optimize sem_lock()
    ipc/sem.c: fix race in sem_lock()
    mm/compaction.c: periodically schedule when freeing pages
    ...

    Linus Torvalds
     
  • Isolated balloon pages can wrongly end up in LRU lists when
    migrate_pages() finishes its round without draining all the isolated
    page list.

    The same issue can happen when reclaim_clean_pages_from_list() tries to
    reclaim pages from an isolated page list, before migration, in the CMA
    path. Such balloon page leak opens a race window against LRU lists
    shrinkers that leads us to the following kernel panic:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
    IP: [] shrink_page_list+0x24e/0x897
    PGD 3cda2067 PUD 3d713067 PMD 0
    Oops: 0000 [#1] SMP
    CPU: 0 PID: 340 Comm: kswapd0 Not tainted 3.12.0-rc1-22626-g4367597 #87
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    RIP: shrink_page_list+0x24e/0x897
    RSP: 0000:ffff88003da499b8 EFLAGS: 00010286
    RAX: 0000000000000000 RBX: ffff88003e82bd60 RCX: 00000000000657d5
    RDX: 0000000000000000 RSI: 000000000000031f RDI: ffff88003e82bd40
    RBP: ffff88003da49ab0 R08: 0000000000000001 R09: 0000000081121a45
    R10: ffffffff81121a45 R11: ffff88003c4a9a28 R12: ffff88003e82bd40
    R13: ffff88003da0e800 R14: 0000000000000001 R15: ffff88003da49d58
    FS: 0000000000000000(0000) GS:ffff88003fc00000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000067d9000 CR3: 000000003ace5000 CR4: 00000000000407b0
    Call Trace:
    shrink_inactive_list+0x240/0x3de
    shrink_lruvec+0x3e0/0x566
    __shrink_zone+0x94/0x178
    shrink_zone+0x3a/0x82
    balance_pgdat+0x32a/0x4c2
    kswapd+0x2f0/0x372
    kthread+0xa2/0xaa
    ret_from_fork+0x7c/0xb0
    Code: 80 7d 8f 01 48 83 95 68 ff ff ff 00 4c 89 e7 e8 5a 7b 00 00 48 85 c0 49 89 c5 75 08 80 7d 8f 00 74 3e eb 31 48 8b 80 18 01 00 00 8b 74 0d 48 8b 78 30 be 02 00 00 00 ff d2 eb
    RIP [] shrink_page_list+0x24e/0x897
    RSP
    CR2: 0000000000000028
    ---[ end trace 703d2451af6ffbfd ]---
    Kernel panic - not syncing: Fatal exception

    This patch fixes the issue, by assuring the proper tests are made at
    putback_movable_pages() & reclaim_clean_pages_from_list() to avoid
    isolated balloon pages being wrongly reinserted in LRU lists.

    [akpm@linux-foundation.org: clarify awkward comment text]
    Signed-off-by: Rafael Aquini
    Reported-by: Luiz Capitulino
    Tested-by: Luiz Capitulino
    Cc: Mel Gorman
    Cc: Rik van Riel
    Cc: Hugh Dickins
    Cc: Johannes Weiner
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael Aquini
     
  • patch(1) can't handle zero-length files - it appears to simply not create
    the file, so my powerpc build fails.

    Put something in here to make life easier.

    Cc: Hugh Dickins
    Cc: Frederic Weisbecker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Use of RCU api makes vxlan code easier to understand. It also
    fixes bug due to missing ACCESS_ONCE() on sk_user_data dereference.
    In rare case without ACCESS_ONCE() compiler might omit vs on
    sk_user_data dereference.
    Compiler can use vs as alias for sk->sk_user_data, resulting in
    multiple sk_user_data dereference in rcu read context which
    could change.

    CC: Jesse Gross
    Signed-off-by: Pravin B Shelar
    Signed-off-by: David S. Miller

    Pravin B Shelar
     

30 Sep, 2013

4 commits

  • Mark Brown
     
  • TCP packets hitting the SYN proxy through the SYNPROXY target are not
    validated by TCP conntrack. When th->doff is below 5, an underflow happens
    when calculating the options length, causing skb_header_pointer() to
    return NULL and triggering the BUG_ON().

    Handle this case gracefully by checking for NULL instead of using BUG_ON().

    Reported-by: Martin Topholm
    Tested-by: Martin Topholm
    Signed-off-by: Patrick McHardy
    Signed-off-by: Pablo Neira Ayuso

    Patrick McHardy
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are some HyperV and MEI driver fixes for 3.12-rc3. They resolve
    some issues that people have been reporting for them"

    * tag 'char-misc-3.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    Drivers: hv: vmbus: Terminate vmbus version negotiation on timeout
    Drivers: hv: util: Correctly support ws2008R2 and earlier
    mei: cancel stall timers in mei_reset
    mei: bus: stop wait for read during cl state transition
    mei: make me client counters less error prone

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Nothing too major, radeon still has some dpm changes for off by
    default.

    Radeon, intel, msm:
    - radeon: a few more dpm fixes (still off by default), uvd fixes
    - i915: runtime warn backtrace and regression fix
    - msm: iommu changes fallout"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (27 commits)
    drm/msm: use drm_gem_dumb_destroy helper
    drm/msm: deal with mach/iommu.h removal
    drm/msm: Remove iommu include from mdp4_kms.c
    drm/msm: Odd PTR_ERR usage
    drm/i915: Fix up usage of SHRINK_STOP
    drm/radeon: fix hdmi audio on DCE3.0/3.1 asics
    drm/i915: preserve pipe A quirk in i9xx_set_pipeconf
    drm/i915/tv: clear adjusted_mode.flags
    drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER
    drm/radeon/cik: fix overflow in vram fetch
    drm/radeon: add missing hdmi callbacks for rv6xx
    drm/i915: Use a temporary va_list for two-pass string handling
    drm/radeon/uvd: lower msg&fb buffer requirements on UVD3
    drm/radeon: disable tests/benchmarks if accel is disabled
    drm/radeon: don't set default clocks for SI when DPM is disabled
    drm/radeon/dpm/ci: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/si: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/ni: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm/btc: filter clocks based on voltage/clk dep tables
    drm/radeon/dpm: fetch the max clk from voltage dep tables helper
    ...

    Linus Torvalds
     

29 Sep, 2013

6 commits

  • A host might need net_secret[] and never open a single socket.

    Problem added in commit aebda156a570782
    ("net: defer net_secret[] initialization")

    Based on prior patch from Hannes Frederic Sowa.

    Reported-by: Hannes Frederic Sowa
    Signed-off-by: Eric Dumazet
    Acked-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • There is currently serialization network namespaces exiting and
    network devices exiting as the final part of netdev_run_todo does not
    happen under the rtnl_lock. This is compounded by the fact that the
    only list of devices unregistering in netdev_run_todo is local to the
    netdev_run_todo.

    This lack of serialization in extreme cases results in network devices
    unregistering in netdev_run_todo after the loopback device of their
    network namespace has been freed (making dst_ifdown unsafe), and after
    the their network namespace has exited (making the NETDEV_UNREGISTER,
    and NETDEV_UNREGISTER_FINAL callbacks unsafe).

    Add the missing serialization by a per network namespace count of how
    many network devices are unregistering and having a wait queue that is
    woken up whenever the count is decreased. The count and wait queue
    allow default_device_exit_batch to wait until all of the unregistration
    activity for a network namespace has finished before proceeding to
    unregister the loopback device and then allowing the network namespace
    to exit.

    Only a single global wait queue is used because there is a single global
    lock, and there is a single waiter, per network namespace wait queues
    would be a waste of resources.

    The per network namespace count of unregistering devices gives a
    progress guarantee because the number of network devices unregistering
    in an exiting network namespace must ultimately drop to zero (assuming
    network device unregistration completes).

    The basic logic remains the same as in v1. This patch is now half
    comment and half rtnl_lock_unregistering an expanded version of
    wait_event performs no extra work in the common case where no network
    devices are unregistering when we get to default_device_exit_batch.

    Reported-by: Francesco Ruggeri
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: David S. Miller

    Eric W. Biederman
     
  • When a router is doing DNAT for 6to4/6rd packets the latest
    anti-spoofing commit 218774dc ("ipv6: add anti-spoofing checks for
    6to4 and 6rd") will drop them because the IPv6 address embedded does
    not match the IPv4 destination. This patch will allow them to pass by
    testing if we have an address that matches on 6to4/6rd interface. I
    have been hit by this problem using Fedora and IPV6TO4_IPV4ADDR.
    Also, log the dropped packets (with rate limit).

    Signed-off-by: Catalin(ux) M. BOIE
    Acked-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Catalin\(ux\) M. BOIE
     
  • Commit 638c5115a7949(USBNET: support DMA SG) introduces DMA SG
    if the usb host controller is capable of building packet from
    discontinuous buffers, but missed handling padding packet when
    building DMA SG.

    This patch attachs the pre-allocated padding packet at the
    end of the sg list, so padding packet can be sent to device
    if drivers require that.

    Reported-by: David Laight
    Acked-by: Oliver Neukum
    Signed-off-by: Ming Lei
    Signed-off-by: David S. Miller

    Ming Lei
     
  • Pull s390 lockref enablement from Heiko Carstens:
    "Enabling the new lockless lockref variant on s390 would have been
    trivial until Tony Luck added a cpu_relax() call into the
    CMPXCHG_LOOP(), with commit d472d9d98b46 ("lockref: Relax in cmpxchg
    loop")

    As already mentioned cpu_relax() is very expensive on s390 since it
    yields() the current virtual cpu. So we are talking of several
    thousand cycles. Considering this enabling the lockless lockref
    variant would contradict the intention of the new semantics. And also
    some quick measurements show performance regressions of 50% and more.

    Simply removing the cpu_relax() call again seems also not very
    desireable since Waiman Long reported that for some workloads the call
    improved performance by 5%."

    * 'lockref' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390: enable ARCH_USE_CMPXCHG_LOCKREF
    lockref: use arch_mutex_cpu_relax() in CMPXCHG_LOOP()
    mutex: replace CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX with simple ifdef

    Linus Torvalds
     
  • Pull DeviceTree fixes from Rob Herring:
    "Clean-up to fix some warnings for !OF builds and spelling fixes in
    docs:

    - Clean-up openrisc prom.h
    - Fix warnings caused by of_irq.h ifdefs
    - Spelling fix for Synopsys"

    * tag 'devicetree-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    dts: Fix misspelling of Synopsys
    of: clean-up ifdefs in of_irq.h
    openrisc: clean-up prom.h

    Linus Torvalds
     

28 Sep, 2013

1 commit

  • Linus suggested to replace

    #ifndef CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX
    #define arch_mutex_cpu_relax() cpu_relax()
    #endif

    with just a simple

    #ifndef arch_mutex_cpu_relax
    # define arch_mutex_cpu_relax() cpu_relax()
    #endif

    to get rid of CONFIG_HAVE_CPU_RELAX_SIMPLE. So architectures can
    simply define arch_mutex_cpu_relax if they want an architecture
    specific function instead of having to add a select statement in
    their Kconfig in addition.

    Suggested-by: Linus Torvalds
    Signed-off-by: Heiko Carstens

    Heiko Carstens