12 Jun, 2017

14 commits

  • We want the IIO fixes and other staging driver fixes in here as well.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Linus Torvalds
     
  • Pull key subsystem fixes from James Morris:
    "Here are a bunch of fixes for Linux keyrings, including:

    - Fix up the refcount handling now that key structs use the
    refcount_t type and the refcount_t ops don't allow a 0->1
    transition.

    - Fix a potential NULL deref after error in x509_cert_parse().

    - Don't put data for the crypto algorithms to use on the stack.

    - Fix the handling of a null payload being passed to add_key().

    - Fix incorrect cleanup an uninitialised key_preparsed_payload in
    key_update().

    - Explicit sanitisation of potentially secure data before freeing.

    - Fixes for the Diffie-Helman code"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (23 commits)
    KEYS: fix refcount_inc() on zero
    KEYS: Convert KEYCTL_DH_COMPUTE to use the crypto KPP API
    crypto : asymmetric_keys : verify_pefile:zero memory content before freeing
    KEYS: DH: add __user annotations to keyctl_kdf_params
    KEYS: DH: ensure the KDF counter is properly aligned
    KEYS: DH: don't feed uninitialized "otherinfo" into KDF
    KEYS: DH: forbid using digest_null as the KDF hash
    KEYS: sanitize key structs before freeing
    KEYS: trusted: sanitize all key material
    KEYS: encrypted: sanitize all key material
    KEYS: user_defined: sanitize key payloads
    KEYS: sanitize add_key() and keyctl() key payloads
    KEYS: fix freeing uninitialized memory in key_update()
    KEYS: fix dereferencing NULL payload with nonzero length
    KEYS: encrypted: use constant-time HMAC comparison
    KEYS: encrypted: fix race causing incorrect HMAC calculations
    KEYS: encrypted: fix buffer overread in valid_master_desc()
    KEYS: encrypted: avoid encrypting/decrypting stack buffers
    KEYS: put keyring if install_session_keyring_to_cred() fails
    KEYS: Delete an error message for a failed memory allocation in get_derived_key()
    ...

    Linus Torvalds
     
  • Commit abb2ea7dfd82 ("compiler, clang: suppress warning for unused
    static inline functions") just caused more warnings due to re-defining
    the 'inline' macro.

    So undef it before re-defining it, and also add the 'notrace' attribute
    like the gcc version that this is overriding does.

    Maybe this makes clang happier.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull randomness fixes from Ted Ts'o:
    "Improve performance by using a lockless update mechanism suggested by
    Linus, and make sure we refresh per-CPU entropy returned get_random_*
    as soon as the CRNG is initialized"

    * tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
    random: invalidate batched entropy after crng init
    random: use lockless method of accessing and updating f->reg_idx

    Linus Torvalds
     
  • Pull ext4 fixes from Ted Ts'o:
    "Fix various bug fixes in ext4 caused by races and memory allocation
    failures"

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: fix fdatasync(2) after extent manipulation operations
    ext4: fix data corruption for mmap writes
    ext4: fix data corruption with EXT4_GET_BLOCKS_ZERO
    ext4: fix quota charging for shared xattr blocks
    ext4: remove redundant check for encrypted file on dio write path
    ext4: remove unused d_name argument from ext4_search_dir() et al.
    ext4: fix off-by-one error when writing back pages before dio read
    ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff()
    ext4: keep existing extra fields when inode expands
    ext4: handle the rest of ext4_mb_load_buddy() ENOMEM errors
    ext4: fix off-by-in in loop termination in ext4_find_unwritten_pgoff()
    ext4: fix SEEK_HOLE
    jbd2: preserve original nofs flag during journal restart
    ext4: clear lockdep subtype for quota files on quota off

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "A few overdue GPIO patches for the v4.12 kernel.

    - Fix debounce logic on the Aspeed platform.

    - Fix the "virtual gpio" things on the Intel Crystal Cove.

    - Fix the blink counter selection on the MVEBU platform"

    * tag 'gpio-v4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: mvebu: fix gpio bank registration when pwm is used
    gpio: mvebu: fix blink counter register selection
    MAINTAINERS: remove self from GPIO maintainers
    gpio: crystalcove: Do not write regular gpio registers for virtual GPIOs
    gpio: aspeed: Don't attempt to debounce if disabled

    Linus Torvalds
     
  • Pull char/misc driver fixes from Greg KH:
    "Here are some small driver fixes for 4.12-rc5. Nothing major here,
    just some small bugfixes found by people testing, and a MAINTAINERS
    file update for the genwqe driver.

    All have been in linux-next with no reported issues"

    [ The cxl driver fix came in through the powerpc tree earlier ]

    * tag 'char-misc-4.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    cxl: Avoid double free_irq() for psl,slice interrupts
    mei: make sysfs modalias format similar as uevent modalias
    drivers: char: mem: Fix wraparound check to allow mappings up to the end
    MAINTAINERS: Change maintainer of genwqe driver
    goldfish_pipe: use GFP_ATOMIC under spin lock
    firmware: vpd: do not leak kobjects
    firmware: vpd: avoid potential use-after-free when destroying section
    firmware: vpd: do not leave freed section attributes to the list

    Linus Torvalds
     
  • Pull staging/IIO fixes from Greg KH:
    "These are mostly all IIO driver fixes, resolving a number of tiny
    issues. There's also a ccree and lustre fix in here as well, both fix
    problems found in those codebases.

    All have been in linux-next with no reported issues"

    * tag 'staging-4.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: ccree: fix buffer copy
    staging/lustre/lov: remove set_fs() call from lov_getstripe()
    staging: ccree: add CRYPTO dependency
    iio: adc: sun4i-gpadc-iio: fix parent device being used in devm function
    iio: light: ltr501 Fix interchanged als/ps register field
    iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's
    iio: trigger: fix NULL pointer dereference in iio_trigger_write_current()
    iio: adc: max9611: Fix attribute measure unit
    iio: adc: ti_am335x_adc: allocating too much in probe
    iio: adc: sun4i-gpadc-iio: Fix module autoload when OF devices are registered
    iio: adc: sun4i-gpadc-iio: Fix module autoload when PLATFORM devices are registered
    iio: proximity: as3935: fix iio_trigger_poll issue
    iio: proximity: as3935: fix AS3935_INT mask
    iio: adc: Max9611: checking for ERR_PTR instead of NULL in probe
    iio: proximity: as3935: recalibrate RCO after resume

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are some small USB fixes for 4.12-rc5

    They are for some reported issues in the chipidea and gadget drivers.
    Nothing major. All have been in linux-next for a while with no
    reported issues"

    * tag 'usb-4.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: gadget: udc: renesas_usb3: Fix PN_INT_ENA disabling timing
    usb: gadget: udc: renesas_usb3: lock for PN_ registers access
    usb: gadget: udc: renesas_usb3: fix deadlock by spinlock
    usb: gadget: udc: renesas_usb3: fix pm_runtime functions calling
    usb: gadget: f_mass_storage: Serialize wake and sleep execution
    usb: dwc2: add support for the DWC2 controller on Meson8 SoCs
    phy: qualcomm: phy-qcom-qmp: fix application of sizeof to pointer
    usb: musb: dsps: keep VBUS on for host-only mode
    usb: chipidea: core: check before accessing ci_role in ci_role_show
    usb: chipidea: debug: check before accessing ci_role
    phy: qcom-qmp: fix return value check in qcom_qmp_phy_create()
    usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
    usb: chipidea: imx: Do not access CLKONOFF on i.MX51

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This is a set of user visible fixes (excepting one format string
    change).

    Four of the qla2xxx fixes only affect the firmware dump path, but it's
    still important to the enterprise. The rest are various NULL pointer
    crash conditions or outright driver hangs"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: cxgb4i: libcxgbi: in error case RST tcp conn
    scsi: scsi_debug: Avoid PI being disabled when TPGS is enabled
    scsi: qla2xxx: Fix extraneous ref on sp's after adapter break
    scsi: lpfc: prevent potential null pointer dereference
    scsi: lpfc: Avoid NULL pointer dereference in lpfc_els_abort()
    scsi: lpfc: nvmet_fc: fix format string
    scsi: qla2xxx: Fix crash due to NULL pointer dereference of ctx
    scsi: qla2xxx: Fix mailbox pointer error in fwdump capture
    scsi: qla2xxx: Set bit 15 for DIAG_ECHO_TEST MBC
    scsi: qla2xxx: Modify T262 FW dump template to specify same start/end to debug customer issues
    scsi: qla2xxx: Fix crash due to mismatch mumber of Q-pair creation for Multi queue
    scsi: qla2xxx: Fix NULL pointer access due to redundant fc_host_port_name call
    scsi: qla2xxx: Fix recursive loop during target mode configuration for ISP25XX leaving system unresponsive
    scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats()
    scsi: qla2xxx: don't disable a not previously enabled PCI device

    Linus Torvalds
     
  • Pull libnvdimm fix from Dan Williams:
    "We expanded the device-dax fs type in 4.12 to be a generic provider of
    a struct dax_device with an embedded inode. However, Sasha found some
    basic negative testing was not run to verify that this fs cleanly
    handles being mounted directly.

    Note that the fresh rebase was done to remove an unnecessary Cc:
    tag, but this commit otherwise had a build success
    notification from the 0day robot."

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    device-dax: fix 'dax' device filesystem inode destruction crash

    Linus Torvalds
     
  • …rnel/git/groeck/linux-staging

    Pull hexagon fix from Guenter Roeck:
    "This fixes a build error seen when building hexagon images.

    Richard sent me an Ack, but didn't reply when asked if he wants me to
    send the patch to you directly, so I figured I'd just do it"

    * tag 'hexagon-for-linus-v4.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hexagon: Use raw_copy_to_user

    Linus Torvalds
     
  • Pull KVM fixes from Paolo Bonzini:
    "Bug fixes (ARM, s390, x86)"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: async_pf: avoid async pf injection when in guest mode
    KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
    arm: KVM: Allow unaligned accesses at HYP
    arm64: KVM: Allow unaligned accesses at EL2
    arm64: KVM: Preserve RES1 bits in SCTLR_EL2
    KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
    KVM: nVMX: Fix exception injection
    kvm: async_pf: fix rcu_irq_enter() with irqs enabled
    KVM: arm/arm64: vgic-v3: Fix nr_pre_bits bitfield extraction
    KVM: s390: fix ais handling vs cpu model
    KVM: arm/arm64: Fix isues with GICv2 on GICv3 migration

    Linus Torvalds
     

11 Jun, 2017

10 commits

  • INFO: task gnome-terminal-:1734 blocked for more than 120 seconds.
    Not tainted 4.12.0-rc4+ #8
    "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
    gnome-terminal- D 0 1734 1015 0x00000000
    Call Trace:
    __schedule+0x3cd/0xb30
    schedule+0x40/0x90
    kvm_async_pf_task_wait+0x1cc/0x270
    ? __vfs_read+0x37/0x150
    ? prepare_to_swait+0x22/0x70
    do_async_page_fault+0x77/0xb0
    ? do_async_page_fault+0x77/0xb0
    async_page_fault+0x28/0x30

    This is triggered by running both win7 and win2016 on L1 KVM simultaneously,
    and then gives stress to memory on L1, I can observed this hang on L1 when
    at least ~70% swap area is occupied on L0.

    This is due to async pf was injected to L2 which should be injected to L1,
    L2 guest starts receiving pagefault w/ bogus %cr2(apf token from the host
    actually), and L1 guest starts accumulating tasks stuck in D state in
    kvm_async_pf_task_wait() since missing PAGE_READY async_pfs.

    This patch fixes the hang by doing async pf when executing L1 guest.

    Cc: Paolo Bonzini
    Cc: Radim Krčmář
    Cc: stable@vger.kernel.org
    Signed-off-by: Wanpeng Li
    Signed-off-by: Paolo Bonzini

    Wanpeng Li
     
  • Commit ac4691fac8ad ("hexagon: switch to RAW_COPY_USER") replaced
    __copy_to_user_hexagon() with raw_copy_to_user(), but did not catch
    all callers, resulting in the following build error.

    arch/hexagon/mm/uaccess.c: In function '__clear_user_hexagon':
    arch/hexagon/mm/uaccess.c:40:3: error:
    implicit declaration of function '__copy_to_user_hexagon'

    Fixes: ac4691fac8ad ("hexagon: switch to RAW_COPY_USER")
    Cc: Al Viro
    Acked-by: Al Viro
    Acked-by: Richard Kuo
    Signed-off-by: Guenter Roeck

    Guenter Roeck
     
  • Pull UFS fixes from Al Viro:
    "This is just the obvious backport fodder; I'm pretty sure that there
    will be more - definitely so wrt performance and quite possibly
    correctness as well"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    ufs: we need to sync inode before freeing it
    excessive checks in ufs_write_failed() and ufs_evict_inode()
    ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path
    ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments()
    ufs: set correct ->s_maxsize
    ufs: restore maintaining ->i_blocks
    fix ufs_isblockset()
    ufs: restore proper tail allocation

    Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "Some fixes that Dave Sterba collected.

    We've been hitting an early enospc problem on production machines that
    Omar tracked down to an old int->u64 mistake. I waited a bit on this
    pull to make sure it was really the problem from production, but it's
    on ~2100 hosts now and I think we're good.

    Omar also noticed a commit in the queue would make new early ENOSPC
    problems. I pulled that out for now, which is why the top three
    commits are younger than the rest.

    Otherwise these are all fixes, some explaining very old bugs that
    we've been poking at for a while"

    * 'for-linus-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: fix delalloc accounting leak caused by u32 overflow
    Btrfs: clear EXTENT_DEFRAG bits in finish_ordered_io
    btrfs: tree-log.c: Wrong printk information about namelen
    btrfs: fix race with relocation recovery and fs_root setup
    btrfs: fix memory leak in update_space_info failure path
    btrfs: use correct types for page indices in btrfs_page_exists_in_range
    btrfs: fix incorrect error return ret being passed to mapping_set_error
    btrfs: Make flush bios explicitely sync
    btrfs: fiemap: Cache and merge fiemap extent before submit it to user

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "Misc fixes: a Geode fix plus a microcode loader fix"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/microcode/intel: Clear patch pointer before jettisoning the initrd
    x86/cpu/cyrix: Add alternative Device ID of Geode GX1 SoC

    Linus Torvalds
     
  • Pull CPU hotplug fix from Ingo Molnar:
    "An error handling corner case fix"

    * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    cpu/hotplug: Drop the device lock on error

    Linus Torvalds
     
  • Pull RCU fixes from Ingo Molnar:
    "Fix an SRCU bug affecting KVM IRQ injection"

    * 'rcu-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    srcu: Allow use of Classic SRCU from both process and interrupt context
    srcu: Allow use of Tiny/Tree SRCU from both process and interrupt context

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "This is mostly tooling fixes, plus an instruction pointer filtering
    fix.

    It's more fixes than usual - Arnaldo got back from a longer vacation
    and there was a backlog"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
    perf symbols: Kill dso__build_id_is_kmod()
    perf symbols: Keep DSO->symtab_type after decompress
    perf tests: Decompress kernel module before objdump
    perf tools: Consolidate error path in __open_dso()
    perf tools: Decompress kernel module when reading DSO data
    perf annotate: Use dso__decompress_kmodule_path()
    perf tools: Introduce dso__decompress_kmodule_{fd,path}
    perf tools: Fix a memory leak in __open_dso()
    perf annotate: Fix symbolic link of build-id cache
    perf/core: Drop kernel samples even though :u is specified
    perf script python: Remove dups in documentation examples
    perf script python: Updated trace_unhandled() signature
    perf script python: Fix wrong code snippets in documentation
    perf script: Fix documentation errors
    perf script: Fix outdated comment for perf-trace-python
    perf probe: Fix examples section of documentation
    perf report: Ensure the perf DSO mapping matches what libdw sees
    perf report: Include partial stacks unwound with libdw
    perf annotate: Add missing powerpc triplet
    perf test: Disable breakpoint signal tests for powerpc
    ...

    Linus Torvalds
     
  • Pull EFI fix from Ingo Molnar:
    "A boot crash fix for certain systems where the kernel would trust a
    piece of firmware data it should not have"

    * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Fix boot panic because of invalid BGRT image address

    Linus Torvalds
     
  • Signed-off-by: Al Viro

    Al Viro
     

10 Jun, 2017

16 commits

  • Pull IOMMU fixes from Joerg Roedel:

    - another compile-fix for my header cleanup

    - a couple of fixes for the recently merged IOMMU probe deferal code

    - fixes for ACPI/IORT code necessary with IOMMU probe deferal

    * tag 'iommu-fixes-v4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    arm: dma-mapping: Reset the device's dma_ops
    ACPI/IORT: Move the check to get iommu_ops from translated fwspec
    ARM: dma-mapping: Don't tear down third-party mappings
    ACPI/IORT: Ignore all errors except EPROBE_DEFER
    iommu/of: Ignore all errors except EPROBE_DEFER
    iommu/of: Fix check for returning EPROBE_DEFER
    iommu/dma: Fix function declaration

    Linus Torvalds
     
  • Pull input fixes from Dmitry Torokhov:

    - mark "guest" RMI device as pass-through port to avoid "phantom" ALPS
    toouchpad on newer Lenovo Carbons

    - add two more laptops to the Elantech's lists of devices using CRC
    mode

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: synaptics-rmi4 - register F03 port as pass-through serio
    Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled

    Linus Torvalds
     
  • Pull MD bugfix from Shaohua Li:
    "One bug fix from Neil Brown for MD. The bug was introduced in this
    cycle"

    * tag 'md/4.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
    md: initialise ->writes_pending in personality modules.

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "A set of fixes in the area of block IO, that should go into the next
    -rc release. This contains:

    - An OOPS fix from Dmitry, fixing a regression with the bio integrity
    code in this series.

    - Fix truncation of elevator io context cache name, from Eric
    Biggers.

    - NVMe pull from Christoph includes FC fixes from James, APST
    fixes/tweaks from Kai-Heng, removal fix from Rakesh, and an RDMA
    fix from Sagi.

    - Two tweaks for the block throttling code. One from Joseph Qi,
    fixing an oops from the timer code, and one from Shaohua, improving
    the behavior on rotatonal storage.

    - Two blk-mq fixes from Ming, fixing corner cases with the direct
    issue code.

    - Locking fix for bfq cgroups from Paolo"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block, bfq: access and cache blkg data only when safe
    Fix loop device flush before configure v3
    blk-throttle: set default latency baseline for harddisk
    blk-throttle: fix NULL pointer dereference in throtl_schedule_pending_timer
    nvme: relax APST default max latency to 100ms
    nvme: only consider exit latency when choosing useful non-op power states
    nvme-fc: fix missing put reference on controller create failure
    nvme-fc: on lldd/transport io error, terminate association
    nvme-rdma: fast fail incoming requests while we reconnect
    nvme-pci: fix multiple ctrl removal scheduling
    nvme: fix hang in remove path
    elevator: fix truncation of icq_cache_name
    blk-mq: fix direct issue
    blk-mq: pass correct hctx to blk_mq_try_issue_directly
    bio-integrity: Do not allocate integrity context for bio w/o data

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "This update contains a slightly hight amount of changes due to the
    pending ASoC fixes:

    - ALSA timer core got a couple of fixes for races between read and
    ioctl, leading to potential read of uninitialized kmalloced memory

    - ASoC core fixed the de-registration pattern for use-after-free bug

    - The rewrite of probe code in ASoC Intel Skylake for i915 component

    - ASoC R-snd got a series of fixes for SSI

    - ASoC simple-card, atmel, da7213, and rt286 trivial fixes

    - HD-audio ALC269 quirk and rearrangement of quirk table"

    * tag 'sound-4.12-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
    ALSA: timer: Fix race between read and ioctl
    ALSA: hda/realtek - Reorder ALC269 ASUS quirk entries
    ALSA: hda/realtek: Fix mic and headset jack sense on Asus X705UD
    ASoC: rsnd: fixup parent_clk_name of AUDIO_CLKOUTx
    ASoC: Intel: Skylake: Fix to parse consecutive string tkns in manifest
    ASoC: Intel: Skylake: Fix IPC rx_list corruption
    ASoC: rsnd: SSI PIO adjust to 24bit mode
    MAINTAINERS: Update email address for patches to Wolfson parts
    ASoC: Fix use-after-free at card unregistration
    ASoC: simple-card: fix mic jack initialization
    ASoC: rsnd: don't call free_irq() on Parent SSI
    ASoC: atmel-classd: sync regcache when resuming
    ASoC: rsnd: don't use PDTA bit for 24bit on SSI
    ASoC: da7213: Fix incorrect usage of bitwise '&' operator for SRM check
    rt286: add Thinkpad Helix 2 to force_combo_jack_table
    ASoC: Intel: Skylake: Move i915 registration to worker thread

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Intel, nouveau, rockchip, vmwgfx, imx, meson, mediatek and core fixes.

    Bit more spread out fixes this time, fixes for 7 drivers + a couple of
    core fixes.

    i915 and vmwgfx are the main ones. The vmwgfx ones fix a bunch of
    regressions in their atomic rework, and a few fixes destined for
    stable. i915 has some 4.12 regressions and older things that need to
    be fixed in stable as well.

    nouveau also has some runtime pm fixes and a timer list handling fix,
    otherwise a couple of core and small driver regression fixes"

    * tag 'drm-fixes-for-v4.12-rc5' of git://people.freedesktop.org/~airlied/linux: (37 commits)
    drm/i915: fix warning for unused variable
    drm/meson: Fix driver bind when only CVBS is available
    drm/i915: Fix 90/270 rotated coordinates for FBC
    drm/i915: Restore has_fbc=1 for ILK-M
    drm/i915: Workaround VLV/CHV DSI scanline counter hardware fail
    drm/i915: Fix logical inversion for gen4 quirking
    drm/i915: Guard against i915_ggtt_disable_guc() being invoked unconditionally
    drm/i915: Always recompute watermarks when distrust_bios_wm is set, v2.
    drm/i915: Prevent the system suspend complete optimization
    drm/i915/psr: disable psr2 for resolution greater than 32X20
    drm/i915: Hold a wakeref for probing the ring registers
    drm/i915: Short-circuit i915_gem_wait_for_idle() if already idle
    drm/i915: Disable decoupled MMIO
    drm/i915/guc: Remove stale comment for q_fail
    drm/vmwgfx: Bump driver minor and date
    drm/vmwgfx: Remove unused legacy cursor functions
    drm/vmwgfx: fix spelling mistake "exeeds" -> "exceeds"
    drm/vmwgfx: Fix large topology crash
    drm/vmwgfx: Make sure to update STDU when FB is updated
    drm/vmwgfx: Make sure backup_handle is always valid
    ...

    Linus Torvalds
     
  • As it is, short copy in write() to append-only file will fail
    to truncate the excessive allocated blocks. As the matter of
    fact, all checks in ufs_truncate_blocks() are either redundant
    or wrong for that caller. As for the only other caller
    (ufs_evict_inode()), we only need the file type checks there.

    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • ... and it really needs splitting into "new" and "extend" cases, but that's for
    later

    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro

    Al Viro
     
  • btrfs_calc_trans_metadata_size() does an unsigned 32-bit multiplication,
    which can overflow if num_items >= 4 GB / (nodesize * BTRFS_MAX_LEVEL * 2).
    For a nodesize of 16kB, this overflow happens at 16k items. Usually,
    num_items is a small constant passed to btrfs_start_transaction(), but
    we also use btrfs_calc_trans_metadata_size() for metadata reservations
    for extent items in btrfs_delalloc_{reserve,release}_metadata().

    In drop_outstanding_extents(), num_items is calculated as
    inode->reserved_extents - inode->outstanding_extents. The difference
    between these two counters is usually small, but if many delalloc
    extents are reserved and then the outstanding extents are merged in
    btrfs_merge_extent_hook(), the difference can become large enough to
    overflow in btrfs_calc_trans_metadata_size().

    The overflow manifests itself as a leak of a multiple of 4 GB in
    delalloc_block_rsv and the metadata bytes_may_use counter. This in turn
    can cause early ENOSPC errors. Additionally, these WARN_ONs in
    extent-tree.c will be hit when unmounting:

    WARN_ON(fs_info->delalloc_block_rsv.size > 0);
    WARN_ON(fs_info->delalloc_block_rsv.reserved > 0);
    WARN_ON(space_info->bytes_pinned > 0 ||
    space_info->bytes_reserved > 0 ||
    space_info->bytes_may_use > 0);

    Fix it by casting nodesize to a u64 so that
    btrfs_calc_trans_metadata_size() does a full 64-bit multiplication.
    While we're here, do the same in btrfs_calc_trunc_metadata_size(); this
    can't overflow with any existing uses, but it's better to be safe here
    than have another hard-to-debug problem later on.

    Cc: stable@vger.kernel.org
    Signed-off-by: Omar Sandoval
    Reviewed-by: David Sterba
    Signed-off-by: Chris Mason

    Omar Sandoval
     
  • Before this, we use 'filled' mode here, ie. if all range has been
    filled with EXTENT_DEFRAG bits, get to clear it, but if the defrag
    range joins the adjacent delalloc range, then we'll have EXTENT_DEFRAG
    bits in extent_state until releasing this inode's pages, and that
    prevents extent_data from being freed.

    This clears the bit if any was found within the ordered extent.

    Signed-off-by: Liu Bo
    Reviewed-by: David Sterba
    Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    Liu Bo
     
  • In verify_dir_item, it wants to printk name_len of dir_item but
    printk data_len acutally.

    Fix it by calling btrfs_dir_name_len instead of btrfs_dir_data_len.

    Signed-off-by: Su Yue
    Reviewed-by: David Sterba
    Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    Su Yue