03 Feb, 2014

1 commit

  • We have two APIs for compatiblity timespec/val, with confusingly
    similar names. compat_(get|put)_time(val|spec) *do* handle the case
    where COMPAT_USE_64BIT_TIME is set, whereas
    (get|put)_compat_time(val|spec) do not. This is an accident waiting
    to happen.

    Clean it up by favoring the full-service version; the limited version
    is replaced with double-underscore versions static to kernel/compat.c.

    A common pattern is to convert a struct timespec to kernel format in
    an allocation on the user stack. Unfortunately it is open-coded in
    several places. Since this allocation isn't actually needed if
    COMPAT_USE_64BIT_TIME is true (since user format == kernel format)
    encapsulate that whole pattern into the function
    compat_convert_timespec(). An equivalent function should be written
    for struct timeval if it is needed in the future.

    Finally, get rid of compat_(get|put)_timeval_convert(): each was only
    used once, and the latter was not even doing what the function said
    (no conversion actually was being done.) Moving the conversion into
    compat_sys_settimeofday() itself makes the code much more similar to
    sys_settimeofday() itself.

    v3: Remove unused compat_convert_timeval().

    v2: Drop bogus "const" in the destination argument for
    compat_convert_time*().

    Cc: Mauro Carvalho Chehab
    Cc: Alexander Viro
    Cc: Hans Verkuil
    Cc: Andrew Morton
    Cc: Heiko Carstens
    Cc: Manfred Spraul
    Cc: Mateusz Guzik
    Cc: Rafael Aquini
    Cc: Davidlohr Bueso
    Cc: Stephen Rothwell
    Cc: Dan Carpenter
    Cc: Arnd Bergmann
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Linus Torvalds
    Cc: Catalin Marinas
    Cc: Will Deacon
    Tested-by: H.J. Lu
    Signed-off-by: H. Peter Anvin

    H. Peter Anvin
     

02 Feb, 2014

7 commits

  • Pull misc kbuild changes from Michal Marek:
    "The non-critical part of kbuild is small this time:
    - Three fixes for make deb-pkg
    - A new coccinelle check

    One of the deb-pkg fixes is a leftover from the last merge window,
    hence the merge commit"

    * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    deb-pkg: Fix building for MIPS big-endian or ARM OABI
    deb-pkg: Fix cross-building linux-headers package
    scripts: Coccinelle script for pm_runtime_* return checks with IS_ERR_VALUE
    deb-pkg: Inhibit initramfs builders if CONFIG_BLK_DEV_INITRD is not set

    Linus Torvalds
     
  • Both proc files are writeable and used for configuring cells. But
    there is missing correct mode flag for writeable files. Without
    this patch both proc files are read only.

    [ It turns out they aren't really read-only, since root can write to
    them even if the write bit isn't set due to CAP_DAC_OVERRIDE ]

    Signed-off-by: Pali Rohár
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Pali Rohár
     
  • With commit d8d14bd09cdd ("fs/compat: fix lookup_dcookie() parameter
    handling") I changed the type of the len parameter of the
    lookup_dcookie() syscall.

    However I missed that there was still a stale declaration in
    arch/tile/.. which now causes a compile error on tile:

    In file included from fs/dcookies.c:28:0:
    include/linux/compat.h:425:17: error: conflicting types for 'compat_sys_lookup_dcookie'
    fs/dcookies.c:207:1: error: conflicting types for 'compat_sys_lookup_dcookie'

    Simply remove the declaration in the tile architecture, which is only a
    leftover from before the different compat lookup_dcookie() versions have
    been merged. The correct declaration is now in include/linux/compat.h

    The build error was reported by Fenguang's build bot.

    Signed-off-by: Heiko Carstens
    Acked-by: Chris Metcalf
    Signed-off-by: Linus Torvalds

    Heiko Carstens
     
  • Pull cifs fixes from Steve French:
    "A set of cifs fixes (mostly for symlinks, and SMB2 xattrs) and
    cleanups"

    * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: Fix check for regular file in couldbe_mf_symlink()
    [CIFS] Fix SMB2 mounts so they don't try to set or get xattrs via cifs
    CIFS: Cleanup cifs open codepath
    CIFS: Remove extra indentation in cifs_sfu_type
    CIFS: Cleanup cifs_mknod
    CIFS: Cleanup CIFSSMBOpen
    cifs: Add support for follow_link on dfs shares under posix extensions
    cifs: move unix extension call to cifs_query_symlink()
    cifs: Re-order M-F Symlink code
    cifs: Add create MFSymlinks to protocol ops struct
    cifs: use protocol specific call for query_mf_symlink()
    cifs: Rename MF symlink function names
    cifs: Rename and cleanup open_query_close_cifs_symlink()
    cifs: Fix memory leak in cifs_hardlink()

    Linus Torvalds
     
  • Pull vfs fixes from Al Viro:
    "Several obvious fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    Fix mountpoint reference leakage in linkat
    hfsplus: use xattr handlers for removexattr
    Typo in compat_sys_lseek() declaration
    fs/super.c: sync ro remount after blocking writers
    vfs: unexport the getname() symbol

    Linus Torvalds
     
  • Pull rtl8812ae staging wireless driver from Greg KH:
    "Here's a single staging driver for a wireless chipset that has shown
    up in the SteamBox hardware. It is merged separately from the "main"
    staging pull request to sync up with the wireless api changes that
    came in from the networking tree.

    It's self-contained and works for me and others. Larry will be
    replacing it with a "real" driver for 3.15, but for now this one is
    needed"

    * tag 'staging-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: r8821ae: Enable build by reverting BROKEN marking
    staging: r8821ae: Fix build problems
    Staging: rtl8812ae: disable due to build errors
    Staging: rtl8821ae: add TODO file
    Staging: rtl8821ae: removed unused functions and variables
    Staging: rtl8821ae: rc.c: fix up function prototypes
    Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver

    Linus Torvalds
     
  • Revert commit ef83b0781a73 "PCI: Remove from bus_list and release
    resources in pci_release_dev()" that made some nasty race conditions
    become possible. For example, if a Thunderbolt link is unplugged
    and then replugged immediately, the pci_release_dev() resulting from
    the hot-remove code path may be racing with the hot-add code path
    which after that commit causes various kinds of breakage to happen
    (up to and including a hard crash of the whole system).

    Moreover, the problem that commit ef83b0781a73 attempted to address
    cannot happen any more after commit 8a4c5c329de7 "PCI: Check parent
    kobject in pci_destroy_dev()", because pci_destroy_dev() will now
    return immediately if it has already been executed for the given
    device.

    Note, however, that the invocation of msi_remove_pci_irq_vectors()
    removed by commit ef83b0781a73 from pci_free_resources() along with
    the other changes made by it is not added back because of subsequent
    code changes depending on that modification.

    Fixes: ef83b0781a73 (PCI: Remove from bus_list and release resources in pci_release_dev())
    Reported-by: Mika Westerberg
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

01 Feb, 2014

22 commits

  • Pull NFS client bugfixes from Trond Myklebust:
    "Highlights:

    - Fix several races in nfs_revalidate_mapping
    - NFSv4.1 slot leakage in the pNFS files driver
    - Stable fix for a slot leak in nfs40_sequence_done
    - Don't reject NFSv4 servers that support ACLs with only ALLOW aces"

    * tag 'nfs-for-3.14-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    nfs: initialize the ACL support bits to zero.
    NFSv4.1: Cleanup
    NFSv4.1: Clean up nfs41_sequence_done
    NFSv4: Fix a slot leak in nfs40_sequence_done
    NFSv4.1 free slot before resending I/O to MDS
    nfs: add memory barriers around NFS_INO_INVALID_DATA and NFS_INO_INVALIDATING
    NFS: Fix races in nfs_revalidate_mapping
    sunrpc: turn warn_gssd() log message into a dprintk()
    NFS: fix the handling of NFS_INO_INVALID_DATA flag in nfs_revalidate_mapping
    nfs: handle servers that support only ALLOW ACE type.

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "The big chunks here are the updates for oxygen driver for Xonar DG
    devices, which were slipped from the previous pull request. They are
    device-specific and thus not too dangerous.

    Other than that, all patches are small bug fixes, mainly for Samsung
    build fixes, a few HD-audio enhancements, and other misc ASoC fixes.
    (And this time ASoC merge is less than Octopus, lucky seven :)"

    * tag 'sound-fix-3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (42 commits)
    ALSA: hda/hdmi - allow PIN_OUT to be dynamically enabled
    ALSA: hda - add headset mic detect quirks for another Dell laptop
    ALSA: oxygen: Xonar DG(X): cleanup and minor changes
    ALSA: oxygen: Xonar DG(X): modify high-pass filter control
    ALSA: oxygen: Xonar DG(X): modify input select functions
    ALSA: oxygen: Xonar DG(X): modify capture volume functions
    ALSA: oxygen: Xonar DG(X): use headphone volume control
    ALSA: oxygen: Xonar DG(X): modify playback output select
    ALSA: oxygen: Xonar DG(X): capture from I2S channel 1, not 2
    ALSA: oxygen: Xonar DG(X): move the mixer code into another file
    ALSA: oxygen: modify CS4245 register dumping function
    ALSA: oxygen: modify adjust_dg_dac_routing function
    ALSA: oxygen: Xonar DG(X): modify DAC/ADC parameters function
    ALSA: oxygen: Xonar DG(X): modify initialization functions
    ALSA: oxygen: Xonar DG(X): add new CS4245 SPI functions
    ALSA: oxygen: additional definitions for the Xonar DG/DGX card
    ALSA: oxygen: change description of the xonar_dg.c file
    ALSA: oxygen: export oxygen_update_dac_routing symbol
    ALSA: oxygen: add mute mask for the OXYGEN_PLAY_ROUTING register
    ALSA: oxygen: modify the SPI writing function
    ...

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "The highlights this round include:

    - add support for SCSI Referrals (Hannes)
    - add support for T10 DIF into target core (nab + mkp)
    - add support for T10 DIF emulation in FILEIO + RAMDISK backends (Sagi + nab)
    - add support for T10 DIF -> bio_integrity passthrough in IBLOCK backend (nab)
    - prep changes to iser-target for >= v3.15 T10 DIF support (Sagi)
    - add support for qla2xxx N_Port ID Virtualization - NPIV (Saurav + Quinn)
    - allow percpu_ida_alloc() to receive task state bitmask (Kent)
    - fix >= v3.12 iscsi-target session reset hung task regression (nab)
    - fix >= v3.13 percpu_ref se_lun->lun_ref_active race (nab)
    - fix a long-standing network portal creation race (Andy)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (51 commits)
    target: Fix percpu_ref_put race in transport_lun_remove_cmd
    target/iscsi: Fix network portal creation race
    target: Report bad sector in sense data for DIF errors
    iscsi-target: Convert gfp_t parameter to task state bitmask
    iscsi-target: Fix connection reset hang with percpu_ida_alloc
    percpu_ida: Make percpu_ida_alloc + callers accept task state bitmask
    iscsi-target: Pre-allocate more tags to avoid ack starvation
    qla2xxx: Configure NPIV fc_vport via tcm_qla2xxx_npiv_make_lport
    qla2xxx: Enhancements to enable NPIV support for QLOGIC ISPs with TCM/LIO.
    qla2xxx: Fix scsi_host leak on qlt_lport_register callback failure
    IB/isert: pass scatterlist instead of cmd to fast_reg_mr routine
    IB/isert: Move fastreg descriptor creation to a function
    IB/isert: Avoid frwr notation, user fastreg
    IB/isert: seperate connection protection domains and dma MRs
    tcm_loop: Enable DIF/DIX modes in SCSI host LLD
    target/rd: Add DIF protection into rd_execute_rw
    target/rd: Add support for protection SGL setup + release
    target/rd: Refactor rd_build_device_space + rd_release_device_space
    target/file: Add DIF protection support to fd_execute_rw
    target/file: Add DIF protection init/format support
    ...

    Linus Torvalds
     
  • Recent changes to retry on ESTALE in linkat
    (commit 442e31ca5a49e398351b2954b51f578353fdf210)
    introduced a mountpoint reference leak and a small memory
    leak in case a filesystem link operation returns ESTALE
    which is pretty normal for distributed filesystems like
    lustre, nfs and so on.
    Free old_path in such a case.

    [AV: there was another missing path_put() nearby - on the previous
    goto retry]

    Signed-off-by: Oleg Drokin:
    Signed-off-by: Al Viro

    Oleg Drokin
     
  • Pyll ARM64 patches from Catalin Marinas:
    - Build fix with DMA_CMA enabled
    - Introduction of PTE_WRITE to distinguish between writable but clean
    and truly read-only pages
    - FIQs enabling/disabling clean-up (they aren't used on arm64)
    - CPU resume fix for the per-cpu offset restoring
    - Code comment typos

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: mm: Introduce PTE_WRITE
    arm64: mm: Remove PTE_BIT_FUNC macro
    arm64: FIQs are unused
    arm64: mm: fix the function name in comment of cpu_do_switch_mm
    arm64: fix build error if DMA_CMA is enabled
    arm64: kernel: fix per-cpu offset restore on resume
    arm64: mm: fix the function name in comment of __flush_dcache_area
    arm64: mm: use ubfm for dcache_line_size

    Linus Torvalds
     
  • Pull alpha updates from Matt Turner:
    "A pair of changes for alpha. One fixes a networking regression, and
    the second adds audit syscall support which will help in supporting
    systemd"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
    alpha: fix broken network checksum
    alpha: Enable system-call auditing support.

    Linus Torvalds
     
  • hfsplus was already using the handlers for get and set operations,
    and with the removal of can_set_xattr we've now allow operations that
    wouldn't otherwise be allowed.

    With this we can also centralize the special-casing of the osx.
    attrs that don't have prefixes on disk in the osx xattr handlers.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Signed-off-by: Al Viro

    Stephan Springl
     
  • Move sync_filesystem() after sb_prepare_remount_readonly(). If writers
    sneak in anywhere from sync_filesystem() to sb_prepare_remount_readonly()
    it can cause inodes to be dirtied and writeback to occur well after
    sys_mount() has completely successfully.

    This was spotted by corrupted ubifs filesystems on reboot, but appears
    that it can cause issues with any filesystem using writeback.

    Cc: Artem Bityutskiy
    Cc: Christoph Hellwig
    Cc: Alexander Viro
    CC: Richard Weinberger
    Co-authored-by: Richard Weinberger
    Signed-off-by: Andrew Ruder
    Signed-off-by: Al Viro

    Andrew Ruder
     
  • Leaving getname() exported when putname() isn't is a bad idea.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Pull media updates from Mauro Carvalho Chehab:
    - a new jpeg codec driver for Samsung Exynos (jpeg-hw-exynos4)
    - a new dvb frontend for ds2103 chipset (m88ds2103)
    - a new sensor driver for Samsung S5K5BAF UXGA (s5k5baf)
    - new drivers for R-Car VSP1
    - a new radio driver: radio-raremono
    - a new tuner driver for ts2022 chipset (m88ts2022)
    - the analog part of em28xx is now a separate module that only
    load/runs if the device is not a pure digital TV device
    - added a staging driver for bcm2048 radio devices
    - the omap 2 video driver (omap24xx) was moved to staging. This driver
    is for an old hardware and uses a deprecated Kernel internal API. If
    nobody cares enough to fix it, it would be removed on a couple Kernel
    releases
    - the sn9c102 driver was moved to staging. This driver was replaced by
    gspca, and disabled on some distros, as almost all devices are known
    to work properly with gspca. It should be removed from kernel on a
    couple Kernel releases
    - lots of driver fixes, improvements and cleanups

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (421 commits)
    [media] media: v4l2-dev: fix video device index assignment
    [media] rc-core: reuse device numbers
    [media] em28xx-cards: properly initialize the device bitmap
    [media] Staging: media: Fix line length exceeding 80 characters in as102_drv.c
    [media] Staging: media: Fix line length exceeding 80 characters in as102_fe.c
    [media] Staging: media: Fix quoted string split across line in as102_fe.c
    [media] media: st-rc: Add reset support
    [media] m2m-deinterlace: fix allocated struct type
    [media] radio-usb-si4713: fix sparse non static symbol warnings
    [media] em28xx-audio: remove needless check before usb_free_coherent()
    [media] au0828: Fix sparse non static symbol warning
    Revert "[media] go7007-usb: only use go->dev after allocated"
    [media] em28xx-audio: provide an error code when URB submit fails
    [media] em28xx: fix check for audio only usb interfaces when changing the usb alternate setting
    [media] em28xx: fix usb alternate setting for analog and digital video endpoints > 0
    [media] em28xx: make 'em28xx_ctrl_ops' static
    em28xx-alsa: Fix error patch for init/fini
    [media] em28xx-audio: flush work at .fini
    [media] drxk: remove the option to load firmware asynchronously
    [media] em28xx: adjust period size at runtime
    ...

    Linus Torvalds
     
  • Pull ACPI and power management fixes and cleanups from Rafael Wysocki:

    - ACPI device hotplug fix preventing ACPI drivers from binding to device
    objects that acpi_bus_trim() has been called for and the devices
    represented by them may not be operational.

    - Recent cpufreq changes related to the "boost" (turbo) feature broke
    the acpi-cpufreq error code path causing a NULL pointer dereference
    to occur on some systems. Fix from Konrad Rzeszutek Wilk.

    - The log level of a CPU initialization error message added recently
    needs to be reduced, because the particular BIOS issue indicated by
    it turns out to be widespread and doesn't really matter for the
    majority of systems having it. From Jiang Liu.

    - The regulator API needs to be told to stay away from things on systems
    with ACPI BIOSes or it may conflict with the BIOS' own handling of
    voltage regulators. Fix from Mark Brown that works around a 3.13
    regression in lm90 on PCs occuring if the regulator API is enabled.

    - Prevent the Exynos4 devfreq driver from being built on multiplatform,
    because it depends on things that aren't available during such builds.
    From Sachin Kamat.

    - Upstream ACPICA doesn't use the bool type as defined in the kernel,
    so modify the kernel's ACPICA code to follow the upstream in that
    respect (only one variable definition is affected) to reduce
    divergences between the two. From Lv Zheng.

    - Make the ACPI device PM code use ACPI_COMPANION() instead of its own
    routine doing the same thing (and invokng ACPI_COMPANION() in the
    process).

    - Modify some routines in the ACPI processor driver to follow the
    common convention and return negative integers on errors. From
    Hanjun Guo.

    * tag 'pm+acpi-3.14-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / scan: Clear match_driver flag in acpi_bus_trim()
    ACPI / init: Flag use of ACPI and ACPI idioms for power supplies to regulator API
    acpi-cpufreq: De-register CPU notifier and free struct msr on error.
    ACPICA: Remove bool usage from ACPICA.
    PM / devfreq: Disable Exynos4 driver build on multiplatform
    ACPI / PM: Use ACPI_COMPANION() to get ACPI companions of devices
    ACPI / scan: reduce log level of "ACPI: \_PR_.CPU4: failed to get CPU APIC ID"
    ACPI / processor: Return specific error value when mapping lapic id

    Linus Torvalds
     
  • The patch 3ddc5b46a8e90f3c9251338b60191d0a804b0d92 breaks networking on
    alpha (there is a follow-up fix 5cfe8f1ba5eebe6f4b6e5858cdb1a5be4f3272a6,
    but networking is still broken even with the second patch).

    The patch 3ddc5b46a8e90f3c9251338b60191d0a804b0d92 makes
    csum_partial_copy_from_user check the pointer with access_ok. However,
    csum_partial_copy_from_user is called also from csum_partial_copy_nocheck
    and csum_partial_copy_nocheck is called on kernel pointers and it is
    supposed not to check pointer validity.

    This bug results in ssh session hangs if the system is loaded and bulk
    data are printed to ssh terminal.

    This patch fixes csum_partial_copy_nocheck to call set_fs(KERNEL_DS), so
    that access_ok in csum_partial_copy_from_user accepts kernel-space
    addresses.

    Cc: stable@vger.kernel.org
    Signed-off-by: Mikulas Patocka
    Signed-off-by: Matt Turner

    Mikulas Patocka
     
  • Signed-off-by: Zhenglong.cai
    Signed-off-by: Matt Turner

    蔡正龙
     
  • Pull timer/dynticks updates from Ingo Molnar:
    "This tree contains misc dynticks updates: a fix and three cleanups"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/nohz: Fix overflow error in scheduler_tick_max_deferment()
    nohz_full: fix code style issue of tick_nohz_full_stop_tick
    nohz: Get timekeeping max deferment outside jiffies_lock
    tick: Rename tick_check_idle() to tick_irq_enter()

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "A crash fix and documentation updates"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched: Make sched_class::get_rr_interval() optional
    sched/deadline: Add sched_dl documentation
    sched: Fix docbook parameter annotation error in wait.h

    Linus Torvalds
     
  • Pull core debug changes from Ingo Molnar:
    "This contains mostly kernel debugging related updates:

    - make hung_task detection more configurable to distros
    - add final bits for x86 UV NMI debugging, with related KGDB changes
    - update the mailing-list of MAINTAINERS entries I'm involved with"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    hung_task: Display every hung task warning
    sysctl: Add neg_one as a standard constraint
    x86/uv/nmi, kgdb/kdb: Fix UV NMI handler when KDB not configured
    x86/uv/nmi: Fix Sparse warnings
    kgdb/kdb: Fix no KDB config problem
    MAINTAINERS: Restore "L: linux-kernel@vger.kernel.org" entries

    Linus Torvalds
     
  • Commit 384a48d71520 "ALSA: hda: HDMI: Support codecs with fewer cvts
    than pins" dynamically enabled each pin widget's PIN_OUT only when the
    pin was actively in use. This was required on certain NVIDIA CODECs for
    correct operation. Specifically, if multiple pin widgets each had their
    mux input select the same audio converter widget and each pin widget had
    PIN_OUT enabled, then only one of the pin widgets would actually receive
    the audio, and often not the one the user wanted!

    However, this apparently broke some Intel systems, and commit
    6169b673618b "ALSA: hda - Always turn on pins for HDMI/DP" reverted the
    dynamic setting of PIN_OUT. This in turn broke the afore-mentioned NVIDIA
    CODECs.

    This change supports either dynamic or static handling of PIN_OUT,
    selected by a flag set up during CODEC initialization. This flag is
    enabled for all recent NVIDIA GPUs.

    Reported-by: Uosis
    Cc: # v3.13
    Signed-off-by: Stephen Warren
    Signed-off-by: Takashi Iwai

    Stephen Warren
     
  • …inux/kernel/git/xen/tip

    Pull Xen bugfixes from Konrad Rzeszutek Wilk:
    "Bug-fixes for the new features that were added during this cycle.

    There are also two fixes for long-standing issues for which we have a
    solution: grant-table operations extra work that was not needed
    causing performance issues and the self balloon code was too
    aggressive causing OOMs.

    Details:
    - Xen ARM couldn't use the new FIFO events
    - Xen ARM couldn't use the SWIOTLB if compiled as 32-bit with 64-bit PCIe devices.
    - Grant table were doing needless M2P operations.
    - Ratchet down the self-balloon code so it won't OOM.
    - Fix misplaced kfree in Xen PVH error code paths"

    * tag 'stable/for-linus-3.14-rc0-late-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/pvh: Fix misplaced kfree from xlated_setup_gnttab_pages
    drivers: xen: deaggressive selfballoon driver
    xen/grant-table: Avoid m2p_override during mapping
    xen/gnttab: Use phys_addr_t to describe the grant frame base address
    xen: swiotlb: handle sizeof(dma_addr_t) != sizeof(phys_addr_t)
    arm/xen: Initialize event channels earlier

    Linus Torvalds
     
  • Pull more KVM updates from Paolo Bonzini:
    "Second batch of KVM updates. Some minor x86 fixes, two s390 guest
    features that need some handling in the host, and all the PPC changes.

    The PPC changes include support for little-endian guests and
    enablement for new POWER8 features"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (45 commits)
    x86, kvm: correctly access the KVM_CPUID_FEATURES leaf at 0x40000101
    x86, kvm: cache the base of the KVM cpuid leaves
    kvm: x86: move KVM_CAP_HYPERV_TIME outside #ifdef
    KVM: PPC: Book3S PR: Cope with doorbell interrupts
    KVM: PPC: Book3S HV: Add software abort codes for transactional memory
    KVM: PPC: Book3S HV: Add new state for transactional memory
    powerpc/Kconfig: Make TM select VSX and VMX
    KVM: PPC: Book3S HV: Basic little-endian guest support
    KVM: PPC: Book3S HV: Add support for DABRX register on POWER7
    KVM: PPC: Book3S HV: Prepare for host using hypervisor doorbells
    KVM: PPC: Book3S HV: Handle new LPCR bits on POWER8
    KVM: PPC: Book3S HV: Handle guest using doorbells for IPIs
    KVM: PPC: Book3S HV: Consolidate code that checks reason for wake from nap
    KVM: PPC: Book3S HV: Implement architecture compatibility modes for POWER8
    KVM: PPC: Book3S HV: Add handler for HV facility unavailable
    KVM: PPC: Book3S HV: Flush the correct number of TLB sets on POWER8
    KVM: PPC: Book3S HV: Context-switch new POWER8 SPRs
    KVM: PPC: Book3S HV: Align physical and virtual CPU thread numbers
    KVM: PPC: Book3S HV: Don't set DABR on POWER8
    kvm/ppc: IRQ disabling cleanup
    ...

    Linus Torvalds
     
  • Pull jfs fix from David Kleikamp:
    "Minor bug fix for linux-3.14"

    * tag 'jfs-3.14' of git://github.com/kleikamp/linux-shaggy:
    jfs: fix xattr value size overflow in __jfs_setxattr

    Linus Torvalds
     
  • Add matching dput() for d_find_alias(). Move d_find_alias() down a bit
    at Julia's suggestion.

    [ Introduced by commit 72466d0b92e0: "ceph: fix posix ACL hooks" ]

    Reported-by: Fengguang Wu
    Reported-by: Julia Lawall
    Signed-off-by: Sage Weil
    Reviewed-by: Ilya Dryomov
    Signed-off-by: Linus Torvalds

    Sage Weil
     

31 Jan, 2014

10 commits

  • MF Symlinks are regular files containing content in a specified format.

    The function couldbe_mf_symlink() checks the mode for a set S_IFREG bit
    as a test to confirm that it is a regular file. This bit is also set for
    other filetypes and simply checking for this bit being set may return
    false positives.

    We ensure that we are actually checking for a regular file by using the
    S_ISREG macro to test instead.

    Signed-off-by: Sachin Prabhu
    Reviewed-by: Jeff Layton
    Reported-by: Neil Brown
    Reported-by: Dan Carpenter
    Signed-off-by: Steve French

    Sachin Prabhu
     
  • Passing a freed 'pages' to free_xenballooned_pages will end badly
    on kernels with slub debug enabled.

    This looks out of place between the rc assign and the check, but
    we do want to kfree pages regardless of which path we take.

    Signed-off-by: Dave Jones
    Signed-off-by: Konrad Rzeszutek Wilk

    Dave Jones
     
  • Current xen-selfballoon driver is too aggressive which may cause OOM be
    triggered more often. Eg. this bug reported by James:
    https://lkml.org/lkml/2013/11/21/158

    There are two mainly reasons:
    1) The original goal_page didn't consider some pages used by kernel space, like
    slab pages and pages used by device drivers.

    2) The balloon driver may not give back memory to guest OS fast enough when the
    workload suddenly aquries a lot of physical memory.

    In both cases, the guest OS will suffer from memory pressure and OOM may
    be triggered.

    The fix is make xen-selfballoon driver not that aggressive by adding extra 10%
    of total ram pages to goal_page.
    It's more valuable to keep the guest system reliable and response faster than
    balloon out these 10% pages to XEN.

    Signed-off-by: Bob Liu
    Signed-off-by: Konrad Rzeszutek Wilk

    Bob Liu
     
  • The grant mapping API does m2p_override unnecessarily: only gntdev needs it,
    for blkback and future netback patches it just cause a lock contention, as
    those pages never go to userspace. Therefore this series does the following:
    - the original functions were renamed to __gnttab_[un]map_refs, with a new
    parameter m2p_override
    - based on m2p_override either they follow the original behaviour, or just set
    the private flag and call set_phys_to_machine
    - gnttab_[un]map_refs are now a wrapper to call __gnttab_[un]map_refs with
    m2p_override false
    - a new function gnttab_[un]map_refs_userspace provides the old behaviour

    It also removes a stray space from page.h and change ret to 0 if
    XENFEAT_auto_translated_physmap, as that is the only possible return value
    there.

    v2:
    - move the storing of the old mfn in page->index to gnttab_map_refs
    - move the function header update to a separate patch

    v3:
    - a new approach to retain old behaviour where it needed
    - squash the patches into one

    v4:
    - move out the common bits from m2p* functions, and pass pfn/mfn as parameter
    - clear page->private before doing anything with the page, so m2p_find_override
    won't race with this

    v5:
    - change return value handling in __gnttab_[un]map_refs
    - remove a stray space in page.h
    - add detail why ret = 0 now at some places

    v6:
    - don't pass pfn to m2p* functions, just get it locally

    Signed-off-by: Zoltan Kiss
    Suggested-by: David Vrabel
    Acked-by: David Vrabel
    Acked-by: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk

    Zoltan Kiss
     
  • Avoid returning incorrect acl mask attributes when the server doesn't
    support ACLs.

    Signed-off-by: Malahal Naineni
    Signed-off-by: Trond Myklebust

    Malahal Naineni
     
  • We have the following means for encoding writable or dirty ptes:

    PTE_DIRTY PTE_RDONLY
    !pte_dirty && !pte_write 0 1
    !pte_dirty && pte_write 0 1
    pte_dirty && !pte_write 1 1
    pte_dirty && pte_write 1 0

    So we can't distinguish between writable clean ptes and read only
    ptes. This can cause problems with ptes being incorrectly flagged as
    read only when they are writable but not dirty.

    This patch introduces a new software bit PTE_WRITE which allows us to
    correctly identify writable ptes. PTE_RDONLY is now only clear for
    valid ptes where a page is both writable and dirty.

    Signed-off-by: Steve Capper
    Reviewed-by: Catalin Marinas
    Signed-off-by: Catalin Marinas

    Steve Capper
     
  • Expand out the pte manipulation functions. This makes our life easier
    when using things like tags and cscope.

    Signed-off-by: Steve Capper
    Reviewed-by: Catalin Marinas
    Signed-off-by: Catalin Marinas

    Steve Capper
     
  • Pull btrfs updates from Chris Mason:
    "This is a pretty big pull, and most of these changes have been
    floating in btrfs-next for a long time. Filipe's properties work is a
    cool building block for inheriting attributes like compression down on
    a per inode basis.

    Jeff Mahoney kicked in code to export filesystem info into sysfs.

    Otherwise, lots of performance improvements, cleanups and bug fixes.

    Looks like there are still a few other small pending incrementals, but
    I wanted to get the bulk of this in first"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (149 commits)
    Btrfs: fix spin_unlock in check_ref_cleanup
    Btrfs: setup inode location during btrfs_init_inode_locked
    Btrfs: don't use ram_bytes for uncompressed inline items
    Btrfs: fix btrfs_search_slot_for_read backwards iteration
    Btrfs: do not export ulist functions
    Btrfs: rework ulist with list+rb_tree
    Btrfs: fix memory leaks on walking backrefs failure
    Btrfs: fix send file hole detection leading to data corruption
    Btrfs: add a reschedule point in btrfs_find_all_roots()
    Btrfs: make send's file extent item search more efficient
    Btrfs: fix to catch all errors when resolving indirect ref
    Btrfs: fix protection between walking backrefs and root deletion
    btrfs: fix warning while merging two adjacent extents
    Btrfs: fix infinite path build loops in incremental send
    btrfs: undo sysfs when open_ctree() fails
    Btrfs: fix snprintf usage by send's gen_unique_name
    btrfs: fix defrag 32-bit integer overflow
    btrfs: sysfs: list the NO_HOLES feature
    btrfs: sysfs: don't show reserved incompat feature
    btrfs: call permission checks earlier in ioctls and return EPERM
    ...

    Linus Torvalds
     
  • Pull ubifs updates from Artem Bityutskiy:

    - Improve the NOR erasure quirk - now it tries to do as little writes
    as possible, because the eraseblock may be in an "unstable" state and
    write operation sometimes causes NOR chip lock-ups.

    - Both UBI and UBIFS changes are now maintainer in one single tree,
    because the amount of changes dropped significantly.

    * tag 'upstream-3.14-rc1' of git://git.infradead.org/linux-ubifs:
    UBI: avoid program operation on NOR flash after erasure interrupted
    MAINTAINERS: keep UBI and UBIFS stuff in the same tree
    UBI: fix error return code

    Linus Torvalds
     
  • Pull some further ceph acl cleanups from Sage Weil:
    "I do have a couple patches on top of what's in your tree, though, that
    clean up a couple duplicated lines in your fix and apply Christoph's
    cleanup"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    ceph: simplify ceph_{get,init}_acl
    ceph: remove duplicate declaration of ceph_setattr

    Linus Torvalds