07 Feb, 2014

4 commits

  • …nux-stable into ti-linux-3.12.y

    This is the 3.12.10 stable release

    * tag 'v3.12.10' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (133 commits)
    Linux 3.12.10
    x86, cpu, amd: Add workaround for family 16h, erratum 793
    powerpc: Make sure "cache" directory is removed when offlining cpu
    powerpc: Fix the setup of CPU-to-Node mappings during CPU online
    btrfs: restrict snapshotting to own subvolumes
    Btrfs: handle EAGAIN case properly in btrfs_drop_snapshot()
    target/iscsi: Fix network portal creation race
    iscsi-target: Pre-allocate more tags to avoid ack starvation
    virtio-scsi: Fix hotcpu_notifier use-after-free with virtscsi_freeze
    SCSI: bfa: Chinook quad port 16G FC HBA claim issue
    usb: core: get config and string descriptors for unauthorized devices
    hpfs: remember free space
    ALSA: hda/hdmi - allow PIN_OUT to be dynamically enabled
    ALSA: hda - hdmi: introduce patch_nvhdmi()
    ALSA: hda - Don't set indep_hp flag for old AD codecs
    KVM: PPC: e500: Fix bad address type in deliver_tlb_misss()
    KVM: PPC: Book3S HV: use xics_wake_cpu only when defined
    parisc: fix cache-flushing
    alpha: fix broken network checksum
    inet_diag: fix inet_diag_dump_icsk() timewait socket state logic
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • commit ecd75ad514d73efc1bbcc5f10a13566c3ace5f53 upstream.

    For some reason, some early WD drives spin up and down drives
    erratically when the link is put into slumber mode which can reduce
    the life expectancy of the device significantly. Unfortunately, we
    don't have full list of devices and given the nature of the issue it'd
    be better to err on the side of false positives than the other way
    around. Let's disable LPM on all WD devices which match one of the
    known problematic model prefixes and are SATA-I.

    As horkage list doesn't support matching SATA capabilities, this is
    implemented as two horkages - WD_BROKEN_LPM and NOLPM. The former is
    set for the known prefixes and sets the latter if the matched device
    is SATA-I.

    Note that this isn't optimal as this disables all LPM operations and
    partial link power state reportedly works fine on these; however, the
    way LPM is implemented in libata makes it difficult to precisely map
    libata LPM setting to specific link power state. Well, these devices
    are already fairly outdated. Let's just disable whole LPM for now.

    Signed-off-by: Tejun Heo
    Reported-and-tested-by: Nikos Barkas
    Reported-and-tested-by: Ioannis Barkas
    References: https://bugzilla.kernel.org/show_bug.cgi?id=57211
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • commit ed8f8318d2ef3e5f9e4ddf79349508c116b68d7f upstream.

    According to Freescale imx28 Errata, "ENGR119653 USB: ARM to USB
    register error issue", All USB register write operations must
    use the ARM SWP instruction. So, we implement special hw_write
    and hw_test_and_clear for imx28.

    Discussion for it at below:
    http://marc.info/?l=linux-usb&m=137996395529294&w=2

    This patch is needed for stable tree 3.11+.

    Cc: robert.hodaszi@digi.com
    Signed-off-by: Peter Chen
    Signed-off-by: Marc Kleine-Budde
    Tested-by: Marc Kleine-Budde
    Signed-off-by: Greg Kroah-Hartman

    Peter Chen
     
  • commit 27c73ae759774e63313c1fbfeb17ba076cea64c5 upstream.

    Commit 7cb2ef56e6a8 ("mm: fix aio performance regression for database
    caused by THP") can cause dereference of a dangling pointer if
    split_huge_page runs during PageHuge() if there are updates to the
    tail_page->private field.

    Also it is repeating compound_head twice for hugetlbfs and it is running
    compound_head+compound_trans_head for THP when a single one is needed in
    both cases.

    The new code within the PageSlab() check doesn't need to verify that the
    THP page size is never bigger than the smallest hugetlbfs page size, to
    avoid memory corruption.

    A longstanding theoretical race condition was found while fixing the
    above (see the change right after the skip_unlock label, that is
    relevant for the compound_lock path too).

    By re-establishing the _mapcount tail refcounting for all compound
    pages, this also fixes the below problem:

    echo 0 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

    BUG: Bad page state in process bash pfn:59a01
    page:ffffea000139b038 count:0 mapcount:10 mapping: (null) index:0x0
    page flags: 0x1c00000000008000(tail)
    Modules linked in:
    CPU: 6 PID: 2018 Comm: bash Not tainted 3.12.0+ #25
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
    dump_stack+0x55/0x76
    bad_page+0xd5/0x130
    free_pages_prepare+0x213/0x280
    __free_pages+0x36/0x80
    update_and_free_page+0xc1/0xd0
    free_pool_huge_page+0xc2/0xe0
    set_max_huge_pages.part.58+0x14c/0x220
    nr_hugepages_store_common.isra.60+0xd0/0xf0
    nr_hugepages_store+0x13/0x20
    kobj_attr_store+0xf/0x20
    sysfs_write_file+0x189/0x1e0
    vfs_write+0xc5/0x1f0
    SyS_write+0x55/0xb0
    system_call_fastpath+0x16/0x1b

    Signed-off-by: Khalid Aziz
    Signed-off-by: Andrea Arcangeli
    Tested-by: Khalid Aziz
    Cc: Pravin Shelar
    Cc: Greg Kroah-Hartman
    Cc: Ben Hutchings
    Cc: Christoph Lameter
    Cc: Johannes Weiner
    Cc: Mel Gorman
    Cc: Rik van Riel
    Cc: Andi Kleen
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Cc: Guillaume Morin
    Signed-off-by: Greg Kroah-Hartman

    Andrea Arcangeli
     

04 Feb, 2014

4 commits

  • …ux-kernel/audio-display-linux-feature-tree into ti-linux-3.12.y

    TI-Feature: audio-display
    TI-Tree: git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-3.12.y

    * 'audio-display-ti-linux-3.12.y' of git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    ARM: dts: am437x-gp-evm: Add sleep pinctrl states for vpfe
    ARM: dts: am43x-epos-evm: Add sleep pinctrl state for vpfe
    Media: platform: ti-vpfe: Enhance pinctrl support
    Media: platform: ti-vpfe: Add frame size/format config
    Media: platform: ti-vpfe: minor code cleanup
    Media: sensor ov2659: Minor cleanup and added debug
    Media: sensor: ov2659: Add frame size configuration support
    Media: sensor: ov2659: Add format configuration support

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • Modified register dump functions to cover all registers
    Remove remaining unsused code leftover from the ov9650 adaptation

    Signed-off-by: Benoit Parrot
    Signed-off-by: Darren Etheridge

    Benoit Parrot
     
  • …-linux-feature-tree into ti-linux-3.12.y

    TI-Feature: power_management_base
    TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
    TI-Branch: pm-ti-linux-3.12.y

    * 'pm-ti-linux-3.12.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree:
    ARM: OMAP2+: AM43xx: Enable DeepSleep0 for DDR3 boards
    ARM: AM43XX: Bump firmware requirement for DDR3 DS0
    ARM: dts: am437x-gp-evm: Enable wkup_m3 control of IO isolation
    ARM: dts: am437x-gp-evm: Add state for ddr3 vtt toggle pin
    ARM: OMAP2+: AM43xx: Add support for IO Isolation
    opp-modifier: Add default failover case and PG1.1 support for am43xx
    opp-modifier: Add default failover case for am33xx

    Conflicts:
    arch/arm/boot/dts/am437x-gp-evm.dts

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • Add pinctrl data for ddr_vtt_toggle pin so that it is configured
    for proper state during DeepSleep0. The pin should enter DS0 off mode
    and hold the line low so VTT regulator is kept off while suspended.
    It is also important for the PULLUP to be set on this pin so that
    on removal of isolation, the VTT line is pulled high as a requirement
    for bringing the DDR3 out of self-refresh.

    This toggling is dependent on the IO isolation controlled by the
    wkup_m3. Without placing the IOs into isolation the DS0 states set for
    the pin will not be latched into effect during suspend.

    Signed-off-by: Dave Gerlach

    Dave Gerlach
     

27 Jan, 2014

3 commits

  • …ux-kernel/audio-display-linux-feature-tree into ti-linux-3.12.y

    TI-Feature: audio-display
    TI-Tree: git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
    TI-Branch: audio-display-ti-linux-3.12.y

    * 'audio-display-ti-linux-3.12.y' of git://git.ti.com/~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
    OMAPDSS: DISPC: Preload more data in pipeline DMAs for OMAP4+ SoCs
    ARM: omap2plus_defconfig: Add VPFE and OV2659
    ARM: AM437x: dts: add vpfe and ov2659 to epos and gp evm
    Media: platform: Add ti-vpfe driver for AM437x device
    Media: sensor: Add Omnivision OV2659 driver
    ARM: AM437x: dts: add vpfe[0,1] module DT entries

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • …-linux-feature-tree into ti-linux-3.12.y

    TI-Feature: power_management_base
    TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
    TI-Branch: pm-ti-linux-3.12.y

    * 'pm-ti-linux-3.12.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree:
    ARM: AM33XX: Add CPU idle support
    ARM: AM33XX: Bump firmware version requirement for CPU idle
    ARM: AM33XX: Add noirq versions of mailbox commands
    ARM: AM33XX: Make sleep/resume actions configurable
    ARM: AM33XX: Remove unnecessary delays from suspend/resume path
    ARM: AM33XX: Simplify EMIF config restore
    ARM: AM33XX: Don't rewrite SDRAM_CONFIG register for DDR2 systems
    ARM: AM33XX: Fix compile errors with !CONFIG_SUSPEND

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • The mailbox framework is used to send messages between the A8 and the
    M3 PM coprocessor. In order to support CPU idle, the messages need to
    be sent when IRQs are disabled, preventing the use of spin_lock_bh.
    Make a noirq version of the functions required that do not attempt
    to take such a lock.

    Signed-off-by: Russ Dill

    Russ Dill
     

26 Jan, 2014

4 commits

  • …ux-stable into ti-linux-3.12.y

    This is the 3.12.9 stable release

    * tag 'v3.12.9' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (28 commits)
    Linux 3.12.9
    ARM: 7938/1: OMAP4/highbank: Flush L2 cache before disabling
    drm/i915: Don't grab crtc mutexes in intel_modeset_gem_init()
    ARM: 7934/1: DT/kernel: fix arch_match_cpu_phys_id to avoid erroneous match
    serial: amba-pl011: use port lock to guard control register access
    mm: Make {,set}page_address() static inline if WANT_PAGE_VIRTUAL
    md/raid5: Fix possible confusion when multiple write errors occur.
    md/raid10: fix two bugs in handling of known-bad-blocks.
    md/raid10: fix bug when raid10 recovery fails to recover a block.
    md: fix problem when adding device to read-only array with bitmap.
    drm/i915: fix DDI PLLs HW state readout code
    nilfs2: fix segctor bug that causes file system corruption
    mm: fix crash when using XFS on loopback
    crash_dump: fix compilation error (on MIPS at least)
    ftrace/x86: Load ftrace_ops in parameter not the variable holding it
    thp: fix copy_page_rep GPF by testing is_huge_zero_pmd once only
    SELinux: Fix possible NULL pointer dereference in selinux_inode_permission()
    writeback: Fix data corruption on NFS
    hwmon: (coretemp) Fix truncated name of alarm attributes
    i2c: Re-instate body of i2c_parent_is_i2c_adapter()
    ...

    Signed-off-by: Dan Murphy <DMurphy@ti.com>

    Dan Murphy
     
  • commit f92f455f67fef27929e6043499414605b0c94872 upstream.

    {,set}page_address() are macros if WANT_PAGE_VIRTUAL. If
    !WANT_PAGE_VIRTUAL, they're plain C functions.

    If someone calls them with a void *, this pointer is auto-converted to
    struct page * if !WANT_PAGE_VIRTUAL, but causes a build failure on
    architectures using WANT_PAGE_VIRTUAL (arc, m68k and sparc64):

    drivers/md/bcache/bset.c: In function `__btree_sort':
    drivers/md/bcache/bset.c:1190: warning: dereferencing `void *' pointer
    drivers/md/bcache/bset.c:1190: error: request for member `virtual' in something not a structure or union

    Convert them to static inline functions to fix this. There are already
    plenty of users of struct page members inside , so there's
    no reason to keep them as macros.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Michael S. Tsirkin
    Tested-by: Guenter Roeck
    Tested-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • commit 5a610fcc7390ee60308deaf09426ada87a1eeec2 upstream.

    In file included from kernel/crash_dump.c:2:0:
    include/linux/crash_dump.h:22:27: error: unknown type name `pgprot_t'

    when CONFIG_CRASH_DUMP=y

    The error was traced back to commit 9cb218131de1 ("vmcore: introduce
    remap_oldmem_pfn_range()")

    include to get the missing definition

    Signed-off-by: Qais Yousef
    Reviewed-by: James Hogan
    Cc: Michael Holzheu
    Acked-by: Vivek Goyal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Qais Yousef
     
  • commit 2fac2b891f287691c27ee8d2eeecf39571b27fea upstream.

    The body of i2c_parent_is_i2c_adapter() is currently guarded by
    I2C_MUX. It should be CONFIG_I2C_MUX instead.

    Among potentially other problems, this resulted in i2c_lock_adapter()
    only locking I2C mux child adapters, and not the parent adapter. In
    turn, this could allow inter-mingling of mux child selection and I2C
    transactions, which could result in I2C transactions being directed to
    the wrong I2C bus, and possibly even switching between busses in the
    middle of a transaction.

    One concrete issue caused by this bug was corrupted HDMI EDID reads
    during boot on the NVIDIA Tegra Seaboard system, although this only
    became apparent in recent linux-next, when the boot timing was changed
    just enough to trigger the race condition.

    Fixes: 3923172b3d70 ("i2c: reduce parent checking to a NOOP in non-I2C_MUX case")
    Cc: Phil Carmody
    Signed-off-by: Stephen Warren
    Signed-off-by: Wolfram Sang
    Signed-off-by: Greg Kroah-Hartman

    Stephen Warren
     

25 Jan, 2014

1 commit


24 Jan, 2014

1 commit

  • When using device tree, driver configuration data need to be read from
    device node.
    Add support for getting the platform data information from the device
    tree information stored in the .dtb file in case it exists.

    Change-Id: I74f7f869fc257a057edb9f35c5fd8cbafb810164
    Signed-off-by: Eyal Reizer
    Signed-off-by: bvijay

    Eyal Reizer
     

18 Jan, 2014

4 commits

  • …x-stable into ti-linux-3.12.y

    This is the 3.12.8 stable release

    * tag 'v3.12.8' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (78 commits)
    Linux 3.12.8
    sched: Guarantee new group-entities always have weight
    sched: Fix hrtimer_cancel()/rq->lock deadlock
    sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
    sched: Fix race on toggling cfs_bandwidth_used
    x86, fpu, amd: Clear exceptions in AMD FXSAVE workaround
    netfilter: nf_nat: fix access to uninitialized buffer in IRC NAT helper
    netfilter: fix wrong byte order in nf_ct_seqadj_set internal information
    SCSI: sd: Reduce buffer size for vpd request
    intel_pstate: Add X86_FEATURE_APERFMPERF to cpu match parameters.
    mac80211: move "bufferable MMPDU" check to fix AP mode scan
    ACPI / Battery: Add a _BIX quirk for NEC LZ750/LS
    ACPI / TPM: fix memory leak when walking ACPI namespace
    mfd: rtsx_pcr: Disable interrupts before cancelling delayed works
    leds: lp5521/5523: Remove duplicate mutex
    clk: exynos5250: fix sysmmu_mfc{l,r} gate clocks
    clk: samsung: exynos5250: Add CLK_IGNORE_UNUSED flag for the sysreg clock
    clk: samsung: exynos5250: Add MDMA0 clocks
    clk: samsung: exynos5250: Fix ACP gate register offset
    clk: samsung: exynos4: Correct SRC_MFC register
    ...

    Signed-off-by: Dan Murphy <dmurphy@ti.com>

    Dan Murphy
     
  • …x-stable into ti-linux-3.12.y

    This is the 3.12.7 stable release

    * tag 'v3.12.7' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (154 commits)
    Linux 3.12.7
    sh: add EXPORT_SYMBOL(min_low_pfn) and EXPORT_SYMBOL(max_low_pfn) to sh_ksyms_32.c
    ext4: fix bigalloc regression
    ACPIPHP / radeon / nouveau: Fix VGA switcheroo problem related to hotplug
    nouveau_acpi: convert acpi_get_handle() to acpi_has_method()
    aio/migratepages: make aio migrate pages sane
    aio: clean up and fix aio_setup_ring page mapping
    clocksource: dw_apb_timer_of: Fix support for dts binding "snps,dw-apb-timer"
    clocksource: dw_apb_timer_of: Fix read_sched_clock
    selinux: process labeled IPsec TCP SYN-ACK packets properly in selinux_ip_postroute()
    selinux: look for IPsec labels on both inbound and outbound packets
    sh: always link in helper functions extracted from libgcc
    gpio: msm: Fix irq mask/unmask by writing bits instead of numbers
    gpio: twl4030: Fix regression for twl gpio LED output
    sh-pfc: Fix PINMUX_GPIO macro
    jbd2: don't BUG but return ENOSPC if a handle runs out of space
    s390/3270: fix allocation of tty3270_screen structure
    ARM: sun7i: dt: Fix interrupt trigger types
    memcg: fix memcg_size() calculation
    GFS2: Fix incorrect invalidation for DIO/buffered I/O
    ...

    Conflicts:
    arch/arm/mach-omap2/omap_hwmod_7xx_data.c
    drivers/usb/musb/musb_core.c

    Signed-off-by: Dan Murphy <dmurphy@ti.com>

    Dan Murphy
     
  • …x-stable into ti-linux-3.12.y

    This is the 3.12.6 stable release

    * tag 'v3.12.6' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (120 commits)
    Linux 3.12.6
    ARM: OMAP2+: hwmod: Fix SOFTRESET logic
    drm/i915/vlv: fix up broken precision in vlv_crtc_clock_get
    drm/i915/vlv: add VLV specific clock_get function v3
    i915/vlv: untangle integrated clock source handling v4
    Btrfs: fix lockdep error in async commit
    Btrfs: fix a crash when running balance and defrag concurrently
    Btrfs: do not run snapshot-aware defragment on error
    Btrfs: take ordered root lock when removing ordered operations inode
    Btrfs: stop using vfs_read in send
    Btrfs: fix incorrect inode acl reset
    Btrfs: fix hole check in log_one_extent
    Btrfs: fix memory leak of chunks' extent map
    Btrfs: reset intwrite on transaction abort
    Btrfs: do a full search everytime in btrfs_search_old_slot
    Revert "net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST"
    Input: elantech - add support for newer (August 2013) devices
    NFSv4 wait on recovery for async session errors
    sc1200_wdt: Fix oops
    staging: comedi: ssv_dnp: use comedi_dio_update_state()
    ...

    Conflicts:
    arch/arm/mach-omap2/omap_hwmod.c
    drivers/usb/musb/musb_cppi41.c

    Signed-off-by: Dan Murphy <dmurphy@ti.com>

    Dan Murphy
     
  • …x-stable into ti-linux-3.12.y

    This is the 3.12.5 stable release

    * tag 'v3.12.5' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (64 commits)
    Linux 3.12.5
    crypto: scatterwalk - Use sg_chain_ptr on chain entries
    drivers/char/i8k.c: add Dell XPLS L421X
    USB: cdc-acm: Added support for the Lenovo RD02-D400 USB Modem
    USB: spcp8x5: correct handling of CS5 setting
    USB: mos7840: correct handling of CS5 setting
    USB: ftdi_sio: fixed handling of unsupported CSIZE setting
    USB: pl2303: fixed handling of CS5 setting
    n_tty: Fix missing newline echo
    mei: add 9 series PCH mei device ids
    mei: me: add Lynx Point Wellsburg work station device id
    Input: mousedev - allow disabling even without CONFIG_EXPERT
    Input: allow deselecting serio drivers even without CONFIG_EXPERT
    tg3: avoid double-freeing of rx data memory
    iwlwifi: dvm: don't override mac80211's queue setting
    SCSI: Disable WRITE SAME for RAID and virtual host adapter drivers
    x86-64, build: Always pass in -mno-sse
    net: update consumers of MSG_MORE to recognize MSG_SENDPAGE_NOTLAST
    irq: Enable all irqs unconditionally in irq_resume
    Update of blkg_stat and blkg_rwstat may happen in bh context. While u64_stats_fetch_retry is only preempt_disable on 32bit UP system. This is not enough to avoid preemption by bh and may read strange 64 bit value.
    ...

    Signed-off-by: Dan Murphy <dmurphy@ti.com>

    Dan Murphy
     

17 Jan, 2014

2 commits

  • …-linux-feature-tree into ti-linux-3.12.y

    TI-Feature: power_management_base
    TI-Tree: git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree.git
    TI-Branch: pm-ti-linux-3.12.y

    * 'pm-ti-linux-3.12.y' of git://git.ti.com/~kristo/ti-linux-kernel/pm-linux-feature-tree:
    ARM: dts: am4372: Add voltage-tolerance to cpu0 node
    opp-modifier: Remove unused compat string
    ARM: dts: AM4372: Add efuse device entry for OPP and add higher OPPs
    ARM: dts: am33xx: Change am33xx compat for opp-modifier
    opp-modifier: Add AM4372 support to omap-opp-modifier driver
    opp-modifier: Add support for different SoC device ids
    arm: omap: wkup_m3: use FW_ACTION_HOTPLUG

    Conflicts:
    arch/arm/boot/dts/am4372.dtsi

    Signed-off-by: Dan Murphy <dmurphy@ti.com>

    Dan Murphy
     
  • Add compatible string and devrev_to_opp_rev translation function
    specific to AM4372 eFuse to add support.

    Signed-off-by: Dave Gerlach

    Dave Gerlach
     

16 Jan, 2014

4 commits

  • [ Upstream commit 7a7ffbabf99445704be01bff5d7e360da908cf8e ]

    VM to VM GSO traffic is broken if it goes through VXLAN or GRE
    tunnel and the physical NIC on the host supports hardware VXLAN/GRE
    GSO offload (e.g. bnx2x and next-gen mlx4).

    Two issues -
    (VXLAN) VM traffic has SKB_GSO_DODGY and SKB_GSO_UDP_TUNNEL with
    SKB_GSO_TCP/UDP set depending on the inner protocol. GSO header
    integrity check fails in udp4_ufo_fragment if inner protocol is
    TCP. Also gso_segs is calculated incorrectly using skb->len that
    includes tunnel header. Fix: robust check should only be applied
    to the inner packet.

    (VXLAN & GRE) Once GSO header integrity check passes, NULL segs
    is returned and the original skb is sent to hardware. However the
    tunnel header is already pulled. Fix: tunnel header needs to be
    restored so that hardware can perform GSO properly on the original
    packet.

    Signed-off-by: Wei-Chun Chao
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Wei-Chun Chao
     
  • [ Upstream commit 2205369a314e12fcec4781cc73ac9c08fc2b47de ]

    When the vlan code detects that the real device can do TX VLAN offloads
    in hardware, it tries to arrange for the real device's header_ops to
    be invoked directly.

    But it does so illegally, by simply hooking the real device's
    header_ops up to the VLAN device.

    This doesn't work because we will end up invoking a set of header_ops
    routines which expect a device type which matches the real device, but
    will see a VLAN device instead.

    Fix this by providing a pass-thru set of header_ops which will arrange
    to pass the proper real device instead.

    To facilitate this add a dev_rebuild_header(). There are
    implementations which provide a ->cache and ->create but not a
    ->rebuild (f.e. PLIP). So we need a helper function just like
    dev_hard_header() to avoid crashes.

    Use this helper in the one existing place where the
    header_ops->rebuild was being invoked, the neighbour code.

    With lots of help from Florian Westphal.

    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    David S. Miller
     
  • [ Upstream commit 0e3da5bb8da45890b1dc413404e0f978ab71173e ]

    ipgre_header_parse() needs to parse the tunnel's ip header and it
    uses mac_header to locate the iphdr. This got broken when gre tunneling
    was refactored as mac_header is no longer updated to point to iphdr.
    Introduce skb_pop_mac_header() helper to do the mac_header assignment
    and use it in ipgre_rcv() to fix msg_name parsing.

    Bug introduced in commit c54419321455 (GRE: Refactor GRE tunneling code.)

    Cc: Pravin B Shelar
    Signed-off-by: Timo Teräs
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Timo Teräs
     
  • [ Upstream commit 12663bfc97c8b3fdb292428105dd92d563164050 ]

    unix_dgram_recvmsg() will hold the readlock of the socket until recv
    is complete.

    In the same time, we may try to setsockopt(SO_PEEK_OFF) which will hang until
    unix_dgram_recvmsg() will complete (which can take a while) without allowing
    us to break out of it, triggering a hung task spew.

    Instead, allow set_peek_off to fail, this way userspace will not hang.

    Signed-off-by: Sasha Levin
    Acked-by: Pavel Emelyanov
    Signed-off-by: David S. Miller
    Signed-off-by: Greg Kroah-Hartman

    Sasha Levin
     

10 Jan, 2014

11 commits

  • commit f244d8b623dae7a7bc695b0336f67729b95a9736 upstream.

    The changes in the ACPI-based PCI hotplug (ACPIPHP) subsystem made
    during the 3.12 development cycle uncovered a problem with VGA
    switcheroo that on some systems, when the device-specific method
    (ATPX in the radeon case, _DSM in the nouveau case) is used to turn
    off the discrete graphics, the BIOS generates ACPI hotplug events for
    that device and those events cause ACPIPHP to attempt to remove the
    device from the system (they are events for a device that was present
    previously and is not present any more, so that's what should be done
    according to the spec). Then, the system stops functioning correctly.

    Since the hotplug events in question were simply silently ignored
    previously, the least intrusive way to address that problem is to
    make ACPIPHP ignore them again. For this purpose, introduce a new
    ACPI device flag, no_hotplug, and modify ACPIPHP to ignore hotplug
    events for PCI devices whose ACPI companions have that flag set.
    Next, make the radeon and nouveau switcheroo detection code set the
    no_hotplug flag for the discrete graphics' ACPI companion.

    Fixes: bbd34fcdd1b2 (ACPI / hotplug / PCI: Register all devices under the given bridge)
    References: https://bugzilla.kernel.org/show_bug.cgi?id=61891
    References: https://bugzilla.kernel.org/show_bug.cgi?id=64891
    Reported-and-tested-by: Mike Lothian
    Reported-and-tested-by:
    Reported-and-tested-by: Joaquín Aramendía
    Cc: Alex Deucher
    Cc: Dave Airlie
    Cc: Takashi Iwai
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Greg Kroah-Hartman

    Rafael J. Wysocki
     
  • commit 8e321fefb0e60bae4e2a28d20fc4fa30758d27c6 upstream.

    The arbitrary restriction on page counts offered by the core
    migrate_page_move_mapping() code results in rather suspicious looking
    fiddling with page reference counts in the aio_migratepage() operation.
    To fix this, make migrate_page_move_mapping() take an extra_count parameter
    that allows aio to tell the code about its own reference count on the page
    being migrated.

    While cleaning up aio_migratepage(), make it validate that the old page
    being passed in is actually what aio_migratepage() expects to prevent
    misbehaviour in the case of races.

    Signed-off-by: Benjamin LaHaise
    Signed-off-by: Greg Kroah-Hartman

    Benjamin LaHaise
     
  • commit af2c1401e6f9177483be4fad876d0073669df9df upstream.

    According to documentation on barriers, stores issued before a LOCK can
    complete after the lock implying that it's possible tlb_flush_pending
    can be visible after a page table update. As per revised documentation,
    this patch adds a smp_mb__before_spinlock to guarantee the correct
    ordering.

    Signed-off-by: Mel Gorman
    Acked-by: Paul E. McKenney
    Reviewed-by: Rik van Riel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Mel Gorman
     
  • commit 20841405940e7be0617612d521e206e4b6b325db upstream.

    There are a few subtle races, between change_protection_range (used by
    mprotect and change_prot_numa) on one side, and NUMA page migration and
    compaction on the other side.

    The basic race is that there is a time window between when the PTE gets
    made non-present (PROT_NONE or NUMA), and the TLB is flushed.

    During that time, a CPU may continue writing to the page.

    This is fine most of the time, however compaction or the NUMA migration
    code may come in, and migrate the page away.

    When that happens, the CPU may continue writing, through the cached
    translation, to what is no longer the current memory location of the
    process.

    This only affects x86, which has a somewhat optimistic pte_accessible.
    All other architectures appear to be safe, and will either always flush,
    or flush whenever there is a valid mapping, even with no permissions
    (SPARC).

    The basic race looks like this:

    CPU A CPU B CPU C

    load TLB entry
    make entry PTE/PMD_NUMA
    fault on entry
    read/write old page
    start migrating page
    change PTE/PMD to new page
    read/write old page [*]
    flush TLB
    reload TLB from new entry
    read/write new page
    lose data

    [*] the old page may belong to a new user at this point!

    The obvious fix is to flush remote TLB entries, by making sure that
    pte_accessible aware of the fact that PROT_NONE and PROT_NUMA memory may
    still be accessible if there is a TLB flush pending for the mm.

    This should fix both NUMA migration and compaction.

    [mgorman@suse.de: fix build]
    Signed-off-by: Rik van Riel
    Signed-off-by: Mel Gorman
    Cc: Alex Thorlton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Rik van Riel
     
  • commit de466bd628e8d663fdf3f791bc8db318ee85c714 upstream.

    do_huge_pmd_numa_page() handles the case where there is parallel THP
    migration. However, by the time it is checked the NUMA hinting
    information has already been disrupted. This patch adds an earlier
    check with some helpers.

    Signed-off-by: Mel Gorman
    Reviewed-by: Rik van Riel
    Cc: Alex Thorlton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Mel Gorman
     
  • commit f78dea064c5f7de07de4912a6e5136dbc443d614 upstream.

    Certain drives cannot handle queued TRIM commands properly, even
    though support is indicated in the IDENTIFY DEVICE buffer. This patch
    allows for disabling the commands for the affected drives and apply it
    to the Micron/Crucial M500 SSDs which exhibit incorrect protocol
    behavior when issued queued TRIM commands, which could lead to silent
    data corruption.

    tj: Merged two unnecessarily split patches and made minor edits
    including shortening horkage name.

    Signed-off-by: Marc Carino
    Signed-off-by: Tejun Heo
    Link: http://lkml.kernel.org/g/1387246554-7311-1-git-send-email-marc.ceeeee@gmail.com
    Signed-off-by: Greg Kroah-Hartman

    Marc Carino
     
  • commit f60900f2609e893c7f8d0bccc7ada4947dac4cd5 upstream.

    Commit 2171364d1a92 ("powerpc: Add HWCAP2 aux entry") introduced a new
    AT_ auxv entry type AT_HWCAP2 but failed to update AT_VECTOR_SIZE_BASE
    accordingly.

    Signed-off-by: Ard Biesheuvel
    Fixes: 2171364d1a92 (powerpc: Add HWCAP2 aux entry)
    Acked-by: Michael Neuling
    Cc: Nishanth Aravamudan
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Ard Biesheuvel
     
  • commit d00adcc8ae9e22eca9d8af5f66c59ad9a74c90ec upstream.

    Fixes rendering corruption due to incorrect
    gfx configuration.

    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=63599

    Signed-off-by: Alex Deucher
    Signed-off-by: Greg Kroah-Hartman

    Alex Deucher
     
  • commit 439a1cfffe2c1a06e5a6394ccd5d18a8e89b15d3 upstream.

    This will allow userspace to correctly program the PA_SC_RASTER_CONFIG
    register, so it can be considered a fix.

    Signed-off-by: Marek Olšák
    Signed-off-by: Alex Deucher
    Signed-off-by: Greg Kroah-Hartman

    Marek Olšák
     
  • commit 95cadace8f3959282e76ebf8b382bd0930807d2c upstream.

    This patch allows FILEIO to update hw_max_sectors based on the current
    max_bytes_per_io. This is required because vfs_[writev,readv]() can accept
    a maximum of 2048 iovecs per call, so the enforced hw_max_sectors really
    needs to be calculated based on block_size.

    This addresses a >= v3.5 bug where block_size=512 was rejecting > 1M
    sized I/O requests, because FD_MAX_SECTORS was hardcoded to 2048 for
    the block_size=4096 case.

    (v2: Use max_bytes_per_io instead of ->update_hw_max_sectors)

    Reported-by: Henrik Goldman
    Signed-off-by: Nicholas Bellinger
    Signed-off-by: Greg Kroah-Hartman

    Nicholas Bellinger
     
  • commit c97102ba96324da330078ad8619ba4dfe840dbe3 upstream.

    Commit 1b3a5d02ee07 ("reboot: move arch/x86 reboot= handling to generic
    kernel") moved reboot= handling to generic code. In the process it also
    removed the code in native_machine_shutdown() which are moving reboot
    process to reboot_cpu/cpu0.

    I guess that thought must have been that all reboot paths are calling
    migrate_to_reboot_cpu(), so we don't need this special handling. But
    kexec reboot path (kernel_kexec()) is not calling
    migrate_to_reboot_cpu() so above change broke kexec. Now reboot can
    happen on non-boot cpu and when INIT is sent in second kerneo to bring
    up BP, it brings down the machine.

    So start calling migrate_to_reboot_cpu() in kexec reboot path to avoid
    this problem.

    Bisected by WANG Chao.

    Reported-by: Matthew Whitehead
    Reported-by: Dave Young
    Signed-off-by: Vivek Goyal
    Tested-by: Baoquan He
    Tested-by: WANG Chao
    Acked-by: H. Peter Anvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Vivek Goyal
     

08 Jan, 2014

2 commits