03 Jul, 2016

1 commit


29 May, 2016

11 commits

  • Pull string hash improvements from George Spelvin:
    "This series does several related things:

    - Makes the dcache hash (fs/namei.c) useful for general kernel use.

    (Thanks to Bruce for noticing the zero-length corner case)

    - Converts the string hashes in to use the
    above.

    - Avoids 64-bit multiplies in hash_64() on 32-bit platforms. Two
    32-bit multiplies will do well enough.

    - Rids the world of the bad hash multipliers in hash_32.

    This finishes the job started in commit 689de1d6ca95 ("Minimal
    fix-up of bad hashing behavior of hash_64()")

    The vast majority of Linux architectures have hardware support for
    32x32-bit multiply and so derive no benefit from "simplified"
    multipliers.

    The few processors that do not (68000, h8/300 and some models of
    Microblaze) have arch-specific implementations added. Those
    patches are last in the series.

    - Overhauls the dcache hash mixing.

    The patch in commit 0fed3ac866ea ("namei: Improve hash mixing if
    CONFIG_DCACHE_WORD_ACCESS") was an off-the-cuff suggestion.
    Replaced with a much more careful design that's simultaneously
    faster and better. (My own invention, as there was noting suitable
    in the literature I could find. Comments welcome!)

    - Modify the hash_name() loop to skip the initial HASH_MIX(). This
    would let us salt the hash if we ever wanted to.

    - Sort out partial_name_hash().

    The hash function is declared as using a long state, even though
    it's truncated to 32 bits at the end and the extra internal state
    contributes nothing to the result. And some callers do odd things:

    - fs/hfs/string.c only allocates 32 bits of state
    - fs/hfsplus/unicode.c uses it to hash 16-bit unicode symbols not bytes

    - Modify bytemask_from_count to handle inputs of 1..sizeof(long)
    rather than 0..sizeof(long)-1. This would simplify users other
    than full_name_hash"

    Special thanks to Bruce Fields for testing and finding bugs in v1. (I
    learned some humbling lessons about "obviously correct" code.)

    On the arch-specific front, the m68k assembly has been tested in a
    standalone test harness, I've been in contact with the Microblaze
    maintainers who mostly don't care, as the hardware multiplier is never
    omitted in real-world applications, and I haven't heard anything from
    the H8/300 world"

    * 'hash' of git://ftp.sciencehorizons.net/linux:
    h8300: Add
    microblaze: Add
    m68k: Add
    : Add support for architecture-specific functions
    fs/namei.c: Improve dcache hash function
    Eliminate bad hash multipliers from hash_32() and hash_64()
    Change hash_64() return value to 32 bits
    : Define hash_str() in terms of hashlen_string()
    fs/namei.c: Add hashlen_string() function
    Pull out string hash to

    Linus Torvalds
     
  • This is just the infrastructure; there are no users yet.

    This is modelled on CONFIG_ARCH_RANDOM; a CONFIG_ symbol declares
    the existence of .

    That file may define its own versions of various functions, and define
    HAVE_* symbols (no CONFIG_ prefix!) to suppress the generic ones.

    Included is a self-test (in lib/test_hash.c) that verifies the basics.
    It is NOT in general required that the arch-specific functions compute
    the same thing as the generic, but if a HAVE_* symbol is defined with
    the value 1, then equality is tested.

    Signed-off-by: George Spelvin
    Cc: Geert Uytterhoeven
    Cc: Greg Ungerer
    Cc: Andreas Schwab
    Cc: Philippe De Muyter
    Cc: linux-m68k@lists.linux-m68k.org
    Cc: Alistair Francis
    Cc: Michal Simek
    Cc: Yoshinori Sato
    Cc: uclinux-h8-devel@lists.sourceforge.jp

    George Spelvin
     
  • The "simplified" prime multipliers made very bad hash functions, so get rid
    of them. This completes the work of 689de1d6ca.

    To avoid the inefficiency which was the motivation for the "simplified"
    multipliers, hash_64() on 32-bit systems is changed to use a different
    algorithm. It makes two calls to hash_32() instead.

    drivers/media/usb/dvb-usb-v2/af9015.c uses the old GOLDEN_RATIO_PRIME_32
    for some horrible reason, so it inherits a copy of the old definition.

    Signed-off-by: George Spelvin
    Cc: Antti Palosaari
    Cc: Mauro Carvalho Chehab

    George Spelvin
     
  • That's all that's ever asked for, and it makes the return
    type of hash_long() consistent.

    It also allows (upcoming patch) an optimized implementation
    of hash_64 on 32-bit machines.

    I tried adding a BUILD_BUG_ON to ensure the number of bits requested
    was never more than 32 (most callers use a compile-time constant), but
    adding to breaks the tools/perf compiler
    unless tools/perf/MANIFEST is updated, and understanding that code base
    well enough to update it is too much trouble. I did the rest of an
    allyesconfig build with such a check, and nothing tripped.

    Signed-off-by: George Spelvin

    George Spelvin
     
  • Finally, the first use of previous two patches: eliminate the
    separate ad-hoc string hash functions in the sunrpc code.

    Now hash_str() is a wrapper around hash_string(), and hash_mem() is
    likewise a wrapper around full_name_hash().

    Note that sunrpc code *does* call hash_mem() with a zero length, which
    is why the previous patch needed to handle that in full_name_hash().
    (Thanks, Bruce, for finding that!)

    This also eliminates the only caller of hash_long which asks for
    more than 32 bits of output.

    The comment about the quality of hashlen_string() and full_name_hash()
    is jumping the gun by a few patches; they aren't very impressive now,
    but will be improved greatly later in the series.

    Signed-off-by: George Spelvin
    Tested-by: J. Bruce Fields
    Acked-by: J. Bruce Fields
    Cc: Jeff Layton
    Cc: linux-nfs@vger.kernel.org

    George Spelvin
     
  • We'd like to make more use of the highly-optimized dcache hash functions
    throughout the kernel, rather than have every subsystem create its own,
    and a function that hashes basic null-terminated strings is required
    for that.

    (The name is to emphasize that it returns both hash and length.)

    It's actually useful in the dcache itself, specifically d_alloc_name().
    Other uses in the next patch.

    full_name_hash() is also tweaked to make it more generally useful:
    1) Take a "char *" rather than "unsigned char *" argument, to
    be consistent with hash_name().
    2) Handle zero-length inputs. If we want more callers, we don't want
    to make them worry about corner cases.

    Signed-off-by: George Spelvin

    George Spelvin
     
  • ... so they can be used without the rest of

    The hashlen_* macros will make sense next patch.

    Signed-off-by: George Spelvin

    George Spelvin
     
  • Pull chrome platform updates from Olof Johansson
    "A handful of Chrome driver and binding changes this merge window:

    - a few patches to fix probing and configuration of pstore

    - a few patches adding Elan touchpad registration on a few devices

    - EC changes: a security fix dealing with max message sizes and
    addition of compat_ioctl support.

    - keyboard backlight control support

    There was also an accidential duplicate registration of trackpads on
    'Leon', which was reverted just recently"

    * tag 'chrome-platform' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform:
    Revert "platform/chrome: chromeos_laptop: Add Leon Touch"
    platform/chrome: chromeos_laptop - Add Elan touchpad for Wolf
    platform/chrome: chromeos_laptop - Add elan trackpad option for C720
    platform/chrome: cros_ec_dev - Populate compat_ioctl
    platform/chrome: cros_ec_lightbar - use name instead of ID to hide lightbar attributes
    platform/chrome: cros_ec_dev - Fix security issue
    platform/chrome: Add Chrome OS keyboard backlight LEDs support
    platform/chrome: use to_platform_device()
    platform/chrome: pstore: Move to larger record size.
    platform/chrome: pstore: probe for ramoops buffer using acpi
    platform/chrome: chromeos_laptop: Add Leon Touch

    Linus Torvalds
     
  • Pull more sound updates from Takashi Iwai:
    "This is the second update round for 4.7-rc1. Most of changes are
    about the pending ASoC updates and fixes, including a few new drivers.
    Below are some highlights:

    ASoC:
    - New drivers for MAX98371 and TAS5720
    - SPI support for TLV320AIC32x4, along with the module split
    - TDM support for STI Uniperf IPs
    - Remaining topology API fixes / updates

    HDA:
    - A couple of Dell quirks and new Realtek codec support"

    * tag 'sound-4.7-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (63 commits)
    ALSA: hda - Fix headset mic detection problem for one Dell machine
    spi: spi-ep93xx: Fix the PTR_ERR() argument
    ALSA: hda/realtek - Add support for ALC295/ALC3254
    ASoC: kirkwood: fix build failure
    ALSA: hda - Fix headphone noise on Dell XPS 13 9360
    ASoC: ak4642: Enable cache usage to fix crashes on resume
    ASoC: twl6040: Disconnect AUX output pads on digital mute
    ASoC: tlv320aic32x4: Properly implement the positive and negative pins into the mixers
    rcar: src: skip disabled-SRC nodes
    ASoC: max98371 Remove duplicate entry in max98371_reg
    ASoC: twl6040: Select LPPLL during standby
    ASoC: rsnd: don't use prohibited number to PDMACHCRn.SRS
    ASoC: simple-card: Add pm callbacks to platform driver
    ASoC: pxa: Fix module autoload for platform drivers
    ASoC: topology: Fix memory leak in widget creation
    ASoC: Add max98371 codec driver
    ASoC: rsnd: count .probe/.remove for rsnd_mod_call()
    ASoC: topology: Check size mismatch of ABI objects before parsing
    ASoC: topology: Check failure to create a widget
    ASoC: add support for TAS5720 digital amplifier
    ...

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "Here are the outstanding target pending updates for v4.7-rc1.

    The highlights this round include:

    - Allow external PR/ALUA metadata path be defined at runtime via top
    level configfs attribute (Lee)
    - Fix target session shutdown bug for ib_srpt multi-channel (hch)
    - Make TFO close_session() and shutdown_session() optional (hch)
    - Drop se_sess->sess_kref + convert tcm_qla2xxx to internal kref
    (hch)
    - Add tcm_qla2xxx endpoint attribute for basic FC jammer (Laurence)
    - Refactor iscsi-target RX/TX PDU encode/decode into common code
    (Varun)
    - Extend iscsit_transport with xmit_pdu, release_cmd, get_rx_pdu,
    validate_parameters, and get_r2t_ttt for generic ISO offload
    (Varun)
    - Initial merge of cxgb iscsi-segment offload target driver (Varun)

    The bulk of the changes are Chelsio's new driver, along with a number
    of iscsi-target common code improvements made by Varun + Co along the
    way"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (29 commits)
    iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race
    cxgbit: Use type ISCSI_CXGBIT + cxgbit tpg_np attribute
    iscsi-target: Convert transport drivers to signal rdma_shutdown
    iscsi-target: Make iscsi_tpg_np driver show/store use generic code
    tcm_qla2xxx Add SCSI command jammer/discard capability
    iscsi-target: graceful disconnect on invalid mapping to iovec
    target: need_to_release is always false, remove redundant check and kfree
    target: remove sess_kref and ->shutdown_session
    iscsi-target: remove usage of ->shutdown_session
    tcm_qla2xxx: introduce a private sess_kref
    target: make close_session optional
    target: make ->shutdown_session optional
    target: remove acl_stop
    target: consolidate and fix session shutdown
    cxgbit: add files for cxgbit.ko
    iscsi-target: export symbols
    iscsi-target: call complete on conn_logout_comp
    iscsi-target: clear tx_thread_active
    iscsi-target: add new offload transport type
    iscsi-target: use conn_transport->transport_type in text rsp
    ...

    Linus Torvalds
     
  • Pull more rdma updates from Doug Ledford:
    "This is the second group of code for the 4.7 merge window. It looks
    large, but only in one sense. I'll get to that in a minute. The list
    of changes here breaks down as follows:

    - Dynamic counter infrastructure in the IB drivers

    This is a sysfs based code to allow free form access to the
    hardware counters RDMA devices might support so drivers don't need
    to code this up repeatedly themselves

    - SendOnlyFullMember multicast support

    - IB router support

    - A couple misc fixes

    - The big item on the list: hfi1 driver updates, plus moving the hfi1
    driver out of staging

    There was a group of 15 patches in the hfi1 list that I thought I had
    in the first pull request but they weren't. So that added to the
    length of the hfi1 section here.

    As far as these go, everything but the hfi1 is pretty straight
    forward.

    The hfi1 is, if you recall, the driver that Al had complaints about
    how it used the write/writev interfaces in an overloaded fashion. The
    write portion of their interface behaved like the write handler in the
    IB stack proper and did bi-directional communications. The writev
    interface, on the other hand, only accepts SDMA request structures.
    The completions for those structures are sent back via an entirely
    different event mechanism.

    With the security patch, we put security checks on the write
    interface, however, we also knew they would be going away soon. Now,
    we've converted the write handler in the hfi1 driver to use ioctls
    from the IB reserved magic area for its bidirectional communications.
    With that change, Intel has addressed all of the items originally on
    their TODO when they went into staging (as well as many items added to
    the list later).

    As such, I moved them out, and since they were the last item in the
    staging/rdma directory, and I don't have immediate plans to use the
    staging area again, I removed the staging/rdma area.

    Because of the move out of staging, as well as a series of 5 patches
    in the hfi1 driver that removed code people thought should be done in
    a different way and was optional to begin with (a snoop debug
    interface, an eeprom driver for an eeprom connected directory to their
    hfi1 chip and not via an i2c bus, and a few other things like that),
    the line count, especially the removal count, is high"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (56 commits)
    staging/rdma: Remove the entire rdma subdirectory of staging
    IB/core: Make device counter infrastructure dynamic
    IB/hfi1: Fix pio map initialization
    IB/hfi1: Correct 8051 link parameter settings
    IB/hfi1: Update pkey table properly after link down or FM start
    IB/rdamvt: Fix rdmavt s_ack_queue sizing
    IB/rdmavt: Max atomic value should be a u8
    IB/hfi1: Fix hard lockup due to not using save/restore spin lock
    IB/hfi1: Add tracing support for send with invalidate opcode
    IB/hfi1, qib: Add ieth to the packet header definitions
    IB/hfi1: Move driver out of staging
    IB/hfi1: Do not free hfi1 cdev parent structure early
    IB/hfi1: Add trace message in user IOCTL handling
    IB/hfi1: Remove write(), use ioctl() for user cmds
    IB/hfi1: Add ioctl() interface for user commands
    IB/hfi1: Remove unused user command
    IB/hfi1: Remove snoop/diag interface
    IB/hfi1: Remove EPROM functionality from data device
    IB/hfi1: Remove UI char device
    IB/hfi1: Remove multiple device cdev
    ...

    Linus Torvalds
     

28 May, 2016

11 commits

  • Pull more i2c updates from Wolfram Sang:
    "Here is the second pull request from I2C for this merge window:

    - one new feature (which nearly fell through the cracks): i2c-dev
    does now use the cdev API so it can handle >256 minors. Seems
    people do need that.

    - two fixes for the just added DMA feature for i2c-rcar

    - some typo fixes"

    * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: dev: don't start function name with 'return'
    i2c: dev: switch from register_chrdev to cdev API
    i2c: xlr: rename ARCH_TANGOX to ARCH_TANGO
    i2c: at91: change log when dma configuration fails
    misc: at24: Fix typo in at24 header file
    i2c: rcar: should depend on HAS_DMA
    i2c: rcar: use dma_request_chan()

    Linus Torvalds
     
  • Pull vfs fixes from Al Viro:
    "Followups to the parallel lookup work:

    - update docs

    - restore killability of the places that used to take ->i_mutex
    killably now that we have down_write_killable() merged

    - Additionally, it turns out that I missed a prerequisite for
    security_d_instantiate() stuff - ->getxattr() wasn't the only thing
    that could be called before dentry is attached to inode; with smack
    we needed the same treatment applied to ->setxattr() as well"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    switch ->setxattr() to passing dentry and inode separately
    switch xattr_handler->set() to passing dentry and inode separately
    restore killability of old mutex_lock_killable(&inode->i_mutex) users
    add down_write_killable_nested()
    update D/f/directory-locking

    Linus Torvalds
     
  • smack ->d_instantiate() uses ->setxattr(), so to be able to call it before
    we'd hashed the new dentry and attached it to inode, we need ->setxattr()
    instances getting the inode as an explicit argument rather than obtaining
    it from dentry.

    Similar change for ->getxattr() had been done in commit ce23e64. Unlike
    ->getxattr() (which is used by both selinux and smack instances of
    ->d_instantiate()) ->setxattr() is used only by smack one and unfortunately
    it got missed back then.

    Reported-by: Seung-Woo Kim
    Tested-by: Casey Schaufler
    Signed-off-by: Al Viro

    Al Viro
     
  • Now that the allmodconfig x86-64 build is clean wrt IS_ERR_VALUE() uses
    on integers, add a cast to a pointer and back to the argument, so that
    any new mis-uses of IS_ERR_VALUE() will cause warnings like

    warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

    so that we don't re-introduce any bogus uses.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The do_brk() and vm_brk() return value was "unsigned long" and returned
    the starting address on success, and an error value on failure. The
    reasons are entirely historical, and go back to it basically behaving
    like the mmap() interface does.

    However, nobody actually wanted that interface, and it causes totally
    pointless IS_ERR_VALUE() confusion.

    What every single caller actually wants is just the simpler integer
    return of zero for success and negative error number on failure.

    So just convert to that much clearer and more common calling convention,
    and get rid of all the IS_ERR_VALUE() uses wrt vm_brk().

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The register_page_bootmem_info_node() function needs to be marked __init
    in order to avoid a new warning introduced by commit f65e91df25aa ("mm:
    use early_pfn_to_nid in register_page_bootmem_info_node").

    Otherwise you'll get a warning about how a non-init function calls
    early_pfn_to_nid (which is __meminit)

    Cc: Yang Shi
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "A set of fixes that wasn't included in the first merge window pull
    request. This pull request contains:

    - A set of NVMe fixes from Keith, and one from Nic for the integrity
    side of it.

    - Fix from Ming, clearing ->mq_ops if we don't successfully setup a
    queue for multiqueue.

    - A set of stability fixes for bcache from Jiri, and also marking
    bcache as orphaned as it's no longer actively maintained (in
    mainline, at least)"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    blk-mq: clear q->mq_ops if init fail
    MAINTAINERS: mark bcache as orphan
    bcache: bch_gc_thread() is not freezable
    bcache: bch_allocator_thread() is not freezable
    bcache: bch_writeback_thread() is not freezable
    nvme/host: Add missing blk_integrity tag_size + flags assignments
    NVMe: Add device ID's with stripe quirk
    NVMe: Short-cut removal on surprise hot-unplug
    NVMe: Allow user initiated rescan
    NVMe: Reduce driver log spamming
    NVMe: Unbind driver on failure
    NVMe: Delete only created queues
    NVMe: Allocate queues only for online cpus

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:

    - one IMX built-in regression fix

    - a set of amdgpu fixes, mostly powerplay and polaris GPU stuff

    - a set of i915 fixes all over, many cc'ed to stable.

    The i915 batch contain support for DP++ dongle detection, which is
    used to fix some regressions in the HDMI color depth area

    * tag 'drm-fixes-v4.7-rc1' of git://people.freedesktop.org/~airlied/linux: (44 commits)
    drm/amd: add Kconfig dependency for ACP on DRM_AMDGPU
    drm/amdgpu: Fix hdmi deep color support.
    drm/amdgpu: fix bug in fence driver fini
    drm/i915: Stop automatically retiring requests after a GPU hang
    drm/i915: Unify intel_ring_begin()
    drm/i915: Ignore stale wm register values on resume on ilk-bdw (v2)
    drm/i915/psr: Try to program link training times correctly
    drm/imx: Match imx-ipuv3-crtc components using device node in platform data
    drm/i915/bxt: Adjusting the error in horizontal timings retrieval
    drm/i915: Don't leave old junk in ilk active watermarks on readout
    drm/i915: s/DPPL/DPLL/ for SKL DPLLs
    drm/i915: Fix gen8 semaphores id for legacy mode
    drm/i915: Set crtc_state->lane_count for HDMI
    drm/i915/BXT: Retrieving the horizontal timing for DSI
    drm/i915: Protect gen7 irq_seqno_barrier with uncore lock
    drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms
    drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT
    drm/i915: Enable/disable TMDS output buffers in DP++ adaptor as needed
    drm/i915: Respect DP++ adaptor TMDS clock limit
    drm: Add helper for DP++ adaptors
    ...

    Linus Torvalds
     
  • Pull intel IOMMU updates from David Woodhouse:
    "This patchset improves the scalability of the Intel IOMMU code by
    resolving two spinlock bottlenecks and eliminating the linearity of
    the IOVA allocator, yielding up to ~5x performance improvement and
    approaching 'iommu=off' performance"

    * git://git.infradead.org/intel-iommu:
    iommu/vt-d: Use per-cpu IOVA caching
    iommu/iova: introduce per-cpu caching to iova allocation
    iommu/vt-d: change intel-iommu to use IOVA frame numbers
    iommu/vt-d: avoid dev iotlb logic for domains with no dev iotlbs
    iommu/vt-d: only unmap mapped entries
    iommu/vt-d: correct flush_unmaps pfn usage
    iommu/vt-d: per-cpu deferred invalidation queues
    iommu/vt-d: refactoring of deferred flush entries

    Linus Torvalds
     
  • Pull second batch of KVM updates from Radim Krčmář:
    "General:

    - move kvm_stat tool from QEMU repo into tools/kvm/kvm_stat (kvm_stat
    had nothing to do with QEMU in the first place -- the tool only
    interprets debugfs)

    - expose per-vm statistics in debugfs and support them in kvm_stat
    (KVM always collected per-vm statistics, but they were summarised
    into global statistics)

    x86:

    - fix dynamic APICv (VMX was improperly configured and a guest could
    access host's APIC MSRs, CVE-2016-4440)

    - minor fixes

    ARM changes from Christoffer Dall:

    - new vgic reimplementation of our horribly broken legacy vgic
    implementation. The two implementations will live side-by-side
    (with the new being the configured default) for one kernel release
    and then we'll remove the legacy one.

    - fix for a non-critical issue with virtual abort injection to guests"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (70 commits)
    tools: kvm_stat: Add comments
    tools: kvm_stat: Introduce pid monitoring
    KVM: Create debugfs dir and stat files for each VM
    MAINTAINERS: Add kvm tools
    tools: kvm_stat: Powerpc related fixes
    tools: Add kvm_stat man page
    tools: Add kvm_stat vm monitor script
    kvm:vmx: more complete state update on APICv on/off
    KVM: SVM: Add more SVM_EXIT_REASONS
    KVM: Unify traced vector format
    svm: bitwise vs logical op typo
    KVM: arm/arm64: vgic-new: Synchronize changes to active state
    KVM: arm/arm64: vgic-new: enable build
    KVM: arm/arm64: vgic-new: implement mapped IRQ handling
    KVM: arm/arm64: vgic-new: Wire up irqfd injection
    KVM: arm/arm64: vgic-new: Add vgic_v2/v3_enable
    KVM: arm/arm64: vgic-new: vgic_init: implement map_resources
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_init
    KVM: arm/arm64: vgic-new: vgic_init: implement vgic_create
    KVM: arm/arm64: vgic-new: vgic_init: implement kvm_vgic_hyp_init
    ...

    Linus Torvalds
     
  • preparation for similar switch in ->setxattr() (see the next commit for
    rationale).

    Signed-off-by: Al Viro

    Al Viro
     

27 May, 2016

17 commits

  • …/sound into for-linus

    ASoC: Updates for v4.7 part 2

    Really sorry about this late pull request. It looks like at the time I
    sent my pull request for v4.7 there was some conflict or other issue
    which caused my script to stop merging the ASoC branches at some point
    after the HDMI changes.

    It's all specific driver updates, including:

    - New drivers for MAX98371 and TAS5720.
    - SPI support for TLV320AIC32x4.
    - TDM support for STI Uniperf IPs.

    This code should all have been in -next prior to the merge window apart
    from some fixes, it dropped out on the 18th.

    Takashi Iwai
     
  • Mark Brown
     
  • I see the main drm pull got merged, here's the first batch of fixes for
    4.7 already. Fixes all around, a large portion cc: stable stuff.

    [airlied: the DP++ stuff is a regression fix].
    * tag 'drm-intel-next-fixes-2016-05-25' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Stop automatically retiring requests after a GPU hang
    drm/i915: Unify intel_ring_begin()
    drm/i915: Ignore stale wm register values on resume on ilk-bdw (v2)
    drm/i915/psr: Try to program link training times correctly
    drm/i915/bxt: Adjusting the error in horizontal timings retrieval
    drm/i915: Don't leave old junk in ilk active watermarks on readout
    drm/i915: s/DPPL/DPLL/ for SKL DPLLs
    drm/i915: Fix gen8 semaphores id for legacy mode
    drm/i915: Set crtc_state->lane_count for HDMI
    drm/i915/BXT: Retrieving the horizontal timing for DSI
    drm/i915: Protect gen7 irq_seqno_barrier with uncore lock
    drm/i915: Re-enable GGTT earlier during resume on pre-gen6 platforms
    drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT
    drm/i915: Enable/disable TMDS output buffers in DP++ adaptor as needed
    drm/i915: Respect DP++ adaptor TMDS clock limit
    drm: Add helper for DP++ adaptors

    Dave Airlie
     
  • Pull kbuild updates from Michal Marek:

    - new option CONFIG_TRIM_UNUSED_KSYMS which does a two-pass build and
    unexports symbols which are not used in the current config [Nicolas
    Pitre]

    - several kbuild rule cleanups [Masahiro Yamada]

    - warning option adjustments for gcov etc [Arnd Bergmann]

    - a few more small fixes

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (31 commits)
    kbuild: move -Wunused-const-variable to W=1 warning level
    kbuild: fix if_change and friends to consider argument order
    kbuild: fix adjust_autoksyms.sh for modules that need only one symbol
    kbuild: fix ksym_dep_filter when multiple EXPORT_SYMBOL() on the same line
    gcov: disable -Wmaybe-uninitialized warning
    gcov: disable tree-loop-im to reduce stack usage
    gcov: disable for COMPILE_TEST
    Kbuild: disable 'maybe-uninitialized' warning for CONFIG_PROFILE_ALL_BRANCHES
    Kbuild: change CC_OPTIMIZE_FOR_SIZE definition
    kbuild: forbid kernel directory to contain spaces and colons
    kbuild: adjust ksym_dep_filter for some cmd_* renames
    kbuild: Fix dependencies for final vmlinux link
    kbuild: better abstract vmlinux sequential prerequisites
    kbuild: fix call to adjust_autoksyms.sh when output directory specified
    kbuild: Get rid of KBUILD_STR
    kbuild: rename cmd_as_s_S to cmd_cpp_s_S
    kbuild: rename cmd_cc_i_c to cmd_cpp_i_c
    kbuild: drop redundant "PHONY += FORCE"
    kbuild: delete unnecessary "@:"
    kbuild: mark help target as PHONY
    ...

    Linus Torvalds
     
  • Merge fixes from Andrew Morton:
    "10 fixes"

    * emailed patches from Andrew Morton :
    drivers/pinctrl/intel/pinctrl-baytrail.c: fix build with gcc-4.4
    update "mm/zsmalloc: don't fail if can't create debugfs info"
    dma-debug: avoid spinlock recursion when disabling dma-debug
    mm: oom_reaper: remove some bloat
    memcg: fix mem_cgroup_out_of_memory() return value.
    ocfs2: fix improper handling of return errno
    mm: slub: remove unused virt_to_obj()
    mm: kasan: remove unused 'reserved' field from struct kasan_alloc_meta
    mm: make CONFIG_DEFERRED_STRUCT_PAGE_INIT depends on !FLATMEM explicitly
    seqlock: fix raw_read_seqcount_latch()

    Linus Torvalds
     
  • Pull DAX locking updates from Ross Zwisler:
    "Filesystem DAX locking for 4.7

    - We use a bit in an exceptional radix tree entry as a lock bit and
    use it similarly to how page lock is used for normal faults. This
    fixes races between hole instantiation and read faults of the same
    index.

    - Filesystem DAX PMD faults are disabled, and will be re-enabled when
    PMD locking is implemented"

    * tag 'dax-locking-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    dax: Remove i_mmap_lock protection
    dax: Use radix tree entry lock to protect cow faults
    dax: New fault locking
    dax: Allow DAX code to replace exceptional entries
    dax: Define DAX lock bit for radix tree exceptional entry
    dax: Make huge page handling depend of CONFIG_BROKEN
    dax: Fix condition for filling of PMD holes

    Linus Torvalds
     
  • Pull misc DAX updates from Vishal Verma:
    "DAX error handling for 4.7

    - Until now, dax has been disabled if media errors were found on any
    device. This enables the use of DAX in the presence of these
    errors by making all sector-aligned zeroing go through the driver.

    - The driver (already) has the ability to clear errors on writes that
    are sent through the block layer using 'DSMs' defined in ACPI 6.1.

    Other misc changes:

    - When mounting DAX filesystems, check to make sure the partition is
    page aligned. This is a requirement for DAX, and previously, we
    allowed such unaligned mounts to succeed, but subsequent
    reads/writes would fail.

    - Misc/cleanup fixes from Jan that remove unused code from DAX
    related to zeroing, writeback, and some size checks"

    * tag 'dax-misc-for-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    dax: fix a comment in dax_zero_page_range and dax_truncate_page
    dax: for truncate/hole-punch, do zeroing through the driver if possible
    dax: export a low-level __dax_zero_page_range helper
    dax: use sb_issue_zerout instead of calling dax_clear_sectors
    dax: enable dax in the presence of known media errors (badblocks)
    dax: fallback from pmd to pte on error
    block: Update blkdev_dax_capable() for consistency
    xfs: Add alignment check for DAX mount
    ext2: Add alignment check for DAX mount
    ext4: Add alignment check for DAX mount
    block: Add bdev_dax_supported() for dax mount checks
    block: Add vfs_msg() interface
    dax: Remove redundant inode size checks
    dax: Remove pointless writeback from dax_do_io()
    dax: Remove zeroing from dax_io()
    dax: Remove dead zeroing code from fault handlers
    ext2: Avoid DAX zeroing to corrupt data
    ext2: Fix block zeroing in ext2_get_blocks() for DAX
    dax: Remove complete_unwritten argument
    DAX: move RADIX_DAX_ definitions to dax.c

    Linus Torvalds
     
  • mmput_async is currently used only from the oom_reaper which is defined
    only for CONFIG_MMU. We can save work_struct in mm_struct for
    !CONFIG_MMU.

    [akpm@linux-foundation.org: fix typo, per Minchan]
    Link: http://lkml.kernel.org/r/20160520061658.GB19172@dhcp22.suse.cz
    Reported-by: Minchan Kim
    Signed-off-by: Michal Hocko
    Acked-by: Minchan Kim
    Cc: Tetsuo Handa
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • It's unused since commit 7ed2f9e66385 ("mm, kasan: SLAB support")

    Link: http://lkml.kernel.org/r/1464020961-2242-1-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin
    Cc: Joonsoo Kim
    Cc: David Rientjes
    Cc: Pekka Enberg
    Cc: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • lockless_dereference() is supposed to take pointer not integer.

    Link: http://lkml.kernel.org/r/20160521201448.GA7429@p183.telecom.by
    Signed-off-by: Alexey Dobriyan
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Pull Ceph updates from Sage Weil:
    "This changeset has a few main parts:

    - Ilya has finished a huge refactoring effort to sync up the
    client-side logic in libceph with the user-space client code, which
    has evolved significantly over the last couple years, with lots of
    additional behaviors (e.g., how requests are handled when cluster
    is full and transitions from full to non-full).

    This structure of the code is more closely aligned with userspace
    now such that it will be much easier to maintain going forward when
    behavior changes take place. There are some locking improvements
    bundled in as well.

    - Zheng adds multi-filesystem support (multiple namespaces within the
    same Ceph cluster)

    - Zheng has changed the readdir offsets and directory enumeration so
    that dentry offsets are hash-based and therefore stable across
    directory fragmentation events on the MDS.

    - Zheng has a smorgasbord of bug fixes across fs/ceph"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (71 commits)
    ceph: fix wake_up_session_cb()
    ceph: don't use truncate_pagecache() to invalidate read cache
    ceph: SetPageError() for writeback pages if writepages fails
    ceph: handle interrupted ceph_writepage()
    ceph: make ceph_update_writeable_page() uninterruptible
    libceph: make ceph_osdc_wait_request() uninterruptible
    ceph: handle -EAGAIN returned by ceph_update_writeable_page()
    ceph: make fault/page_mkwrite return VM_FAULT_OOM for -ENOMEM
    ceph: block non-fatal signals for fault/page_mkwrite
    ceph: make logical calculation functions return bool
    ceph: tolerate bad i_size for symlink inode
    ceph: improve fragtree change detection
    ceph: keep leaf frag when updating fragtree
    ceph: fix dir_auth check in ceph_fill_dirfrag()
    ceph: don't assume frag tree splits in mds reply are sorted
    ceph: fix inode reference leak
    ceph: using hash value to compose dentry offset
    ceph: don't forbid marking directory complete after forward seek
    ceph: record 'offset' for each entry of readdir result
    ceph: define 'end/complete' in readdir reply as bit flags
    ...

    Linus Torvalds
     
  • This commit fixes a simple typo s/mvmem/nvmem in the
    example.

    Signed-off-by: Moritz Fischer
    Signed-off-by: Wolfram Sang

    Moritz Fischer
     
  • Pull NFS client updates from Anna Schumaker:
    "Highlights include:

    Features:
    - Add support for the NFS v4.2 COPY operation
    - Add support for NFS/RDMA over IPv6

    Bugfixes and cleanups:
    - Avoid race that crashes nfs_init_commit()
    - Fix oops in callback path
    - Fix LOCK/OPEN race when unlinking an open file
    - Choose correct stateids when using delegations in setattr, read and
    write
    - Don't send empty SETATTR after OPEN_CREATE
    - xprtrdma: Prevent server from writing a reply into memory client
    has released
    - xprtrdma: Support using Read list and Reply chunk in one RPC call"

    * tag 'nfs-for-4.7-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (61 commits)
    pnfs: pnfs_update_layout needs to consider if strict iomode checking is on
    nfs/flexfiles: Use the layout segment for reading unless it a IOMODE_RW and reading is disabled
    nfs/flexfiles: Helper function to detect FF_FLAGS_NO_READ_IO
    nfs: avoid race that crashes nfs_init_commit
    NFS: checking for NULL instead of IS_ERR() in nfs_commit_file()
    pnfs: make pnfs_layout_process more robust
    pnfs: rework LAYOUTGET retry handling
    pnfs: lift retry logic from send_layoutget to pnfs_update_layout
    pnfs: fix bad error handling in send_layoutget
    flexfiles: add kerneldoc header to nfs4_ff_layout_prepare_ds
    flexfiles: remove pointless setting of NFS_LAYOUT_RETURN_REQUESTED
    pnfs: only tear down lsegs that precede seqid in LAYOUTRETURN args
    pnfs: keep track of the return sequence number in pnfs_layout_hdr
    pnfs: record sequence in pnfs_layout_segment when it's created
    pnfs: don't merge new ff lsegs with ones that have LAYOUTRETURN bit set
    pNFS/flexfiles: When initing reads or writes, we might have to retry connecting to DSes
    pNFS/flexfiles: When checking for available DSes, conditionally check for MDS io
    pNFS/flexfile: Fix erroneous fall back to read/write through the MDS
    NFS: Reclaim writes via writepage are opportunistic
    NFSv4: Use the right stateid for delegations in setattr, read and write
    ...

    Linus Torvalds
     
  • In practice, each RDMA device has a unique set of counters that the
    hardware implements. Having a central set of counters that they must
    all adhere to is limiting and causes many useful counters to not be
    available.

    Therefore we create a dynamic counter registration infrastructure.

    The driver must implement a stats structure allocation routine, in
    which the driver must place the directory name it wants, a list of
    names for all of the counters, an array of u64 counters themselves,
    plus a few generic configuration options.

    We then implement a core routine to create a sysfs file for each
    of the named stats elements, and a core routine to retrieve the
    stats when any of the sysfs attribute files are read.

    To avoid excessive beating on the stats generation routine in the
    drivers, the core code also caches the stats for a short period of
    time so that someone attempting to read all of the stats in a
    given device's directory will not result in a stats generation
    call per file read.

    Future work will attempt to standardize just the shared stats
    elements, and possibly add a method to get the stats via netlink
    in addition to sysfs.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Mark Bloch
    Reviewed-by: Steve Wise
    Signed-off-by: Doug Ledford
    [ Add caching, make structure names more informative, add i40iw support,
    other significant rewrites from the original patch ]

    Christoph Lameter
     
  • Doug Ledford
     
  • Pull MMC fixes from Ulf Hansson:
    "Here are some mmc fixes intended for v4.7 rc1. They are based on a
    commit earlier in the merge window and have been tested in linux-next
    for a while.

    MMC core:
    - Prevent re-tuning while serving requests for RPMB partitions
    - Extend timeout for long read time quirk to support more eMMCs

    MMC host:
    - sdhci-acpi: Ensure connected devices are powered when probing
    - sdhci-pci|acpi: Remove unreliable MMC_CAP_BUS_WIDTH_TEST for Intel HWs
    - dw_mmc: Correct the assigning of max_blk_size
    - dw_mmc-rockchip: Allow RPMB partitions to be created
    - dw_mmc-rockchip: Set the drive phase properly"

    * tag 'mmc-v4.7-rc1' of git://git.linaro.org/people/ulf.hansson/mmc:
    mmc: sdhci-acpi: Remove MMC_CAP_BUS_WIDTH_TEST for Intel controllers
    mmc: sdhci-pci: Remove MMC_CAP_BUS_WIDTH_TEST for Intel controllers
    mmc: longer timeout for long read time quirk
    mmc: dw_mmc: rockchip: Set the drive phase properly
    mmc: dw_mmc: fix the wrong max_blk_size
    mmc: dw_mmc-rockchip: add MMC_CAP_CMD23 capabilities
    mmc: sdhci-acpi: Ensure connected devices are powered when probing
    ACPI / PM: Export acpi_device_fix_up_power()
    mmc: block: Pause re-tuning while switched to the RPMB partition
    mmc: block: Always switch back to main area after RPMB access
    mmc: core: Add a facility to "pause" re-tuning

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:

    - Introduce generic ADC thermal driver, based on OF thermal (Laxman
    Dewangan)

    - Introduce new thermal driver for Tango chips (Marc Gonzalez)

    - Rockchip driver support for RK3399, RK3366, and some fixes (Caesar
    Wang, Elaine Zhang and Shawn Lin)

    - Add CPU power cooling model to Mediatek thermal driver (Dawei Chien)

    - Wider usage of dev_thermal_zone_of_sensor_register (Eduardo Valentin)

    - TI thermal driver gained a new maintainer (Keerthy).

    - Enabled powerclamp driver by checking CPU feature and package cstate
    counter instead of CPU whitelist (Jacob Pan)

    - Various fixes on thermal governor, OF thermal, Tegra, and RCAR

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (50 commits)
    thermal: tango: initialize TEMPSI_CFG
    thermal: rockchip: use the usleep_range instead of udelay
    thermal: rockchip: add the notes for better reading
    thermal: rockchip: Support RK3366 SoCs in the thermal driver
    thermal: rockchip: handle the power sequence for tsadc controller
    thermal: rockchip: update the tsadc table for rk3399
    thermal: rockchip: fixes the code_to_temp for tsadc driver
    thermal: rockchip: disable thermal->clk in err case
    thermal: tegra: add Tegra132 specific SOC_THERM driver
    thermal: fix ptr_ret.cocci warnings
    thermal: mediatek: Add cpu dynamic power cooling model.
    thermal: generic-adc: Add ADC based thermal sensor driver
    thermal: generic-adc: Add DT binding for ADC based thermal sensor
    thermal: tegra: fix static checker warning
    thermal: tegra: mark PM functions __maybe_unused
    thermal: add temperature sensor support for tango SoC
    thermal: hisilicon: fix IRQ imbalance enabling
    thermal: hisilicon: support to use any sensor
    thermal: rcar: Remove binding docs for r8a7794
    thermal: tegra: add PM support
    ...

    Linus Torvalds