1. 21 Aug, 2018 1 commit
    • Harald Freudenberger's avatar
      s390/zcrypt: hex string mask improvements for apmask and aqmask. · 3d8f60d3
      Harald Freudenberger authored
      The sysfs attributes /sys/bus/ap/apmask and /sys/bus/ap/aqmask
      and the kernel command line arguments ap.apm and ap.aqm get
      an improvement of the value parsing with this patch:
      
      The mask values are bitmaps in big endian order starting with bit 0.
      So adapter number 0 is the leftmost bit, mask is 0x8000... The sysfs
      attributes and the kernel command line accept 2 different formats:
       - Absolute hex string starting with 0x like "0x12345678" does set
         the mask starting from left to right. If the given string is shorter
         than the mask it is padded with 0s on the right. If the string is
         longer than the mask an error comes back (EINVAL).
       - Relative format - a concatenation (done with ',') of the terms
         +<bitnr>[-<bitnr>] or -<bitnr>[-<bitnr>]. <bitnr> may be any
         valid number (hex, decimal or octal) in the range 0...255.
         Here are some examples:
           "+0-15,+32,-128,-0xFF"
           "-0-255,+1-16,+0x128"
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      3d8f60d3
  2. 20 Aug, 2018 3 commits
    • Harald Freudenberger's avatar
      s390/zcrypt: AP bus support for alternate driver(s) · 7e0bdbe5
      Harald Freudenberger authored
      The current AP bus, AP devices and AP device drivers implementation
      uses a clearly defined mapping for binding AP devices to AP device
      drivers. So for example a CEX6C queue will always be bound to the
      cex4queue device driver.
      
      The Linux Device Driver model has no sensitivity for more than one
      device driver eligible for one device type. If there exist more than
      one drivers matching to the device type, simple all drivers are tried
      consecutively.  There is no way to determine and influence the probing
      order of the drivers.
      
      With KVM there is a need to provide additional device drivers matching
      to the very same type of AP devices. With a simple implementation the
      KVM drivers run in competition to the regular drivers. Whichever
      'wins' a device depends on build order and implementation details
      within the common Linux Device Driver Model and is not
      deterministic. However, a userspace process could figure out which
      device should be bound to which driver and sort out the correct
      binding by manipulating attributes in the sysfs.
      
      If for security reasons a AP device must not get bound to the 'wrong'
      device driver the sorting out has to be done within the Linux kernel
      by the AP bus code. This patch modifies the behavior of the AP bus
      for probing drivers for devices in a way that two sets of drivers are
      usable. Two new bitmasks 'apmask' and 'aqmask' are used to mark a
      subset of the APQN range for 'usable by the ap bus and the default
      drivers' or 'not usable by the default drivers and thus available for
      alternate drivers like vfio-xxx'. So an APQN which is addressed by
      this masking only the default drivers will be probed. In contrary an
      APQN which is not addressed by the masks will never be probed and
      bound to default drivers but onny to alternate drivers.
      
      Eventually the two masks give a way to divide the range of APQNs into
      two pools: one pool of APQNs used by the AP bus and the default
      drivers and thus via zcrypt drivers available to the userspace of the
      system. And another pool where no zcrypt drivers are bound to and
      which can be used by alternate drivers (like vfio-xxx) for their
      needs. This division is hot-plug save and makes sure a APQN assigned
      to an alternate driver is at no time somehow exploitable by the wrong
      party.
      
      The two masks are located in sysfs at /sys/bus/ap/apmask and
      /sys/bus/ap/aqmask.  The mask syntax is exactly the same as the
      already existing mask attributes in the /sys/bus/ap directory (for
      example ap_usage_domain_mask and ap_control_domain_mask).
      
      By default all APQNs belong to the ap bus and the default drivers:
      
        cat /sys/bus/ap/apmask
        0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
        cat /sys/bus/ap/aqmask
        0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
      
      The masks can be changed at boot time with the kernel command line
      like this:
      
        ... ap.apmask=0xffff ap.aqmask=0x40
      
      This would give these two pools:
      
        default drivers pool:    adapter 0 - 15, domain 1
        alternate drivers pool:  adapter 0 - 15, all but domain 1
      			   adapter 16-255, all domains
      
      The sysfs attributes for this two masks are writeable and an
      administrator is able to reconfigure the assignements on the fly by
      writing new mask values into.  With changing the mask(s) a revision of
      the existing queue to driver bindings is done. So all APQNs which are
      bound to the 'wrong' driver are reprobed via kernel function
      device_reprobe() and thus the new correct driver will be assigned with
      respect of the changed apmask and aqmask bits.
      
      The mask values are bitmaps in big endian order starting with bit 0.
      So adapter number 0 is the leftmost bit, mask is 0x8000... The sysfs
      attributes accept 2 different formats:
      - Absolute hex string starting with 0x like "0x12345678" does set
        the mask starting from left to right. If the given string is shorter
        than the mask it is padded with 0s on the right. If the string is
        longer than the mask an error comes back (EINVAL).
      - '+' or '-' followed by a numerical value. Valid examples are "+1",
        "-13", "+0x41", "-0xff" and even "+0" and "-0". Only the addressed
        bit in the mask is switched on ('+') or off ('-').
      
      This patch will also be the base for an upcoming extension to the
      zcrypt drivers to be able to provide additional zcrypt device nodes
      with filtering based on ap and aq masks.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      7e0bdbe5
    • Harald Freudenberger's avatar
      s390/zcrypt: code beautify · ac2b96f3
      Harald Freudenberger authored
      Code beautify by following most of the checkpatch suggestions:
       - SPDX license identifier line complains by checkpatch
       - missing space or newline complains by checkpatch
       - octal numbers for permssions complains by checkpatch
       - renaming of static sysfs functions complains by checkpatch
       - fix of block comment complains by checkpatch
       - fix printf like calls where function name instead of %s __func__
         was used
       - __packed instead of __attribute__((packed))
       - init to zero for static variables removed
       - use of DEVICE_ATTR_RO and DEVICE_ATTR_RW macros
      
      No functional code changes or API changes!
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      ac2b96f3
    • Harald Freudenberger's avatar
      s390/zcrypt: switch return type to bool for ap_instructions_available() · 9b97e9f5
      Harald Freudenberger authored
      Function ap_instructions_available() had returntype int but
      in fact returned 1 for true and 0 for false. Changed returntype
      to bool.
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      9b97e9f5
  3. 16 Aug, 2018 7 commits
  4. 14 Aug, 2018 21 commits
    • Heiko Carstens's avatar
      s390: reenable gcc plugins for real · bc00b3ec
      Heiko Carstens authored
      Martin's patch 6eedfaac ("s390: reenable gcc plugins") was lost in
      the merge commit 85a0b791 ("Merge branch 'for-linus' of
      git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux") therefore
      let's enable gcc plugins again.
      
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      bc00b3ec
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 10f3e23f
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
      
       - Convert content from the ext4 wiki to Documentation rst files so it
         is more likely to be updated as we add new features to ext4.
      
       - Add 64-bit timestamp support to ext4's superblock fields.
      
       - ... and the usual bug fixes and cleanups, including a Spectre gadget
         fixup and some hardening against maliciously corrupted file systems.
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (34 commits)
        ext4: remove unneeded variable "err" in ext4_mb_release_inode_pa()
        ext4: improve code readability in ext4_iget()
        ext4: fix spectre gadget in ext4_mb_regular_allocator()
        ext4: check for NUL characters in extended attribute's name
        ext4: use ext4_warning() for sb_getblk failure
        ext4: fix race when setting the bitmap corrupted flag
        ext4: reset error code in ext4_find_entry in fallback
        ext4: handle layout changes to pinned DAX mappings
        dax: dax_layout_busy_page() warn on !exceptional
        docs: fix up the obviously obsolete bits in the new ext4 documentation
        docs: add new ext4 superblock time extension fields
        docs: create filesystem internal section
        ext4: use swap macro in mext_page_double_lock
        ext4: check allocation failure when duplicating "data" in ext4_remount()
        ext4: fix warning message in ext4_enable_quotas()
        ext4: super: extend timestamps to 40 bits
        jbd2: replace current_kernel_time64 with ktime equivalent
        ext4: use timespec64 for all inode times
        ext4: use ktime_get_real_seconds for i_dtime
        ext4: use 64-bit timestamps for mmp_time
        ...
      10f3e23f
    • Linus Torvalds's avatar
      Merge tag '4.19-smb3' of git://git.samba.org/sfrench/cifs-2.6 · 3bb37da5
      Linus Torvalds authored
      Pull cifs updates from Steve French:
       "smb3/cifs fixes (including 8 for stable).
      
        Other improvements include:
      
         - improved tracing, improved stats
      
         - snapshots (previous version mounts work now over SMB3)
      
         - performance (compounding enabled for statfs, ~40% faster).
      
         - security (make it possible to build cifs.ko with insecure vers=1.0
           disabled in Kconfig)"
      
      * tag '4.19-smb3' of git://git.samba.org/sfrench/cifs-2.6: (43 commits)
        smb3: create smb3 equivalent alias for cifs pseudo-xattrs
        smb3: allow previous versions to be mounted with snapshot= mount parm
        cifs: don't show domain= in mount output when domain is empty
        cifs: add missing support for ACLs in SMB 3.11
        smb3: enumerating snapshots was leaving part of the data off end
        cifs: update smb2_queryfs() to use compounding
        cifs: update receive_encrypted_standard to handle compounded responses
        cifs: create SMB2_open_init()/SMB2_open_free() helpers.
        cifs: add SMB2_query_info_[init|free]()
        cifs: add SMB2_close_init()/SMB2_close_free()
        smb3: display stats counters for number of slow commands
        CIFS: fix uninitialized ptr deref in smb2 signing
        smb3: Do not send SMB3 SET_INFO if nothing changed
        smb3: fix minor debug output for CONFIG_CIFS_STATS
        smb3: add tracepoint for slow responses
        cifs: add compound_send_recv()
        cifs: make smb_send_rqst take an array of requests
        cifs: update init_sg, crypt_message to take an array of rqst
        smb3: update readme to correct information about /proc/fs/cifs/Stats
        smb3: fix reset of bytes read and written stats
        ...
      3bb37da5
    • Linus Torvalds's avatar
      Merge branch 'iomap-4.19-merge' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 161fa27f
      Linus Torvalds authored
      Pull fs iomap refactoring from Darrick Wong:
       "This is the first part of the XFS changes for 4.19.
      
        Christoph and Andreas coordinated some refactoring work on the iomap
        code in preparation for removing buffer heads from XFS and porting
        gfs2 to iomap. I'm sending this small pull request ahead of the main
        XFS merge to avoid holding up gfs2 unnecessarily"
      
      * 'iomap-4.19-merge' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: add inline data support to iomap_readpage_actor
        iomap: support direct I/O to inline data
        iomap: refactor iomap_dio_actor
        iomap: add initial support for writes without buffer heads
        iomap: add an iomap-based readpage and readpages implementation
        iomap: add private pointer to struct iomap
        iomap: add a page_done callback
        iomap: generic inline data handling
        iomap: complete partial direct I/O writes synchronously
        iomap: mark newly allocated buffer heads as new
        fs: factor out a __generic_write_end helper
      161fa27f
    • Linus Torvalds's avatar
      Merge tag 'for-4.19-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · a1a4f841
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "Mostly fixes and cleanups, nothing big, though the notable thing is
        the inserted/deleted lines delta -1124.
      
        User visible changes:
         - allow defrag on opened read-only files that have rw permissions;
           similar to what dedupe will allow on such files
      
        Core changes:
         - tree checker improvements, reported by fuzzing:
            * more checks for: block group items, essential trees
            * chunk type validation
            * mount time cross-checks that physical and logical chunks match
            * switch more error codes to EUCLEAN aka EFSCORRUPTED
      
        Fixes:
         - fsync corner case fixes
      
         - fix send failure when root has deleted files still open
      
         - send, fix incorrect file layout after hole punching beyond eof
      
         - fix races between mount and deice scan ioctl, found by fuzzing
      
         - fix deadlock when delayed iput is called from writeback on the same
           inode; rare but has been observed in practice, also removes code
      
         - fix pinned byte accounting, using the right percpu helpers; this
           should avoid some write IO inefficiency during low space conditions
      
         - don't remove block group that still has pinned bytes
      
         - reset on-disk device stats value after replace, otherwise this
           would report stale values for the new device
      
        Cleanups:
         - time64_t/timespec64 cleanups
      
         - remove remaining dead code in scrub handling NOCOW extents after
           disabling it in previous cycle
      
         - simplify fsync regarding ordered extents logic and remove all the
           related code
      
         - remove redundant arguments in order to reduce stack space
           consumption
      
         - remove support for V0 type of extents, not in use since 2.6.30
      
         - remove several unused structure members
      
         - fewer indirect function calls by inlining some callbacks
      
         - qgroup rescan timing fixes
      
         - vfs: iget cleanups"
      
      * tag 'for-4.19-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (182 commits)
        btrfs: revert fs_devices state on error of btrfs_init_new_device
        btrfs: Exit gracefully when chunk map cannot be inserted to the tree
        btrfs: Introduce mount time chunk <-> dev extent mapping check
        btrfs: Verify that every chunk has corresponding block group at mount time
        btrfs: Check that each block group has corresponding chunk at mount time
        Btrfs: send, fix incorrect file layout after hole punching beyond eof
        btrfs: Use wrapper macro for rcu string to remove duplicate code
        btrfs: simplify btrfs_iget
        btrfs: lift make_bad_inode into btrfs_iget
        btrfs: simplify IS_ERR/PTR_ERR checks
        btrfs: btrfs_iget never returns an is_bad_inode inode
        btrfs: replace: Reset on-disk dev stats value after replace
        btrfs: extent-tree: Remove unused __btrfs_free_block_rsv
        btrfs: backref: Use ERR_CAST to return error code
        btrfs: Remove redundant btrfs_release_path from btrfs_unlink_subvol
        btrfs: Remove root parameter from btrfs_unlink_subvol
        btrfs: Remove fs_info from btrfs_add_root_ref
        btrfs: Remove fs_info from btrfs_del_root_ref
        btrfs: Remove fs_info from btrfs_del_root
        btrfs: Remove fs_info from btrfs_delete_delayed_dir_index
        ...
      a1a4f841
    • Linus Torvalds's avatar
      Merge tag 'locks-v4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 575b9438
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "Just a couple of patches from Konstantin to fix /proc/locks when the
        process that set the lock has exited, and a new tracepoint for the
        flock() codepath. Also threw in mailmap entries for my addresses and a
        comment cleanup"
      
      * tag 'locks-v4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        locks: remove misleading obsolete comment
        mailmap: remap some of my email addresses to kernel.org address
        locks: add tracepoint in flock codepath
        fs/lock: show locks taken by processes from another pidns
        fs/lock: skip lock owner pid translation in case we are in init_pid_ns
      575b9438
    • Linus Torvalds's avatar
      Merge branches 'work.misc' and 'work.dcache' of... · 4591343e
      Linus Torvalds authored
      Merge branches 'work.misc' and 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
      
      Pull misc vfs updates from Al Viro:
       "Misc cleanups from various folks all over the place
      
        I expected more fs/dcache.c cleanups this cycle, so that went into a
        separate branch. Said cleanups have missed the window, so in the
        hindsight it could've gone into work.misc instead. Decided not to
        cherry-pick, thus the 'work.dcache' branch"
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: dcache: Use true and false for boolean values
        fold generic_readlink() into its only caller
        fs: shave 8 bytes off of struct inode
        fs: Add more kernel-doc to the produced documentation
        fs: Fix attr.c kernel-doc
        removed extra extern file_fdatawait_range
      
      * 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        kill dentry_update_name_case()
      4591343e
    • Linus Torvalds's avatar
      Merge branch 'work.aio' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f2be2698
      Linus Torvalds authored
      Pull vfs aio updates from Al Viro:
       "Christoph's aio poll, saner this time around.
      
        This time it's pretty much local to fs/aio.c. Hopefully race-free..."
      
      * 'work.aio' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        aio: allow direct aio poll comletions for keyed wakeups
        aio: implement IOCB_CMD_POLL
        aio: add a iocb refcount
        timerfd: add support for keyed wakeups
      f2be2698
    • Linus Torvalds's avatar
      Merge branch 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 4d2a073c
      Linus Torvalds authored
      Pull vfs lookup() updates from Al Viro:
       "More conversions of ->lookup() to d_splice_alias().
      
        Should be reasonably complete now - the only leftovers are in ceph"
      
      * 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        afs_try_auto_mntpt(): return NULL instead of ERR_PTR(-ENOENT)
        afs_lookup(): switch to d_splice_alias()
        afs: switch dynroot lookups to d_splice_alias()
        hpfs: fix an inode leak in lookup, switch to d_splice_alias()
        hostfs_lookup: switch to d_splice_alias()
      4d2a073c
    • Linus Torvalds's avatar
      Merge branch 'work.mkdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 0ea97a2d
      Linus Torvalds authored
      Pull vfs icache updates from Al Viro:
      
       - NFS mkdir/open_by_handle race fix
      
       - analogous solution for FUSE, replacing the one currently in mainline
      
       - new primitive to be used when discarding halfway set up inodes on
         failed object creation; gives sane warranties re icache lookups not
         returning such doomed by still not freed inodes. A bunch of
         filesystems switched to that animal.
      
       - Miklos' fix for last cycle regression in iget5_locked(); -stable will
         need a slightly different variant, unfortunately.
      
       - misc bits and pieces around things icache-related (in adfs and jfs).
      
      * 'work.mkdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        jfs: don't bother with make_bad_inode() in ialloc()
        adfs: don't put inodes into icache
        new helper: inode_fake_hash()
        vfs: don't evict uninitialized inode
        jfs: switch to discard_new_inode()
        ext2: make sure that partially set up inodes won't be returned by ext2_iget()
        udf: switch to discard_new_inode()
        ufs: switch to discard_new_inode()
        btrfs: switch to discard_new_inode()
        new primitive: discard_new_inode()
        kill d_instantiate_no_diralias()
        nfs_instantiate(): prevent multiple aliases for directory inode
      0ea97a2d
    • Linus Torvalds's avatar
      Merge branch 'work.open3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · a66b4cd1
      Linus Torvalds authored
      Pull vfs open-related updates from Al Viro:
      
       - "do we need fput() or put_filp()" rules are gone - it's always fput()
         now. We keep track of that state where it belongs - in ->f_mode.
      
       - int *opened mess killed - in finish_open(), in ->atomic_open()
         instances and in fs/namei.c code around do_last()/lookup_open()/atomic_open().
      
       - alloc_file() wrappers with saner calling conventions are introduced
         (alloc_file_clone() and alloc_file_pseudo()); callers converted, with
         much simplification.
      
       - while we are at it, saner calling conventions for path_init() and
         link_path_walk(), simplifying things inside fs/namei.c (both on
         open-related paths and elsewhere).
      
      * 'work.open3' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (40 commits)
        few more cleanups of link_path_walk() callers
        allow link_path_walk() to take ERR_PTR()
        make path_init() unconditionally paired with terminate_walk()
        document alloc_file() changes
        make alloc_file() static
        do_shmat(): grab shp->shm_file earlier, switch to alloc_file_clone()
        new helper: alloc_file_clone()
        create_pipe_files(): switch the first allocation to alloc_file_pseudo()
        anon_inode_getfile(): switch to alloc_file_pseudo()
        hugetlb_file_setup(): switch to alloc_file_pseudo()
        ocxlflash_getfile(): switch to alloc_file_pseudo()
        cxl_getfile(): switch to alloc_file_pseudo()
        ... and switch shmem_file_setup() to alloc_file_pseudo()
        __shmem_file_setup(): reorder allocations
        new wrapper: alloc_file_pseudo()
        kill FILE_{CREATED,OPENED}
        switch atomic_open() and lookup_open() to returning 0 in all success cases
        document ->atomic_open() changes
        ->atomic_open(): return 0 in all success cases
        get rid of 'opened' in path_openat() and the helpers downstream
        ...
      a66b4cd1
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.19-rc1' of... · b1652846
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - new driver for NPCM7xx PWM and Fan controller
      
       - new driver for Mellanox FAN controller
      
       - add support for MAX34451 to max34440 driver
      
       - add support for new Threadripper variants to k10temp driver
      
       - add error handling to adt7475 driver
      
       - cleanup nct6775 and nct7904 drivers
      
       - document sensor enable ABI attributes
      
      * tag 'hwmon-for-linus-v4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (adt7475) Change show functions to return error data correctly
        hwmon: (adt7475) Change update functions to add error handling
        hwmon: (adt7475) Change valid parameter to bool type
        hwmon: (adt7475) Split device update function to measure and limits
        hwmon: k10temp: Support Threadripper 2920X, 2970WX; simplify offset table
        hwmon: (k10temp) 27C Offset needed for Threadripper2
        hwmon: (iio_hwmon) Use devm functions
        hwmon: Add NPCM7xx PWM and Fan driver
        dt-binding: hwmon: Add NPCM7xx PWM and Fan controller documentation
        hwmon: (pmbus/max34440) Add support for MAX34451.
        hwmon: Document the sensor enable attribute
        hwmon: (mlxreg-fan) Add support for Mellanox FAN driver
        hwmon: Mark expected switch fall-throughs
        hwmon: (nct6775) Fix comment in the description of pwm_mode
        hwmon: (nct7904) Fix UNSPECIFIED_INT warning
        hwmon: (nct7904) Fix CODE_INDENT error
        hwmon: (nct7904) Fix SPACING errors
      b1652846
    • Linus Torvalds's avatar
      Merge tag 'mips_4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · e5a32b5b
      Linus Torvalds authored
      Pull MIPS updates from Paul Burton:
       "Here are the main MIPS changes for 4.19.
      
        An overview of the general architecture changes:
      
         - Massive DMA ops refactoring from Christoph Hellwig (huzzah for
           deleting crufty code!).
      
         - We introduce NT_MIPS_DSP & NT_MIPS_FP_MODE ELF notes &
           corresponding regsets to expose DSP ASE & floating point mode state
           respectively, both for live debugging & core dumps.
      
         - We better optimize our code by hard-coding cpu_has_* macros at
           compile time where their values are known due to the ISA revision
           that the kernel build is targeting.
      
         - The EJTAG exception handler now better handles SMP systems, where
           it was previously possible for CPUs to clobber a register value
           saved by another CPU.
      
         - Our implementation of memset() gained a couple of fixes for MIPSr6
           systems to return correct values in some cases where stores fault.
      
         - We now implement ioremap_wc() using the uncached-accelerated cache
           coherency attribute where supported, which is detected during boot,
           and fall back to plain uncached access where necessary. The
           MIPS-specific (and unused in tree) ioremap_uncached_accelerated() &
           ioremap_cacheable_cow() are removed.
      
         - The prctl(PR_SET_FP_MODE, ...) syscall is better supported for SMP
           systems by reworking the way we ensure remote CPUs that may be
           running threads within the affected process switch mode.
      
         - Systems using the MIPS Coherence Manager will now set the
           MIPS_IC_SNOOPS_REMOTE flag to avoid some unnecessary cache
           maintenance overhead when flushing the icache.
      
         - A few fixes were made for building with clang/LLVM, which now
           sucessfully builds kernels for many of our platforms.
      
         - Miscellaneous cleanups all over.
      
        And some platform-specific changes:
      
         - ar7 gained stubs for a few clock API functions to fix build
           failures for some drivers.
      
         - ath79 gained support for a few new SoCs, a few fixes & better
           gpio-keys support.
      
         - Ci20 now exposes its SPI bus using the spi-gpio driver.
      
         - The generic platform can now auto-detect a suitable value for
           PHYS_OFFSET based upon the memory map described by the device tree,
           allowing us to avoid wasting memory on page book-keeping for
           systems where RAM starts at a non-zero physical address.
      
         - Ingenic systems using the jz4740 platform code now link their
           vmlinuz higher to allow for kernels of a realistic size.
      
         - Loongson32 now builds the kernel targeting MIPSr1 rather than
           MIPSr2 to avoid CPU errata.
      
         - Loongson64 gains a couple of fixes, a workaround for a write
           buffering issue & support for the Loongson 3A R3.1 CPU.
      
         - Malta now uses the piix4-poweroff driver to handle powering down.
      
         - Microsemi Ocelot gained support for its SPI bus & NOR flash, its
           second MDIO bus and can now be supported by a FIT/.itb image.
      
         - Octeon saw a bunch of header cleanups which remove a lot of
           duplicate or unused code"
      
      * tag 'mips_4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (123 commits)
        MIPS: Remove remnants of UASM_ISA
        MIPS: netlogic: xlr: Remove erroneous check in nlm_fmn_send()
        MIPS: VDSO: Force link endianness
        MIPS: Always specify -EB or -EL when using clang
        MIPS: Use dins to simplify __write_64bit_c0_split()
        MIPS: Use read-write output operand in __write_64bit_c0_split()
        MIPS: Avoid using array as parameter to write_c0_kpgd()
        MIPS: vdso: Allow clang's --target flag in VDSO cflags
        MIPS: genvdso: Remove GOT checks
        MIPS: Remove obsolete MIPS checks for DST node "chosen@0"
        MIPS: generic: Remove input symbols from defconfig
        MIPS: Delete unused code in linux32.c
        MIPS: Remove unused sys_32_mmap2
        MIPS: Remove nabi_no_regargs
        mips: dts: mscc: enable spi and NOR flash support on ocelot PCB123
        mips: dts: mscc: Add spi on Ocelot
        MIPS: Loongson: Merge load addresses
        MIPS: Loongson: Set Loongson32 to MIPS32R1
        MIPS: mscc: ocelot: add interrupt controller properties to GPIO controller
        MIPS: generic: Select MIPS_AUTO_PFN_OFFSET
        ...
      e5a32b5b
    • Linus Torvalds's avatar
      Merge branch 'parisc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 2280a536
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
      
       - parisc now uses the generic dma_noncoherent_ops implementation
         (Christoph Hellwig)
      
       - further memory barrier and spinlock improvements (John David Anglin)
      
       - prepare removal of current_text_addr() functions (Nick Desaulniers)
      
       - improve kernel stack unwinding on parisc (me)
      
       - drop ENOTSUP which was defined on parisc only (me)
      
      * 'parisc-4.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Fix and improve kernel stack unwinding
        parisc: Remove unnecessary barriers from spinlock.h
        parisc: Remove ordered stores from syscall.S
        parisc: prefer _THIS_IP_ and _RET_IP_ statement expressions
        parisc: Add HAVE_REGS_AND_STACK_ACCESS_API feature
        parisc: Drop architecture-specific ENOTSUP define
        parisc: use generic dma_noncoherent_ops
        parisc: always use flush_kernel_dcache_range for DMA cache maintainance
        parisc: merge pcx_dma_ops and pcxl_dma_ops
      2280a536
    • Linus Torvalds's avatar
      Merge branch 'clkdev' of git://git.armlinux.org.uk/~rmk/linux-arm · c2d9f5bc
      Linus Torvalds authored
      Pull ARM clkdev updates from Russell King:
       "A couple of cleanups for clkdev"
      
      * 'clkdev' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8778/1: clkdev: don't call __of_clk_get_by_name() unnecessarily from clk_get()
        ARM: 8776/1: clkdev: Remove duplicated negative index check from __of_clk_get()
      c2d9f5bc
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 9b27efe0
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - further Spectre variant 1 fixes for user accessors.
      
       - kbuild cleanups (Masahiro Yamada)
      
       - hook up sync core functionality (Will Deacon)
      
       - nommu updates for hypervisor mode booting (Vladimir Murzin)
      
       - use compiler built-ins for fls and ffs (Nicolas Pitre)
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: spectre-v1: mitigate user accesses
        ARM: spectre-v1: use get_user() for __get_user()
        ARM: use __inttype() in get_user()
        ARM: oabi-compat: copy semops using __copy_from_user()
        ARM: vfp: use __copy_from_user() when restoring VFP state
        ARM: 8785/1: use compiler built-ins for ffs and fls
        ARM: 8784/1: NOMMU: Allow enter in Hyp mode
        ARM: 8783/1: NOMMU: Extend check for VBAR support
        ARM: 8782/1: vfp: clean up arch/arm/vfp/Makefile
        ARM: signal: copy registers using __copy_from_user()
        ARM: tcm: ensure inline stub functions are marked static
        ARM: 8779/1: add endianness option to LDFLAGS instead of LD
        ARM: 8777/1: Hook up SYNC_CORE functionality for sys_membarrier()
      9b27efe0
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 85a0b791
      Linus Torvalds authored
      Pull s390 updates from Heiko Carstens:
       "Since Martin is on vacation you get the s390 pull request from me:
      
         - Host large page support for KVM guests. As the patches have large
           impact on arch/s390/mm/ this series goes out via both the KVM and
           the s390 tree.
      
         - Add an option for no compression to the "Kernel compression mode"
           menu, this will come in handy with the rework of the early boot
           code.
      
         - A large rework of the early boot code that will make life easier
           for KASAN and KASLR. With the rework the bootable uncompressed
           image is not generated anymore, only the bzImage is available. For
           debuggung purposes the new "no compression" option is used.
      
         - Re-enable the gcc plugins as the issue with the latent entropy
           plugin is solved with the early boot code rework.
      
         - More spectre relates changes:
            + Detect the etoken facility and remove expolines automatically.
            + Add expolines to a few more indirect branches.
      
         - A rewrite of the common I/O layer trace points to make them
           consumable by 'perf stat'.
      
         - Add support for format-3 PCI function measurement blocks.
      
         - Changes for the zcrypt driver:
            + Add attributes to indicate the load of cards and queues.
            + Restructure some code for the upcoming AP device support in KVM.
      
         - Build flags improvements in various Makefiles.
      
         - A few fixes for the kdump support.
      
         - A couple of patches for gcc 8 compile warning cleanup.
      
         - Cleanup s390 specific proc handlers.
      
         - Add s390 support to the restartable sequence self tests.
      
         - Some PTR_RET vs PTR_ERR_OR_ZERO cleanup.
      
         - Lots of bug fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (107 commits)
        s390/dasd: fix hanging offline processing due to canceled worker
        s390/dasd: fix panic for failed online processing
        s390/mm: fix addressing exception after suspend/resume
        rseq/selftests: add s390 support
        s390: fix br_r1_trampoline for machines without exrl
        s390/lib: use expoline for all bcr instructions
        s390/numa: move initial setup of node_to_cpumask_map
        s390/kdump: Fix elfcorehdr size calculation
        s390/cpum_sf: save TOD clock base in SDBs for time conversion
        KVM: s390: Add huge page enablement control
        s390/mm: Add huge page gmap linking support
        s390/mm: hugetlb pages within a gmap can not be freed
        KVM: s390: Add skey emulation fault handling
        s390/mm: Add huge pmd storage key handling
        s390/mm: Clear skeys for newly mapped huge guest pmds
        s390/mm: Clear huge page storage keys on enable_skey
        s390/mm: Add huge page dirty sync support
        s390/mm: Add gmap pmd invalidation and clearing
        s390/mm: Add gmap pmd notification bit setting
        s390/mm: Add gmap pmd linking
        ...
      85a0b791
    • Linus Torvalds's avatar
      Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 13e091b6
      Linus Torvalds authored
      Pull x86 timer updates from Thomas Gleixner:
       "Early TSC based time stamping to allow better boot time analysis.
      
        This comes with a general cleanup of the TSC calibration code which
        grew warts and duct taping over the years and removes 250 lines of
        code. Initiated and mostly implemented by Pavel with help from various
        folks"
      
      * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (37 commits)
        x86/kvmclock: Mark kvm_get_preset_lpj() as __init
        x86/tsc: Consolidate init code
        sched/clock: Disable interrupts when calling generic_sched_clock_init()
        timekeeping: Prevent false warning when persistent clock is not available
        sched/clock: Close a hole in sched_clock_init()
        x86/tsc: Make use of tsc_calibrate_cpu_early()
        x86/tsc: Split native_calibrate_cpu() into early and late parts
        sched/clock: Use static key for sched_clock_running
        sched/clock: Enable sched clock early
        sched/clock: Move sched clock initialization and merge with generic clock
        x86/tsc: Use TSC as sched clock early
        x86/tsc: Initialize cyc2ns when tsc frequency is determined
        x86/tsc: Calibrate tsc only once
        ARM/time: Remove read_boot_clock64()
        s390/time: Remove read_boot_clock64()
        timekeeping: Default boot time offset to local_clock()
        timekeeping: Replace read_boot_clock64() with read_persistent_wall_and_boot_offset()
        s390/time: Add read_persistent_wall_and_boot_offset()
        x86/xen/time: Output xen sched_clock time from 0
        x86/xen/time: Initialize pv xen time in init_hypervisor_platform()
        ...
      13e091b6
    • Linus Torvalds's avatar
      Merge branch 'x86/pti' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · eac34119
      Linus Torvalds authored
      Pull x86 PTI updates from Thomas Gleixner:
       "The Speck brigade sadly provides yet another large set of patches
        destroying the perfomance which we carefully built and preserved
      
         - PTI support for 32bit PAE. The missing counter part to the 64bit
           PTI code implemented by Joerg.
      
         - A set of fixes for the Global Bit mechanics for non PCID CPUs which
           were setting the Global Bit too widely and therefore possibly
           exposing interesting memory needlessly.
      
         - Protection against userspace-userspace SpectreRSB
      
         - Support for the upcoming Enhanced IBRS mode, which is preferred
           over IBRS. Unfortunately we dont know the performance impact of
           this, but it's expected to be less horrible than the IBRS
           hammering.
      
         - Cleanups and simplifications"
      
      * 'x86/pti' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
        x86/mm/pti: Move user W+X check into pti_finalize()
        x86/relocs: Add __end_rodata_aligned to S_REL
        x86/mm/pti: Clone kernel-image on PTE level for 32 bit
        x86/mm/pti: Don't clear permissions in pti_clone_pmd()
        x86/mm/pti: Fix 32 bit PCID check
        x86/mm/init: Remove freed kernel image areas from alias mapping
        x86/mm/init: Add helper for freeing kernel image pages
        x86/mm/init: Pass unconverted symbol addresses to free_init_pages()
        mm: Allow non-direct-map arguments to free_reserved_area()
        x86/mm/pti: Clear Global bit more aggressively
        x86/speculation: Support Enhanced IBRS on future CPUs
        x86/speculation: Protect against userspace-userspace spectreRSB
        x86/kexec: Allocate 8k PGDs for PTI
        Revert "perf/core: Make sure the ring-buffer is mapped in all page-tables"
        x86/mm: Remove in_nmi() warning from vmalloc_fault()
        x86/entry/32: Check for VM86 mode in slow-path check
        perf/core: Make sure the ring-buffer is mapped in all page-tables
        x86/pti: Check the return value of pti_user_pagetable_walk_pmd()
        x86/pti: Check the return value of pti_user_pagetable_walk_p4d()
        x86/entry/32: Add debug code to check entry/exit CR3
        ...
      eac34119
    • Linus Torvalds's avatar
      Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d191c82d
      Linus Torvalds authored
      Pull x86 vdso update from Thomas Gleixner:
       "Use LD to link the VDSO libs instead of indirecting trough CC which
        causes build failures with Clang"
      
      * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: vdso: Use $LD instead of $CC to link
      d191c82d
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4d5ac4b8
      Linus Torvalds authored
      Pull misc x86 fixes from Thomas Gleixner:
       "Two fixes for x86:
      
         - Provide a declaration for native_save_fl() which unbreaks the
           wreckage caused by making it 'extern inline'.
      
         - Fix the failing paravirt patching which is supposed to replace
           indirect with direct calls. The wreckage is caused by an incorrect
           clobber test"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/paravirt: Fix spectre-v2 mitigations for paravirt guests
        x86/irqflags: Provide a declaration for native_save_fl
      4d5ac4b8
  5. 13 Aug, 2018 8 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 203b4fc9
      Linus Torvalds authored
      Pull x86 mm updates from Thomas Gleixner:
      
       - Make lazy TLB mode even lazier to avoid pointless switch_mm()
         operations, which reduces CPU load by 1-2% for memcache workloads
      
       - Small cleanups and improvements all over the place
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Remove redundant check for kmem_cache_create()
        arm/asm/tlb.h: Fix build error implicit func declaration
        x86/mm/tlb: Make clear_asid_other() static
        x86/mm/tlb: Skip atomic operations for 'init_mm' in switch_mm_irqs_off()
        x86/mm/tlb: Always use lazy TLB mode
        x86/mm/tlb: Only send page table free TLB flush to lazy TLB CPUs
        x86/mm/tlb: Make lazy TLB mode lazier
        x86/mm/tlb: Restructure switch_mm_irqs_off()
        x86/mm/tlb: Leave lazy TLB mode at page table free time
        mm: Allocate the mm_cpumask (mm->cpu_bitmap[]) dynamically based on nr_cpu_ids
        x86/mm: Add TLB purge to free pmd/pte page interfaces
        ioremap: Update pgtable free interfaces with addr
        x86/mm: Disable ioremap free page handling on x86-PAE
      203b4fc9
    • Linus Torvalds's avatar
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7edcf0d3
      Linus Torvalds authored
      Pull x86 platform updates from Thomas Gleixner:
       "Trivial cleanups and improvements"
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/UV: Remove redundant check of p == q
        x86/platform/olpc: Use PTR_ERR_OR_ZERO()
        x86/platform/UV: Mark memblock related init code and data correctly
      7edcf0d3
    • Linus Torvalds's avatar
      Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 30de24c7
      Linus Torvalds authored
      Pull x86 cache QoS (RDT/CAR) updates from Thomas Gleixner:
       "Add support for pseudo-locked cache regions.
      
        Cache Allocation Technology (CAT) allows on certain CPUs to isolate a
        region of cache and 'lock' it. Cache pseudo-locking builds on the fact
        that a CPU can still read and write data pre-allocated outside its
        current allocated area on cache hit. With cache pseudo-locking data
        can be preloaded into a reserved portion of cache that no application
        can fill, and from that point on will only serve cache hits. The cache
        pseudo-locked memory is made accessible to user space where an
        application can map it into its virtual address space and thus have a
        region of memory with reduced average read latency.
      
        The locking is not perfect and gets totally screwed by WBINDV and
        similar mechanisms, but it provides a reasonable enhancement for
        certain types of latency sensitive applications.
      
        The implementation extends the current CAT mechanism and provides a
        generally useful exclusive CAT mode on which it builds the extra
        pseude-locked regions"
      
      * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
        x86/intel_rdt: Disable PMU access
        x86/intel_rdt: Fix possible circular lock dependency
        x86/intel_rdt: Make CPU information accessible for pseudo-locked regions
        x86/intel_rdt: Support restoration of subset of permissions
        x86/intel_rdt: Fix cleanup of plr structure on error
        x86/intel_rdt: Move pseudo_lock_region_clear()
        x86/intel_rdt: Limit C-states dynamically when pseudo-locking active
        x86/intel_rdt: Support L3 cache performance event of Broadwell
        x86/intel_rdt: More precise L2 hit/miss measurements
        x86/intel_rdt: Create character device exposing pseudo-locked region
        x86/intel_rdt: Create debugfs files for pseudo-locking testing
        x86/intel_rdt: Create resctrl debug area
        x86/intel_rdt: Ensure RDT cleanup on exit
        x86/intel_rdt: Resctrl files reflect pseudo-locked information
        x86/intel_rdt: Support creation/removal of pseudo-locked region
        x86/intel_rdt: Pseudo-lock region creation/removal core
        x86/intel_rdt: Discover supported platforms via prefetch disable bits
        x86/intel_rdt: Add utilities to test pseudo-locked region possibility
        x86/intel_rdt: Split resource group removal in two
        x86/intel_rdt: Enable entering of pseudo-locksetup mode
        ...
      30de24c7
    • Linus Torvalds's avatar
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f4990264
      Linus Torvalds authored
      Pull x86/hyper-v update from Thomas Gleixner:
       "Add fast hypercall support for guest running on the Microsoft HyperV(isor)"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyper-v: Fix wrong merge conflict resolution
        x86/hyper-v: Check for VP_INVAL in hyperv_flush_tlb_others()
        x86/hyper-v: Check cpumask_to_vpset() return value in hyperv_flush_tlb_others_ex()
        x86/hyper-v: Trace PV IPI send
        x86/hyper-v: Use cheaper HVCALL_SEND_IPI hypercall when possible
        x86/hyper-v: Use 'fast' hypercall for HVCALL_SEND_IPI
        x86/hyper-v: Implement hv_do_fast_hypercall16
        x86/hyper-v: Use cheaper HVCALL_FLUSH_VIRTUAL_ADDRESS_{LIST,SPACE} hypercalls when possible
      f4990264
    • Linus Torvalds's avatar
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 27a52501
      Linus Torvalds authored
      Pull x86 dump printing cleanup from Thomas Gleixner:
       "Clean up the show_opcodes() printout so nested dumps can be properly
        differentiated"
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Avoid pr_cont() in show_opcodes()
      27a52501
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 77969161
      Linus Torvalds authored
      Pull x86 cpu updates from Thomas Gleixner:
       "Two small updates for the CPU code:
      
         - Improve NUMA emulation
      
         - Add the EPT_AD CPU feature bit"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpufeatures: Add EPT_AD feature bit
        x86/numa_emulation: Introduce uniform split capability
        x86/numa_emulation: Fix emulated-to-physical node mapping
      77969161
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36f49ca8
      Linus Torvalds authored
      Pull x86 cleanups from Thomas Gleixner:
       "Trival cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/iommu: Use NULL instead of 0
        x86/platform/pcspeaker: Use PTR_ERR_OR_ZERO() to fix ptr_ret.cocci warning
      36f49ca8
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 00b24d54
      Linus Torvalds authored
      Pull x86 build cleanup from Thomas Gleixner:
       "Remove a stale quirk for a no longer supported GCC version"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Remove old -funit-at-a-time GCC quirk
      00b24d54