07 Mar, 2015

10 commits

  • Pull drm fixes from Dave Airlie:
    "Radeon, imx, msm, and i915 fixes.

    The msm, imx and i915 ones are fairly run of the mill.

    Radeon had some DP audio and posting reads for irq fixes, along with a
    fix for 32-bit kernels with new cards, we were using unsigned long to
    represent GPU side memory space, but since that changed size on 32 vs
    64 cards with lots of VRAM failed, so the change has no effect on
    x86-64, just moves to using uint64_t instead"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (35 commits)
    drm/msm: kexec fixes
    drm/msm/mdp5: fix cursor blending
    drm/msm/mdp5: fix cursor ROI
    drm/msm/atomic: Don't leak atomic commit object when commit fails
    drm/msm/mdp5: Avoid flushing registers when CRTC is disabled
    drm/msm: update generated headers (add 6th lm.base entry)
    drm/msm/mdp5: fixup "drm/msm: fix fallout of atomic dpms changes"
    drm/ttm: device address space != CPU address space
    drm/mm: Support 4 GiB and larger ranges
    drm/i915: gen4: work around hang during hibernation
    drm/i915: Check for driver readyness before handling an underrun interrupt
    drm/radeon: fix interlaced modes on DCE8
    drm/radeon: fix DRM_IOCTL_RADEON_CS oops
    drm/radeon: do a posting read in cik_set_irq
    drm/radeon: do a posting read in si_set_irq
    drm/radeon: do a posting read in evergreen_set_irq
    drm/radeon: do a posting read in r600_set_irq
    drm/radeon: do a posting read in rs600_set_irq
    drm/radeon: do a posting read in r100_set_irq
    radeon/audio: fix DP audio on DCE6
    ...

    Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "Outside of misc fixes, Filipe has a few fsync corners and we're
    pulling in one more of Josef's fixes from production use here"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs:__add_inode_ref: out of bounds memory read when looking for extended ref.
    Btrfs: fix data loss in the fast fsync path
    Btrfs: remove extra run_delayed_refs in update_cowonly_root
    Btrfs: incremental send, don't rename a directory too soon
    btrfs: fix lost return value due to variable shadowing
    Btrfs: do not ignore errors from btrfs_lookup_xattr in do_setxattr
    Btrfs: fix off-by-one logic error in btrfs_realloc_node
    Btrfs: add missing inode update when punching hole
    Btrfs: abort the transaction if we fail to update the free space cache inode
    Btrfs: fix fsync race leading to ordered extent memory leaks

    Linus Torvalds
     
  • Pull livepatching fix from Jiri Kosina:
    "Fix an RCU unlock misplacement in live patching infrastructure, from
    Peter Zijlstra"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching:
    livepatch: fix RCU usage in klp_find_external_symbol()

    Linus Torvalds
     
  • Pull thermal management fixes from Eduardo Valentin:
    "Specifics:

    - adding Lukasz as maintainer of samsung thermal driver.
    - driver fixes: exynos and int430x.
    - one fix in the exynos cpufreq driver related to cpu cooling (acked
    by cpufreq maintainer).
    - fix default sysfs attributes of cooling devices

    Note: I am sending this pull on Rui's behalf while he fixes issues in his Linux box"

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
    thermal: Make sysfs attributes of cooling devices default attributes
    Thermal/int340x: Fix memleak for aux trip
    MAINTAINERS: Add entry for SAMSUNG THERMAL DRIVER
    cpufreq: exynos: Use simple approach to asses if cpu cooling can be used
    thermal: exynos: Fix wrong control of power down detection mode for Exynos7

    Linus Torvalds
     
  • two fixes, both cc'd stable.

    * tag 'drm-intel-fixes-2015-03-05' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: gen4: work around hang during hibernation
    drm/i915: Check for driver readyness before handling an underrun interrupt

    Dave Airlie
     
  • Linux 4.0-rc2

    Merging this manually as the i915 change is in it,
    and intel fixes are on top of this

    Dave Airlie
     
  • Pull sound fixes from Takashi Iwai:
    "Here are a few more ASoC changes that have been gathered since rc1,
    but it's still fairly calm over all. The only largish LOC is found in
    atmel driver, and it's just a removal of broken non-DT stuff. The
    rest are all small driver-specific fixes, nothing to worry much"

    * tag 'sound-4.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (26 commits)
    ALSA: hda - One more Dell macine needs DELL1_MIC_NO_PRESENCE quirk
    ALSA: opl3: small array underflow
    ALSA: line6: Clamp values correctly
    ALSA: msnd: add some missing curly braces
    ASoC: omap-pcm: Correct dma mask
    ASoC: simple-card: Add a NULL pointer check in asoc_simple_card_dai_link_of
    ASoC: sam9g20_wm8731: drop machine_is_xxx
    ALSA: dice: fix wrong offsets for Dice interface
    ALSA: oxfw: fix a condition and return code in start_stream()
    ASoC: OMAP: mcbsp: Fix CLKX and CLKR pinmux when used as inputs
    ASoC: rt5677: Correct the routing paths of that after IF1/2 DACx Mux
    ASoC: sta32x: fix register range in regmap.
    ASoC: rt5670: Set RT5670_IRQ_CTRL1 non volatile
    ASoC: Intel: reset the DSP while suspending
    ASoC: Intel: save and restore the CSR register
    ASoC: Intel: update MMX ID to 3
    ASoC: max98357a: Add missing header files
    ASoC: cirrus: tlv320aic23 needs I2C
    ASoC: Samsung: add missing I2C/SPI dependencies
    ASoC: rt5670: Fix the speaker mono output issue
    ...

    Linus Torvalds
     
  • Pull power management and ACPI fixes from Rafael Wysocki:
    "These are fixes for recent regressions (ACPI resources management,
    suspend-to-idle), stable-candidate fixes (ACPI backlight), fixes
    related to the wakeup IRQ management changes made in v3.18, other
    fixes (suspend-to-idle, cpufreq ppc driver) and a couple of cleanups
    (suspend-to-idle, generic power domains, ACPI backlight).

    Specifics:

    - Fix ACPI resources management problems introduced by the recent
    rework of the code in question (Jiang Liu) and a build issue
    introduced by those changes (Joachim Nilsson).

    - Fix a recent suspend-to-idle regression on systems where entering
    idle states causes local timers to stop, prevent suspend-to-idle
    from crashing in restricted configurations (no cpuidle driver,
    cpuidle disabled etc.) and clean up the idle loop somewhat while at
    it (Rafael J Wysocki).

    - Fix build problem in the cpufreq ppc driver (Geert Uytterhoeven).

    - Allow the ACPI backlight driver module to be loaded if ACPI is
    disabled which helps the i915 driver in those configurations
    (stable-candidate) and change the code to help debug unusual use
    cases (Chris Wilson).

    - Wakeup IRQ management changes in v3.18 caused some drivers on the
    at91 platform to trigger a warning from the IRQ core related to an
    unexpected combination of interrupt action handler flags. However,
    on at91 a timer IRQ is shared with some other devices (including
    system wakeup ones) and that leads to the unusual combination of
    flags in question.

    To make it possible to avoid the warning introduce a new interrupt
    action handler flag (which can be used by drivers to indicate the
    special case to the core) and rework the problematic at91 drivers
    to use it and work as expected during system suspend/resume. From
    Boris Brezillon, Rafael J Wysocki and Mark Rutland.

    - Clean up the generic power domains subsystem's debugfs interface
    (Kevin Hilman)"

    * tag 'pm+acpi-4.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    genirq / PM: describe IRQF_COND_SUSPEND
    tty: serial: atmel: rework interrupt and wakeup handling
    watchdog: at91sam9: request the irq with IRQF_NO_SUSPEND
    cpuidle / sleep: Use broadcast timer for states that stop local timer
    clk: at91: implement suspend/resume for the PMC irqchip
    rtc: at91rm9200: rework wakeup and interrupt handling
    rtc: at91sam9: rework wakeup and interrupt handling
    PM / wakeup: export pm_system_wakeup symbol
    genirq / PM: Add flag for shared NO_SUSPEND interrupt lines
    ACPI / video: Propagate the error code for acpi_video_register
    ACPI / video: Load the module even if ACPI is disabled
    PM / Domains: cleanup: rename gpd -> genpd in debugfs interface
    cpufreq: ppc: Add missing #include
    x86/PCI/ACPI: Relax ACPI resource descriptor checks to work around BIOS bugs
    x86/PCI/ACPI: Ignore resources consumed by host bridge itself
    cpuidle: Clean up fallback handling in cpuidle_idle_call()
    cpuidle / sleep: Do sanity checks in cpuidle_enter_freeze() too
    idle / sleep: Avoid excessive disabling and enabling interrupts
    PCI: versatile: Update for list_for_each_entry() API change
    genirq / PM: better describe IRQF_NO_SUSPEND semantics

    Linus Torvalds
     
  • Pull file locking fix from Jeff Layton:
    "Just a single patch to fix a memory leak that Daniel Wagner discovered
    while doing some testing with leases"

    * tag 'locks-v4.0-3' of git://git.samba.org/jlayton/linux:
    locks: fix fasync_struct memory leak in lease upgrade/downgrade handling

    Linus Torvalds
     
  • Pull NFS client bugfixes from Trond Myklebust:
    "Highlights include:

    - Fix a regression in the NFSv4 open state recovery code
    - Fix a regression in the NFSv4 close code
    - Fix regressions and side-effects of the loop-back mounted NFS fixes
    in 3.18, that cause the NFS read() syscall to return EBUSY.
    - Fix regressions around the readdirplus code and how it interacts
    with the VFS lazy unmount changes that went into v3.18.
    - Fix issues with out-of-order RPC call replies replacing updated
    attributes with stale ones (particularly after a truncate()).
    - Fix an underflow checking issue with RPC/RDMA credits
    - Fix a number of issues with the NFSv4 delegation return/free code.
    - Fix issues around stale NFSv4.1 leases when doing a mount"

    * tag 'nfs-for-4.0-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (24 commits)
    NFSv4.1: Clear the old state by our client id before establishing a new lease
    NFSv4: Fix a race in NFSv4.1 server trunking discovery
    NFS: Don't write enable new pages while an invalidation is proceeding
    NFS: Fix a regression in the read() syscall
    NFSv4: Ensure we skip delegations that are already being returned
    NFSv4: Pin the superblock while we're returning the delegation
    NFSv4: Ensure we honour NFS_DELEGATION_RETURNING in nfs_inode_set_delegation()
    NFSv4: Ensure that we don't reap a delegation that is being returned
    NFS: Fix stateid used for NFS v4 closes
    NFSv4: Don't call put_rpccred() under the rcu_read_lock()
    NFS: Don't require a filehandle to refresh the inode in nfs_prime_dcache()
    NFSv3: Use the readdir fileid as the mounted-on-fileid
    NFS: Don't invalidate a submounted dentry in nfs_prime_dcache()
    NFSv4: Set a barrier in the update_changeattr() helper
    NFS: Fix nfs_post_op_update_inode() to set an attribute barrier
    NFS: Remove size hack in nfs_inode_attrs_need_update()
    NFSv4: Add attribute update barriers to delegreturn and pNFS layoutcommit
    NFS: Add attribute update barriers to NFS writebacks
    NFS: Set an attribute barrier on all updates
    NFS: Add attribute update barriers to nfs_setattr_update_inode()
    ...

    Linus Torvalds
     

06 Mar, 2015

18 commits

  • …roonie/sound into for-linus

    ASoC: Fixes for v4.0

    A few driver specific fixes here, none of them earth shattering in
    themselves, that have accumliated since the opening of the merge window.

    Takashi Iwai
     
  • Cc:
    BugLink: https://bugs.launchpad.net/bugs/1428947
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     
  • There is a missing lower bound check on "pitchbend" so it means we can
    read up to 6 elements before the start of the opl3_note_table[] array.

    Thanks to Clemens Ladisch for his help with this patch.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     
  • Improper arithmetics when calculting the address of the extended ref could
    lead to an out of bounds memory read and kernel panic.

    Signed-off-by: Quentin Casasnovas
    Reviewed-by: David Sterba
    cc: stable@vger.kernel.org # v3.7+
    Signed-off-by: Chris Mason

    Quentin Casasnovas
     
  • When using the fast file fsync code path we can miss the fact that new
    writes happened since the last file fsync and therefore return without
    waiting for the IO to finish and write the new extents to the fsync log.

    Here's an example scenario where the fsync will miss the fact that new
    file data exists that wasn't yet durably persisted:

    1. fs_info->last_trans_committed == N - 1 and current transaction is
    transaction N (fs_info->generation == N);

    2. do a buffered write;

    3. fsync our inode, this clears our inode's full sync flag, starts
    an ordered extent and waits for it to complete - when it completes
    at btrfs_finish_ordered_io(), the inode's last_trans is set to the
    value N (via btrfs_update_inode_fallback -> btrfs_update_inode ->
    btrfs_set_inode_last_trans);

    4. transaction N is committed, so fs_info->last_trans_committed is now
    set to the value N and fs_info->generation remains with the value N;

    5. do another buffered write, when this happens btrfs_file_write_iter
    sets our inode's last_trans to the value N + 1 (that is
    fs_info->generation + 1 == N + 1);

    6. transaction N + 1 is started and fs_info->generation now has the
    value N + 1;

    7. transaction N + 1 is committed, so fs_info->last_trans_committed
    is set to the value N + 1;

    8. fsync our inode - because it doesn't have the full sync flag set,
    we only start the ordered extent, we don't wait for it to complete
    (only in a later phase) therefore its last_trans field has the
    value N + 1 set previously by btrfs_file_write_iter(), and so we
    have:

    inode->last_trans last_trans_committed
    (N + 1) (N + 1)

    Which made us not log the last buffered write and exit the fsync
    handler immediately, returning success (0) to user space and resulting
    in data loss after a crash.

    This can actually be triggered deterministically and the following excerpt
    from a testcase I made for xfstests triggers the issue. It moves a dummy
    file across directories and then fsyncs the old parent directory - this
    is just to trigger a transaction commit, so moving files around isn't
    directly related to the issue but it was chosen because running 'sync' for
    example does more than just committing the current transaction, as it
    flushes/waits for all file data to be persisted. The issue can also happen
    at random periods, since the transaction kthread periodicaly commits the
    current transaction (about every 30 seconds by default).
    The body of the test is:

    _scratch_mkfs >> $seqres.full 2>&1
    _init_flakey
    _mount_flakey

    # Create our main test file 'foo', the one we check for data loss.
    # By doing an fsync against our file, it makes btrfs clear the 'needs_full_sync'
    # bit from its flags (btrfs inode specific flags).
    $XFS_IO_PROG -f -c "pwrite -S 0xaa 0 8K" \
    -c "fsync" $SCRATCH_MNT/foo | _filter_xfs_io

    # Now create one other file and 2 directories. We will move this second file
    # from one directory to the other later because it forces btrfs to commit its
    # currently open transaction if we fsync the old parent directory. This is
    # necessary to trigger the data loss bug that affected btrfs.
    mkdir $SCRATCH_MNT/testdir_1
    touch $SCRATCH_MNT/testdir_1/bar
    mkdir $SCRATCH_MNT/testdir_2

    # Make sure everything is durably persisted.
    sync

    # Write more 8Kb of data to our file.
    $XFS_IO_PROG -c "pwrite -S 0xbb 8K 8K" $SCRATCH_MNT/foo | _filter_xfs_io

    # Move our 'bar' file into a new directory.
    mv $SCRATCH_MNT/testdir_1/bar $SCRATCH_MNT/testdir_2/bar

    # Fsync our first directory. Because it had a file moved into some other
    # directory, this made btrfs commit the currently open transaction. This is
    # a condition necessary to trigger the data loss bug.
    $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/testdir_1

    # Now fsync our main test file. If the fsync succeeds, we expect the 8Kb of
    # data we wrote previously to be persisted and available if a crash happens.
    # This did not happen with btrfs, because of the transaction commit that
    # happened when we fsynced the parent directory.
    $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/foo

    # Simulate a crash/power loss.
    _load_flakey_table $FLAKEY_DROP_WRITES
    _unmount_flakey

    _load_flakey_table $FLAKEY_ALLOW_WRITES
    _mount_flakey

    # Now check that all data we wrote before are available.
    echo "File content after log replay:"
    od -t x1 $SCRATCH_MNT/foo

    status=0
    exit

    The expected golden output for the test, which is what we get with this
    fix applied (or when running against ext3/4 and xfs), is:

    wrote 8192/8192 bytes at offset 0
    XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
    wrote 8192/8192 bytes at offset 8192
    XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
    File content after log replay:
    0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
    *
    0020000 bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
    *
    0040000

    Without this fix applied, the output shows the test file does not have
    the second 8Kb extent that we successfully fsynced:

    wrote 8192/8192 bytes at offset 0
    XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
    wrote 8192/8192 bytes at offset 8192
    XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
    File content after log replay:
    0000000 aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa
    *
    0020000

    So fix this by skipping the fsync only if we're doing a full sync and
    if the inode's last_trans is last_trans_committed, or if
    the inode is already in the log. Also remove setting the inode's
    last_trans in btrfs_file_write_iter since it's useless/unreliable.

    Also because btrfs_file_write_iter no longer sets inode->last_trans to
    fs_info->generation + 1, don't set last_trans to 0 if we bail out and don't
    bail out if last_trans is 0, otherwise something as simple as the following
    example wouldn't log the second write on the last fsync:

    1. write to file

    2. fsync file

    3. fsync file
    |--> btrfs_inode_in_log() returns true and it set last_trans to 0

    4. write to file
    |--> btrfs_file_write_iter() no longers sets last_trans, so it
    remained with a value of 0
    5. fsync
    |--> inode->last_trans == 0, so it bails out without logging the
    second write

    A test case for xfstests will be sent soon.

    CC:
    Signed-off-by: Filipe Manana
    Signed-off-by: Chris Mason

    Filipe Manana
     
  • This got added with my dirty_bgs patch, it's not needed. Thanks,

    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • * pm-domains:
    PM / Domains: cleanup: rename gpd -> genpd in debugfs interface

    * pm-cpufreq:
    cpufreq: ppc: Add missing #include

    Rafael J. Wysocki
     
  • * acpi-video:
    ACPI / video: Propagate the error code for acpi_video_register
    ACPI / video: Load the module even if ACPI is disabled

    Rafael J. Wysocki
     
  • * irq-pm:
    genirq / PM: describe IRQF_COND_SUSPEND
    tty: serial: atmel: rework interrupt and wakeup handling
    watchdog: at91sam9: request the irq with IRQF_NO_SUSPEND
    clk: at91: implement suspend/resume for the PMC irqchip
    rtc: at91rm9200: rework wakeup and interrupt handling
    rtc: at91sam9: rework wakeup and interrupt handling
    PM / wakeup: export pm_system_wakeup symbol
    genirq / PM: Add flag for shared NO_SUSPEND interrupt lines
    genirq / PM: better describe IRQF_NO_SUSPEND semantics

    Rafael J. Wysocki
     
  • With certain restrictions it is possible for a wakeup device to share
    an IRQ with an IRQF_NO_SUSPEND user, and the warnings introduced by
    commit cab303be91dc47942bc25de33dc1140123540800 are spurious. The new
    IRQF_COND_SUSPEND flag allows drivers to tell the core when these
    restrictions are met, allowing spurious warnings to be silenced.

    This patch documents how IRQF_COND_SUSPEND is expected to be used,
    updating some of the text now made invalid by its addition.

    Signed-off-by: Mark Rutland
    Signed-off-by: Rafael J. Wysocki

    Mark Rutland
     
  • The IRQ line connected to the DBGU UART is often shared with a timer device
    which request the IRQ with IRQF_NO_SUSPEND.

    Since the UART driver is correctly disabling IRQs when entering suspend
    we can safely request the IRQ with IRQF_COND_SUSPEND so that irq core
    will not complain about mixing IRQF_NO_SUSPEND and !IRQF_NO_SUSPEND.

    Rework the interrupt handler to wake the system up when an interrupt
    happens on the DEBUG_UART while the system is suspended.

    Signed-off-by: Boris Brezillon
    Reviewed-by: Alexandre Belloni
    Acked-by: Nicolas Ferre
    Acked-by: Mark Rutland
    Signed-off-by: Rafael J. Wysocki

    Boris BREZILLON
     
  • The watchdog interrupt (only used when activating software watchdog)
    shouldn't be suspended when entering suspend mode, because it is shared
    with a timer device (which request the line with IRQF_NO_SUSPEND) and once
    the watchdog "Mode Register" has been written, it cannot be changed (which
    means we cannot disable the watchdog interrupt when entering suspend).

    Signed-off-by: Boris Brezillon
    Reviewed-by: Alexandre Belloni
    Acked-by: Guenter Roeck
    Acked-by: Nicolas Ferre
    Signed-off-by: Rafael J. Wysocki

    Boris BREZILLON
     
  • * suspend-to-idle:
    cpuidle / sleep: Use broadcast timer for states that stop local timer
    cpuidle: Clean up fallback handling in cpuidle_idle_call()
    cpuidle / sleep: Do sanity checks in cpuidle_enter_freeze() too
    idle / sleep: Avoid excessive disabling and enabling interrupts

    Rafael J. Wysocki
     
  • * acpi-resources:
    x86/PCI/ACPI: Relax ACPI resource descriptor checks to work around BIOS bugs
    x86/PCI/ACPI: Ignore resources consumed by host bridge itself
    PCI: versatile: Update for list_for_each_entry() API change

    Rafael J. Wysocki
     
  • Commit 381063133246 (PM / sleep: Re-implement suspend-to-idle handling)
    overlooked the fact that entering some sufficiently deep idle states
    by CPUs may cause their local timers to stop and in those cases it
    is necessary to switch over to a broadcast timer prior to entering
    the idle state. If the cpuidle driver in use does not provide
    the new ->enter_freeze callback for any of the idle states, that
    problem affects suspend-to-idle too, but it is not taken into account
    after the changes made by commit 381063133246.

    Fix that by changing the definition of cpuidle_enter_freeze() and
    re-arranging of the code in cpuidle_idle_call(), so the former does
    not call cpuidle_enter() any more and the fallback case is handled
    by cpuidle_idle_call() directly.

    Fixes: 381063133246 (PM / sleep: Re-implement suspend-to-idle handling)
    Reported-and-tested-by: Lorenzo Pieralisi
    Signed-off-by: Rafael J. Wysocki
    Acked-by: Peter Zijlstra (Intel)

    Rafael J. Wysocki
     
  • Pull x86 fixes from Ingo Molnar:
    "Misc fixes: EFI fixes, an Intel Quark fix, an asm fix and an FPU
    handling fix"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/fpu/xsaves: Fix improper uses of __ex_table
    x86/intel/quark: Select COMMON_CLK
    x86/asm/entry/64: Remove a bogus 'ret_from_fork' optimization
    firmware: dmi_scan: Fix dmi_len type
    efi/libstub: Fix boundary checking in efi_high_alloc()
    firmware: dmi_scan: Fix dmi scan to handle "End of Table" structure

    Linus Torvalds
     
  • Commit:

    f31a9f7c7169 ("x86/xsaves: Use xsaves/xrstors to save and restore xsave area")

    introduced alternative instructions for XSAVES/XRSTORS and commit:

    adb9d526e982 ("x86/xsaves: Add xsaves and xrstors support for booting time")

    added support for the XSAVES/XRSTORS instructions at boot time.

    Unfortunately both failed to properly protect them against faulting:

    The 'xstate_fault' macro will use the closest label named '1'
    backward and that ends up in the .altinstr_replacement section
    rather than in .text. This means that the kernel will never find
    in the __ex_table the .text address where this instruction might
    fault, leading to serious problems if userspace manages to
    trigger the fault.

    Signed-off-by: Quentin Casasnovas
    Signed-off-by: Jamie Iles
    [ Improved the changelog, fixed some whitespace noise. ]
    Acked-by: Borislav Petkov
    Acked-by: Linus Torvalds
    Cc:
    Cc: Allan Xavier
    Cc: H. Peter Anvin
    Cc: Thomas Gleixner
    Fixes: adb9d526e982 ("x86/xsaves: Add xsaves and xrstors support for booting time")
    Fixes: f31a9f7c7169 ("x86/xsaves: Use xsaves/xrstors to save and restore xsave area")
    Signed-off-by: Ingo Molnar

    Quentin Casasnovas
     
  • The commit 8bbc2a135b63 ("x86/intel/quark: Add Intel Quark
    platform support") introduced a minimal support of Intel Quark
    SoC. That allows to use core parts of the SoC. However, the SPI,
    I2C, and GPIO drivers can't be selected by kernel configuration
    because they depend on COMMON_CLK. The patch adds a COMMON_CLK
    selection to the platfrom definition to allow user choose the drivers.

    Signed-off-by: Andy Shevchenko
    Acked-by: Ong, Boon Leong
    Cc: Bryan O'Donoghue
    Cc: Darren Hart
    Fixes: 8bbc2a135b63 ("x86/intel/quark: Add Intel Quark platform support")
    Link: http://lkml.kernel.org/r/1425569044-2867-1-git-send-email-andriy.shevchenko@linux.intel.com
    Signed-off-by: Ingo Molnar

    Andy Shevchenko
     

05 Mar, 2015

12 commits

  • The usages of clamp() macro in sound/usb/line6/playback.c are just
    wrong, the low and high values are swapped.

    Reported-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • There were some curly braces intended here.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     
  • Default attributes are created when the device is registered. Attributes
    created after device registration can lead to race conditions, where user space
    (e.g. udev) sees the device but not the attributes.

    Signed-off-by: Matthias Kaehlcke
    Signed-off-by: Eduardo Valentin

    Matthias Kaehlcke
     
  • When thermal zone device register fails or on module exit, the memory
    for aux_trip is not freed. This change fixes this issue.

    Signed-off-by: Srinivas Pandruvada
    Signed-off-by: Eduardo Valentin

    Srinivas Pandruvada
     
  • 'ret_from_fork' checks TIF_IA32 to determine whether 'pt_regs' and
    the related state make sense for 'ret_from_sys_call'. This is
    entirely the wrong check. TS_COMPAT would make a little more
    sense, but there's really no point in keeping this optimization
    at all.

    This fixes a return to the wrong user CS if we came from int
    0x80 in a 64-bit task.

    Signed-off-by: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Linus Torvalds
    Cc: Oleg Nesterov
    Cc: Thomas Gleixner
    Cc:
    Link: http://lkml.kernel.org/r/4710be56d76ef994ddf59087aad98c000fbab9a4.1424989793.git.luto@amacapital.net
    [ Backported from tip:x86/asm. ]
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • Fixup some fallout of the fallout of atomic dpms, few mdp5 cursor
    fixes, fix a leak in error path, and some fixes for kexec

    * 'msm-fixes-4.0' of git://people.freedesktop.org/~robclark/linux:
    drm/msm: kexec fixes
    drm/msm/mdp5: fix cursor blending
    drm/msm/mdp5: fix cursor ROI
    drm/msm/atomic: Don't leak atomic commit object when commit fails
    drm/msm/mdp5: Avoid flushing registers when CRTC is disabled
    drm/msm: update generated headers (add 6th lm.base entry)
    drm/msm/mdp5: fixup "drm/msm: fix fallout of atomic dpms changes"

    Dave Airlie
     
  • In kexec environment, we are more likely to encounter irq's already
    enabled from previous environment. At which point we find that writes
    to disable/clear pending irq's are slightly less than useless without
    first enabling clocks.

    TODO: full blown state read-in so kexec'd kernel can inherit the mode
    already setup.

    Signed-off-by: Rob Clark

    Rob Clark
     
  • Seems like we just want BLEND_EN and not BLEND_TRANSP_EN (setting the
    latter results in black pixels in the cursor image treated as
    transparent).

    Signed-off-by: Rob Clark

    Rob Clark
     
  • If cursor is set near the edge of the screen, it is not valid to use the
    new cursor width/height as the ROI dimensions. Split out the ROI calc
    and use it both cursor_set and cursor_move.

    Signed-off-by: Rob Clark

    Rob Clark
     
  • If the atomic commit fails due to completion wait interruption the
    atomic commit object is not freed and is thus leaked. Free it.

    Signed-off-by: Laurent Pinchart
    Signed-off-by: Rob Clark

    Laurent Pinchart
     
  • When a CRTC is disabled, no CTL is allocated to it (CRTC->ctl == NULL);
    in that case we should not try to FLUSH registers and do nothing instead.

    This can happen when we try to move a cursor but the CRTC's CTL
    (CONTROL) has not been allocated yet (inactive CRTC).
    It can also happens when we .atomic_check()/.atomic_flush() on a
    disabled CRTC.

    A CTL needs to be kept as long as the CRTC is alive. Releasing it
    after the last VBlank is safer than in .atomic_flush().

    Signed-off-by: Stephane Viau
    Signed-off-by: Rob Clark

    Stephane Viau
     
  • Some target have up to 6 layer mixers (LM).
    Let the header file access the last LM's base address.

    Signed-off-by: Stephane Viau
    Signed-off-by: Rob Clark

    Stephane Viau