1. 19 Sep, 2017 2 commits
  2. 13 Sep, 2017 5 commits
    • Stefan Haberland's avatar
      s390/dasd: fix race during dasd initialization · 673514af
      Stefan Haberland authored
      Fix a panic in blk_mq_hctx_has_pending() that is caused by a racy call to
      blk_mq_run_hw_queues in a dasd function that might get called with the
      request queue not yet initialized during initialization.
      Signed-off-by: default avatarStefan Haberland <sth@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      673514af
    • Pu Hou's avatar
      s390/perf: fix bug when creating per-thread event · fc3100d6
      Pu Hou authored
      A per-thread event could not be created correctly like below:
      
          perf record --per-thread -e rB0000 -- sleep 1
          Error:
          The sys_perf_event_open() syscall returned with 19 (No such device) for event (rB0000).
          /bin/dmesg may provide additional information.
          No CONFIG_PERF_EVENTS=y kernel support configured?
      
      This bug was introduced by:
      
          commit c311c797
          Author: Alexey Dobriyan <adobriyan@gmail.com>
          Date:   Mon May 8 15:56:15 2017 -0700
      
          cpumask: make "nr_cpumask_bits" unsigned
      
      If a per-thread event is not attached to any CPU, the cpu field
      in struct perf_event is -1. The above commit converts the CPU number
      to unsigned int, which result in an illegal CPU number.
      
      Fixes: c311c797 ("cpumask: make "nr_cpumask_bits" unsigned")
      Cc: <stable@vger.kernel.org> # v4.12+
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Acked-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarPu Hou <bjhoupu@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      fc3100d6
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 6d8ef53e
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've mostly tuned f2fs to provide better user
        experience for Android. Especially, we've worked on atomic write
        feature again with SQLite community in order to support it officially.
        And we added or modified several facilities to analyze and enhance IO
        behaviors.
      
        Major changes include:
         - add app/fs io stat
         - add inode checksum feature
         - support project/journalled quota
         - enhance atomic write with new ioctl() which exposes feature set
         - enhance background gc/discard/fstrim flows with new gc_urgent mode
         - add F2FS_IOC_FS{GET,SET}XATTR
         - fix some quota flows"
      
      * tag 'f2fs-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (63 commits)
        f2fs: hurry up to issue discard after io interruption
        f2fs: fix to show correct discard_granularity in sysfs
        f2fs: detect dirty inode in evict_inode
        f2fs: clear radix tree dirty tag of pages whose dirty flag is cleared
        f2fs: speed up gc_urgent mode with SSR
        f2fs: better to wait for fstrim completion
        f2fs: avoid race in between read xattr & write xattr
        f2fs: make get_lock_data_page to handle encrypted inode
        f2fs: use generic terms used for encrypted block management
        f2fs: introduce f2fs_encrypted_file for clean-up
        Revert "f2fs: add a new function get_ssr_cost"
        f2fs: constify super_operations
        f2fs: fix to wake up all sleeping flusher
        f2fs: avoid race in between atomic_read & atomic_inc
        f2fs: remove unneeded parameter of change_curseg
        f2fs: update i_flags correctly
        f2fs: don't check inode's checksum if it was dirtied or writebacked
        f2fs: don't need to update inode checksum for recovery
        f2fs: trigger fdatasync for non-atomic_write file
        f2fs: fix to avoid race in between aio and gc
        ...
      6d8ef53e
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-4.14-rc1' of git://github.com/ceph/ceph-client · cdb897e3
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "The highlights include:
      
         - a large series of fixes and improvements to the snapshot-handling
           code (Zheng Yan)
      
         - individual read/write OSD requests passed down to libceph are now
           limited to 16M in size to avoid hitting OSD-side limits (Zheng Yan)
      
         - encode MStatfs v2 message to allow for more accurate space usage
           reporting (Douglas Fuller)
      
         - switch to the new writeback error tracking infrastructure (Jeff
           Layton)"
      
      * tag 'ceph-for-4.14-rc1' of git://github.com/ceph/ceph-client: (35 commits)
        ceph: stop on-going cached readdir if mds revokes FILE_SHARED cap
        ceph: wait on writeback after writing snapshot data
        ceph: fix capsnap dirty pages accounting
        ceph: ignore wbc->range_{start,end} when write back snapshot data
        ceph: fix "range cyclic" mode writepages
        ceph: cleanup local variables in ceph_writepages_start()
        ceph: optimize pagevec iterating in ceph_writepages_start()
        ceph: make writepage_nounlock() invalidate page that beyonds EOF
        ceph: properly get capsnap's size in get_oldest_context()
        ceph: remove stale check in ceph_invalidatepage()
        ceph: queue cap snap only when snap realm's context changes
        ceph: handle race between vmtruncate and queuing cap snap
        ceph: fix message order check in handle_cap_export()
        ceph: fix NULL pointer dereference in ceph_flush_snaps()
        ceph: adjust 36 checks for NULL pointers
        ceph: delete an unnecessary return statement in update_dentry_lease()
        ceph: ENOMEM pr_err in __get_or_create_frag() is redundant
        ceph: check negative offsets in ceph_llseek()
        ceph: more accurate statfs
        ceph: properly set snap follows for cap reconnect
        ...
      cdb897e3
    • Richard Wareing's avatar
      xfs: XFS_IS_REALTIME_INODE() should be false if no rt device present · b31ff3cd
      Richard Wareing authored
      If using a kernel with CONFIG_XFS_RT=y and we set the RHINHERIT flag on
      a directory in a filesystem that does not have a realtime device and
      create a new file in that directory, it gets marked as a real time file.
      When data is written and a fsync is issued, the filesystem attempts to
      flush a non-existent rt device during the fsync process.
      
      This results in a crash dereferencing a null buftarg pointer in
      xfs_blkdev_issue_flush():
      
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
        IP: xfs_blkdev_issue_flush+0xd/0x20
        .....
        Call Trace:
          xfs_file_fsync+0x188/0x1c0
          vfs_fsync_range+0x3b/0xa0
          do_fsync+0x3d/0x70
          SyS_fsync+0x10/0x20
          do_syscall_64+0x4d/0xb0
          entry_SYSCALL64_slow_path+0x25/0x25
      
      Setting RT inode flags does not require special privileges so any
      unprivileged user can cause this oops to occur.  To reproduce, confirm
      kernel is compiled with CONFIG_XFS_RT=y and run:
      
        # mkfs.xfs -f /dev/pmem0
        # mount /dev/pmem0 /mnt/test
        # mkdir /mnt/test/foo
        # xfs_io -c 'chattr +t' /mnt/test/foo
        # xfs_io -f -c 'pwrite 0 5m' -c fsync /mnt/test/foo/bar
      
      Or just run xfstests with MKFS_OPTIONS="-d rtinherit=1" and wait.
      
      Kernels built with CONFIG_XFS_RT=n are not exposed to this bug.
      
      Fixes: f538d4da ("[XFS] write barrier support")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarRichard Wareing <rwareing@fb.com>
      Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b31ff3cd
  3. 12 Sep, 2017 18 commits
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.14' of git://git.infradead.org/users/hch/dma-mapping · 52269718
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - removal of the old dma_alloc_noncoherent interface
      
       - remove unused flags to dma_declare_coherent_memory
      
       - restrict OF DMA configuration to specific physical busses
      
       - use the iommu mailing list for dma-mapping questions and patches
      
      * tag 'dma-mapping-4.14' of git://git.infradead.org/users/hch/dma-mapping:
        dma-coherent: fix dma_declare_coherent_memory() logic error
        ARM: imx: mx31moboard: Remove unused 'dma' variable
        dma-coherent: remove an unused variable
        MAINTAINERS: use the iommu list for the dma-mapping subsystem
        dma-coherent: remove the DMA_MEMORY_MAP and DMA_MEMORY_IO flags
        dma-coherent: remove the DMA_MEMORY_INCLUDES_CHILDREN flag
        of: restrict DMA configuration
        dma-mapping: remove dma_alloc_noncoherent and dma_free_noncoherent
        i825xx: switch to switch to dma_alloc_attrs
        au1000_eth: switch to dma_alloc_attrs
        sgiseeq: switch to dma_alloc_attrs
        dma-mapping: reduce dma_mapping_error inline bloat
      52269718
    • Linus Torvalds's avatar
      Merge tag 'uuid-for-4.14' of git://git.infradead.org/users/hch/uuid · ae71948f
      Linus Torvalds authored
      Pull uuid updates from Christoph Hellwig:
       "Just a single conversion to the new UUID API for this merge window"
      
      * tag 'uuid-for-4.14' of git://git.infradead.org/users/hch/uuid:
        efi: switch to use new generic UUID API
      ae71948f
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20170831' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 7f85565a
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "A relatively quiet period for SELinux, 11 patches with only two/three
        having any substantive changes.
      
        These noteworthy changes include another tweak to the NNP/nosuid
        handling, per-file labeling for cgroups, and an object class fix for
        AF_UNIX/SOCK_RAW sockets; the rest of the changes are minor tweaks or
        administrative updates (Stephen's email update explains the file
        explosion in the diffstat).
      
        Everything passes the selinux-testsuite"
      
      [ Also a couple of small patches from the security tree from Tetsuo
        Handa for Tomoyo and LSM cleanup. The separation of security policy
        updates wasn't all that clean - Linus ]
      
      * tag 'selinux-pr-20170831' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: constify nf_hook_ops
        selinux: allow per-file labeling for cgroupfs
        lsm_audit: update my email address
        selinux: update my email address
        MAINTAINERS: update the NetLabel and Labeled Networking information
        selinux: use GFP_NOWAIT in the AVC kmem_caches
        selinux: Generalize support for NNP/nosuid SELinux domain transitions
        selinux: genheaders should fail if too many permissions are defined
        selinux: update the selinux info in MAINTAINERS
        credits: update Paul Moore's info
        selinux: Assign proper class to PF_UNIX/SOCK_RAW sockets
        tomoyo: Update URLs in Documentation/admin-guide/LSM/tomoyo.rst
        LSM: Remove security_task_create() hook.
      7f85565a
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 680352bd
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Two fixes: dead code removal, plus a SME memory encryption fix on
        32-bit kernels that crashed Xen guests"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Remove unused and undefined __generic_processor_info() declaration
        x86/mm: Make the SME mask a u64
      680352bd
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 040b9d7c
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Three fixes:
      
         - fix a suspend/resume cpusets bug
      
         - fix a !CONFIG_NUMA_BALANCING bug
      
         - fix a kerneldoc warning"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix nuisance kernel-doc warning
        sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs
        sched/fair: Fix wake_affine_llc() balancing rules
      040b9d7c
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e6328a7a
      Linus Torvalds authored
      Pull perf tooling updates from Ingo Molnar:
       "Perf tooling updates and fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf annotate browser: Help for cycling thru hottest instructions with TAB/shift+TAB
        perf stat: Only auto-merge events that are PMU aliases
        perf test: Add test case for PERF_SAMPLE_PHYS_ADDR
        perf script: Support physical address
        perf mem: Support physical address
        perf sort: Add sort option for physical address
        perf tools: Support new sample type for physical address
        perf vendor events powerpc: Remove duplicate events
        perf intel-pt: Fix syntax in documentation of config option
        perf test powerpc: Fix 'Object code reading' test
        perf trace: Support syscall name globbing
        perf syscalltbl: Support glob matching on syscall names
        perf report: Calculate the average cycles of iterations
      e6328a7a
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 33f82bda
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "A sparse irq race/locking fix, and a MSI irq domains population fix"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Make sparse_irq_lock protect what it should protect
        genirq/msi: Fix populating multiple interrupts
      33f82bda
    • Chao Yu's avatar
      f2fs: hurry up to issue discard after io interruption · e6c6de18
      Chao Yu authored
      Once we encounter I/O interruption during issuing discards, we will delay
      long time before next round, but if system status is I/O idle during the
      time, it may loses opportunity to issue discards. So this patch changes
      to hurry up to issue discard after io interruption.
      
      Besides, this patch also fixes to issue discards accurately with assigned
      rate.
      Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      e6c6de18
    • Chao Yu's avatar
      f2fs: fix to show correct discard_granularity in sysfs · 80647e5f
      Chao Yu authored
      Fix below incorrect display when reading discard_granularity sysfs node.
      
      $ cat /sys/fs/f2fs/<device>/discard_granularity
      $ 16
      $ echo 32 > /sys/fs/f2fs/<device>/discard_granularity
      $ cat /sys/fs/f2fs/<device>/discard_granularity
      $ 16
      Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      80647e5f
    • Chao Yu's avatar
      f2fs: detect dirty inode in evict_inode · ca7d802a
      Chao Yu authored
      Add a bugon in f2fs_evict_inode to detect inconsistent status between
      inode cache and related node page cache.
      Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      ca7d802a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 8fac2f96
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "Low priority fixes and updates for ARM:
      
         - add some missing includes
      
         - efficiency improvements in system call entry code when tracing is
           enabled
      
         - ensure ARMv6+ is always built as EABI
      
         - export save_stack_trace_tsk()
      
         - fix fatal signal handling during mm fault
      
         - build translation table base address register from scratch
      
         - appropriately align the .data section to a word boundary where we
           rely on that data being word aligned"
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8691/1: Export save_stack_trace_tsk()
        ARM: 8692/1: mm: abort uaccess retries upon fatal signal
        ARM: 8690/1: lpae: build TTB control register value from scratch in v7_ttb_setup
        ARM: align .data section
        ARM: always enable AEABI for ARMv6+
        ARM: avoid saving and restoring registers unnecessarily
        ARM: move PC value into r9
        ARM: obtain thread info structure later
        ARM: use aliases for registers in entry-common
        ARM: 8689/1: scu: add missing errno include
        ARM: 8688/1: pm: add missing types include
      8fac2f96
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 260d1658
      Linus Torvalds authored
      Pull more s390 updates from Martin Schwidefsky:
       "The second patch set for the 4.14 merge window:
      
         - Convert the dasd device driver to the blk-mq interface.
      
         - Provide three zcrypt interfaces for vfio_ap. These will be required
           for KVM guest access to the crypto cards attached via the AP bus.
      
         - A couple of memory management bug fixes."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/dasd: blk-mq conversion
        s390/mm: use a single lock for the fields in mm_context_t
        s390/mm: fix race on mm->context.flush_mm
        s390/mm: fix local TLB flushing vs. detach of an mm address space
        s390/zcrypt: externalize AP queue interrupt control
        s390/zcrypt: externalize AP config info query
        s390/zcrypt: externalize test AP queue
        s390/mm: use VM_BUG_ON in crst_table_[upgrade|downgrade]
      260d1658
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · c971aa36
      Linus Torvalds authored
      Pull thermal updates from Zhang Rui:
      
       - fix resources release in error paths when registering thermal zone.
         (Christophe Jaillet)
      
       - introduce a new thermal driver for on-chip PVT (Process, Voltage and
         Temperature) monitoring unit implemented on UniPhier SoCs. This
         driver supports temperature monitoring and alert function. (Kunihiko
         Hayashi)
      
       - Add support for mt2712 chip in the mtk_thermal driver. (Louis Yu)
      
       - Add support for RK3328 SOC in rockchip_thermal driver. (Rocky Hao)
      
       - cleanup a couple of platform thermal drivers to constify
         thermal_zone_of_device_ops structures. (Julia Lawall)
      
       - a couple of fixes in int340x and intel_pch_thermal thermal driver.
         (Arvind Yadav, Sumeet Pawnikar, Brian Bian, Ed Swierk, Zhang Rui)
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (27 commits)
        Thermal: int3406_thermal: fix thermal sysfs I/F
        thermal: mediatek: minor mtk_thermal.c cleanups
        thermal: mediatek: extend calibration data for mt2712 chip
        thermal: mediatek: add Mediatek thermal driver for mt2712
        dt-bindings: thermal: Add binding document for Mediatek thermal controller
        thermal: intel_pch_thermal: Fix enable check on Broadwell-DE
        thermal: rockchip: Support the RK3328 SOC in thermal driver
        dt-bindings: rockchip-thermal: Support the RK3328 SoC compatible
        thermal: bcm2835: constify thermal_zone_of_device_ops structures
        thermal: exynos: constify thermal_zone_of_device_ops structures
        thermal: zx2967: constify thermal_zone_of_device_ops structures
        thermal: rcar_gen3_thermal: constify thermal_zone_of_device_ops structures
        thermal: qoriq: constify thermal_zone_of_device_ops structures
        thermal: hisilicon: constify thermal_zone_of_device_ops structures
        thermal: core: Fix resources release in error paths in thermal_zone_device_register()
        thermal: core: Use the new 'thermal_zone_destroy_device_groups()' helper function
        thermal: core: Add some new helper functions to free resources
        thermal: int3400_thermal: process "thermal table changed" event
        thermal: uniphier: add UniPhier thermal driver
        dt-bindings: thermal: add binding documentation for UniPhier thermal monitor
        ...
      c971aa36
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-4.14-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 8e7757d8
      Linus Torvalds authored
      Pull NFS client updates from Trond Myklebust:
       "Hightlights include:
      
        Stable bugfixes:
         - Fix mirror allocation in the writeback code to avoid a use after
           free
         - Fix the O_DSYNC writes to use the correct byte range
         - Fix 2 use after free issues in the I/O code
      
        Features:
         - Writeback fixes to split up the inode->i_lock in order to reduce
           contention
         - RPC client receive fixes to reduce the amount of time the
           xprt->transport_lock is held when receiving data from a socket into
           am XDR buffer.
         - Ditto fixes to reduce contention between call side users of the
           rdma rb_lock, and its use in rpcrdma_reply_handler.
         - Re-arrange rdma stats to reduce false cacheline sharing.
         - Various rdma cleanups and optimisations.
         - Refactor the NFSv4.1 exchange id code and clean up the code.
         - Const-ify all instances of struct rpc_xprt_ops
      
        Bugfixes:
         - Fix the NFSv2 'sec=' mount option.
         - NFSv4.1: don't use machine credentials for CLOSE when using
           'sec=sys'
         - Fix the NFSv3 GRANT callback when the port changes on the server.
         - Fix livelock issues with COMMIT
         - NFSv4: Use correct inode in _nfs4_opendata_to_nfs4_state() when
           doing and NFSv4.1 open by filehandle"
      
      * tag 'nfs-for-4.14-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (69 commits)
        NFS: Count the bytes of skipped subrequests in nfs_lock_and_join_requests()
        NFS: Don't hold the group lock when calling nfs_release_request()
        NFS: Remove pnfs_generic_transfer_commit_list()
        NFS: nfs_lock_and_join_requests and nfs_scan_commit_list can deadlock
        NFS: Fix 2 use after free issues in the I/O code
        NFS: Sync the correct byte range during synchronous writes
        lockd: Delete an error message for a failed memory allocation in reclaimer()
        NFS: remove jiffies field from access cache
        NFS: flush data when locking a file to ensure cache coherence for mmap.
        SUNRPC: remove some dead code.
        NFS: don't expect errors from mempool_alloc().
        xprtrdma: Use xprt_pin_rqst in rpcrdma_reply_handler
        xprtrdma: Re-arrange struct rx_stats
        NFS: Fix NFSv2 security settings
        NFSv4.1: don't use machine credentials for CLOSE when using 'sec=sys'
        SUNRPC: ECONNREFUSED should cause a rebind.
        NFS: Remove unused parameter gfp_flags from nfs_pageio_init()
        NFSv4: Fix up mirror allocation
        SUNRPC: Add a separate spinlock to protect the RPC request receive list
        SUNRPC: Cleanup xs_tcp_read_common()
        ...
      8e7757d8
    • Daeho Jeong's avatar
      f2fs: clear radix tree dirty tag of pages whose dirty flag is cleared · 0abd8e70
      Daeho Jeong authored
      On a senario like writing out the first dirty page of the inode
      as the inline data, we only cleared dirty flags of the pages, but
      didn't clear the dirty tags of those pages in the radix tree.
      
      If we don't clear the dirty tags of the pages in the radix tree, the
      inodes which contain the pages will be marked with I_DIRTY_PAGES again
      and again, and writepages() for the inodes will be invoked in every
      writeback period. As a result, nothing will be done in every
      writepages() for the inodes and it will just consume CPU time
      meaninglessly.
      Signed-off-by: default avatarDaeho Jeong <daeho.jeong@samsung.com>
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      0abd8e70
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · dd198ce7
      Linus Torvalds authored
      Pull namespace updates from Eric Biederman:
       "Life has been busy and I have not gotten half as much done this round
        as I would have liked. I delayed it so that a minor conflict
        resolution with the mips tree could spend a little time in linux-next
        before I sent this pull request.
      
        This includes two long delayed user namespace changes from Kirill
        Tkhai. It also includes a very useful change from Serge Hallyn that
        allows the security capability attribute to be used inside of user
        namespaces. The practical effect of this is people can now untar
        tarballs and install rpms in user namespaces. It had been suggested to
        generalize this and encode some of the namespace information
        information in the xattr name. Upon close inspection that makes the
        things that should be hard easy and the things that should be easy
        more expensive.
      
        Then there is my bugfix/cleanup for signal injection that removes the
        magic encoding of the siginfo union member from the kernel internal
        si_code. The mips folks reported the case where I had used FPE_FIXME
        me is impossible so I have remove FPE_FIXME from mips, while at the
        same time including a return statement in that case to keep gcc from
        complaining about unitialized variables.
      
        I almost finished the work to get make copy_siginfo_to_user a trivial
        copy to user. The code is available at:
      
           git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git neuter-copy_siginfo_to_user-v3
      
        But I did not have time/energy to get the code posted and reviewed
        before the merge window opened.
      
        I was able to see that the security excuse for just copying fields
        that we know are initialized doesn't work in practice there are buggy
        initializations that don't initialize the proper fields in siginfo. So
        we still sometimes copy unitialized data to userspace"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        Introduce v3 namespaced file capabilities
        mips/signal: In force_fcr31_sig return in the impossible case
        signal: Remove kernel interal si_code magic
        fcntl: Don't use ambiguous SIG_POLL si_codes
        prctl: Allow local CAP_SYS_ADMIN changing exe_file
        security: Use user_namespace::level to avoid redundant iterations in cap_capable()
        userns,pidns: Verify the userns for new pid namespaces
        signal/testing: Don't look for __SI_FAULT in userspace
        signal/mips: Document a conflict with SI_USER with SIGFPE
        signal/sparc: Document a conflict with SI_USER with SIGFPE
        signal/ia64: Document a conflict with SI_USER with SIGFPE
        signal/alpha: Document a conflict with SI_USER for SIGTRAP
      dd198ce7
    • Jaegeuk Kim's avatar
      f2fs: speed up gc_urgent mode with SSR · b3a97a2a
      Jaegeuk Kim authored
      This patch activates SSR in gc_urgent mode.
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      b3a97a2a
    • Jaegeuk Kim's avatar
      f2fs: better to wait for fstrim completion · 1eb1ef4a
      Jaegeuk Kim authored
      In android, we'd better wait for fstrim completion instead of issuing the
      discard commands asynchronous.
      Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      1eb1ef4a
  4. 11 Sep, 2017 10 commits
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 89fd915c
      Linus Torvalds authored
      Pull libnvdimm from Dan Williams:
       "A rework of media error handling in the BTT driver and other updates.
        It has appeared in a few -next releases and collected some late-
        breaking build-error and warning fixups as a result.
      
        Summary:
      
         - Media error handling support in the Block Translation Table (BTT)
           driver is reworked to address sleeping-while-atomic locking and
           memory-allocation-context conflicts.
      
         - The dax_device lookup overhead for xfs and ext4 is moved out of the
           iomap hot-path to a mount-time lookup.
      
         - A new 'ecc_unit_size' sysfs attribute is added to advertise the
           read-modify-write boundary property of a persistent memory range.
      
         - Preparatory fix-ups for arm and powerpc pmem support are included
           along with other miscellaneous fixes"
      
      * tag 'libnvdimm-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (26 commits)
        libnvdimm, btt: fix format string warnings
        libnvdimm, btt: clean up warning and error messages
        ext4: fix null pointer dereference on sbi
        libnvdimm, nfit: move the check on nd_reserved2 to the endpoint
        dax: fix FS_DAX=n BLOCK=y compilation
        libnvdimm: fix integer overflow static analysis warning
        libnvdimm, nd_blk: remove mmio_flush_range()
        libnvdimm, btt: rework error clearing
        libnvdimm: fix potential deadlock while clearing errors
        libnvdimm, btt: cache sector_size in arena_info
        libnvdimm, btt: ensure that flags were also unchanged during a map_read
        libnvdimm, btt: refactor map entry operations with macros
        libnvdimm, btt: fix a missed NVDIMM_IO_ATOMIC case in the write path
        libnvdimm, nfit: export an 'ecc_unit_size' sysfs attribute
        ext4: perform dax_device lookup at mount
        ext2: perform dax_device lookup at mount
        xfs: perform dax_device lookup at mount
        dax: introduce a fs_dax_get_by_bdev() helper
        libnvdimm, btt: check memory allocation failure
        libnvdimm, label: fix index block size calculation
        ...
      89fd915c
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-4.14-rc1' of... · 66c9457d
      Linus Torvalds authored
      Merge tag 'pwm/for-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "The changes for this release include a new driver for the PWM
        controller found on SoCs of the ZTX ZX family. Support for an old
        SH-Mobile SoC has been dropped and the Rockchip and MediaTek drivers
        gain support for more generations.
      
        Other than that there are a bunch of coding style fixes, minor bug
        fixes and cleanup as well as documentation patches"
      
      * tag 'pwm/for-4.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (32 commits)
        pwm: pwm-samsung: fix suspend/resume support
        pwm: samsung: Remove redundant checks from pwm_samsung_config()
        pwm: mediatek: Disable clock on PWM configuration failure
        dt-bindings: pwm: Add MT2712/MT7622 information
        pwm: mediatek: Fix clock control issue
        pwm: mediatek: Fix PWM source clock selection
        pwm: mediatek: Fix Kconfig description
        pwm: tegra: Explicitly request exclusive reset control
        pwm: hibvt: Explicitly request exclusive reset control
        pwm: tiehrpwm: Set driver data before runtime PM enable
        pwm: tiehrpwm: Miscellaneous coding style fixups
        pwm: tiecap: Set driver data before runtime PM enable
        pwm: tiecap: Miscellaneous coding style fixups
        dt-bindings: pwm: tiecap: Add TI 66AK2G SoC specific compatible
        pwm: tiehrpwm: fix clock imbalance in probe error path
        pwm: tiehrpwm: Fix runtime PM imbalance at unbind
        pwm: Kconfig: Enable pwm-tiecap to be built for Keystone
        pwm: Add ZTE ZX PWM device driver
        dt-bindings: pwm: Add bindings doc for ZTE ZX PWM controller
        pwm: bcm2835: Support for polarity setting via DT
        ...
      66c9457d
    • Linus Torvalds's avatar
      Merge branch 'bt-fix' (bluetooth fixes from Marcel) · 669bf77a
      Linus Torvalds authored
      Pull bluetooth fix from Marcel Holtmann:
       "All of our mgmt-tester, l2cap-test and rfcomm-tester unit tests are
        passing with this patch"
      
      * emailed patch from Marcel Holtmann <marcel@holtmann.org>:
        Bluetooth: Properly check L2CAP config option output buffer length
      669bf77a
    • Dou Liyang's avatar
      x86/cpu: Remove unused and undefined __generic_processor_info() declaration · e2329b42
      Dou Liyang authored
      The following revert:
      
        2b85b3d2 ("x86/acpi: Restore the order of CPU IDs")
      
      ... got rid of __generic_processor_info(), but forgot to remove its
      declaration in mpspec.h.
      
      Remove the declaration and update the comments as well.
      Signed-off-by: default avatarDou Liyang <douly.fnst@cn.fujitsu.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: lenb@kernel.org
      Link: http://lkml.kernel.org/r/1505101403-29100-1-git-send-email-douly.fnst@cn.fujitsu.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      e2329b42
    • Randy Dunlap's avatar
      sched/fair: Fix nuisance kernel-doc warning · 46123355
      Randy Dunlap authored
      Work around kernel-doc warning ('*' in Sphinx doc means "emphasis"):
      
        ../kernel/sched/fair.c:7584: WARNING: Inline emphasis start-string without end-string.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/f18b30f9-6251-6d86-9d44-16501e386891@infradead.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      46123355
    • Linus Torvalds's avatar
      Revert "firmware: add sanity check on shutdown/suspend" · f007cad1
      Linus Torvalds authored
      This reverts commit 81f95076.
      
      It causes random failures of firmware loading at resume time (well,
      random for me, it seems to be more reliable for others) because the
      firmware disabling is not actually synchronous with any particular
      resume event, and at least the btusb driver that uses a workqueue to
      load the firmware at resume seems to occasionally hit the "firmware
      loading is disabled" logic because the firmware loader hasn't gotten the
      resume event yet.
      
      Some kind of sanity check for not trying to load firmware when it's not
      possible might be a good thing, but this commit was not it.
      
      Greg seems to have silently suffered the same issue, and pointed to the
      likely culprit, and Gabriel C verified the revert fixed it for him too.
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Pointed-at-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Tested-by: default avatarGabriel C <nix.or.die@gmail.com>
      Cc: Luis R. Rodriguez <mcgrof@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f007cad1
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 64414e5f
      Linus Torvalds authored
      Pull m68knommu updates from Greg Ungerer:
       "Only two changes. One removes unused code, the other makes local clock
        code arguments consistent with generic clock code"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: remove dead code
        m68k: allow NULL clock for clk_get_rate
      64414e5f
    • Linus Torvalds's avatar
      Merge tag 'armsoc-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e90937e7
      Linus Torvalds authored
      Pull ARM/arm64 Devicetree updates from Olof Johansson:
       "As usual, device tree updates is the bulk of our material in this
        merge window. This time around, 559 patches affecting both 32- and
        64-bit platforms.
      
        Changes are too many to list individually, but some of the larger
        ones:
      
        New platform/SoC support:
      
         - Automotive:
           + Renesas R-Car D3 (R8A77995)
           + TI DT76x
           + MediaTek mt2712e
         - Communication-oriented:
           + Qualcomm IPQ8074
           + Broadcom Stingray
           + Marvell Armada 8080
         - Set top box:
           + Uniphier PXs3
      
        Besides some vendor reference boards for the SoC above, there are also
        several new boards/machines:
      
         - TI AM335x Moxa UC-8100-ME-T open platform
         - TI AM57xx Beaglebone X15 Rev C
         - Microchip/Atmel sama5d27 SoM1 EK
         - Broadcom Raspberry Pi Zero W
         - Gemini-based D-Link DIR-685 router
         - Freescale i.MX6:
           + Toradex Apalis module + Apalis and Ixora carrier boards
           + Engicam GEAM6UL Starter Kit
         - Freescale i.MX53-based Beckhoff CX9020 Embedded PC
         - Mediatek mt7623-based BananaPi R2
         - Several Allwinner-based single-board computers:
        + Cubietruck plus
        + Bananapi M3, M2M and M64
        + NanoPi A64
        + A64-OLinuXino
        + Pine64
         - Rockchip RK3328 Pine64/Rock64 board support
         - Rockchip RK3399 boards:
        + RK3399 Sapphire module on Excavator carrier (RK3399 reference design)
        + Theobroma Systems RK3399-Q7 SoM
         - ZTE ZX296718 PCBOX Board"
      
      * tag 'armsoc-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (559 commits)
        ARM: dts: at91: at91sam9g45: add AC97
        arm64: dts: marvell: mcbin: enable more networking ports
        arm64: dts: marvell: add a reference to the sysctrl syscon in the ppv2 node
        arm64: dts: marvell: add TX interrupts for PPv2.2
        arm64: dts: uniphier: add PXs3 SoC support
        ARM: dts: uniphier: add pinctrl groups of ethernet phy mode
        ARM: dts: uniphier: fix size of sdctrl nodes
        ARM: dts: uniphier: add AIDET nodes
        arm64: dts: uniphier: fix size of sdctrl node
        arm64: dts: uniphier: add AIDET nodes
        Revert "ARM: dts: sun8i: h3: Enable dwmac-sun8i on the Beelink X2"
        arm64: dts: uniphier: add reset controller node of analog amplifier
        arm64: dts: marvell: add Device Tree files for Armada-8KP
        arm64: dts: rockchip: add Haikou baseboard with RK3399-Q7 SoM
        arm64: dts: rockchip: add RK3399-Q7 (Puma) SoM
        dt-bindings: add rk3399-q7 SoM
        ARM: dts: rockchip: enable usb for rv1108-evb
        ARM: dts: rockchip: add usb nodes for rv1108 SoCs
        dt-bindings: update grf-binding for rv1108 SoCs
        ARM: dts: aspeed-g4: fix AHB window size of the SMC controllers
        ...
      e90937e7
    • Linus Torvalds's avatar
      Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ae46654b
      Linus Torvalds authored
      Pull ARM SoC driver updates from Olof Johansson:
       "This branch contains platform-related driver updates for ARM and ARM64.
      
        Among them:
      
         - Reset driver updates:
           + New API for dealing with arrays of resets
           + Make unimplemented {de,}assert return success on shared resets
           + MSDKv1 driver
           + Removal of obsolete Gemini reset driver
           + Misc updates for sunxi and Uniphier
      
         - SoC drivers:
           + Platform SoC driver registration on Tegra
           + Shuffle of Qualcomm drivers into a submenu
           + Allwinner A64 support for SRAM
           + Renesas R-Car R3 support
           + Power domains for Rockchip RK3366
      
         - Misc updates and smaller fixes for TEE and memory driver
           subsystems"
      
      * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
        firmware: arm_scpi: fix endianness of dev_id in struct dev_pstate_set
        soc/tegra: fuse: Add missing semi-colon
        soc/tegra: Restrict SoC device registration to Tegra
        drivers: soc: sunxi: add support for A64 and its SRAM C
        drivers: soc: sunxi: add support for remapping func value to reg value
        drivers: soc: sunxi: fix error processing on base address when claiming
        dt-bindings: add binding for Allwinner A64 SRAM controller and SRAM C
        bus: sunxi-rsb: Enable by default for ARM64
        soc/tegra: Register SoC device
        firmware: tegra: set drvdata earlier
        memory: Convert to using %pOF instead of full_name
        soc: Convert to using %pOF instead of full_name
        bus: Convert to using %pOF instead of full_name
        firmware: Convert to using %pOF instead of full_name
        soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC
        soc: mediatek: add header files required for MT7622 SCPSYS dt-binding
        soc: mediatek: reduce code duplication of scpsys_probe across all SoCs
        dt-bindings: soc: update the binding document for SCPSYS on MediaTek MT7622 SoC
        reset: uniphier: add analog amplifiers reset control
        reset: uniphier: add video input subsystem reset control
        ...
      ae46654b
    • Linus Torvalds's avatar
      Merge tag 'armsoc-platforms' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 7f1b9be1
      Linus Torvalds authored
      Pull ARM/arm64 SoC platform updates from Olof Johansson: "This branch
        contains platform updates for 32- and 64-bit ARM, including defconfig
        updates to enable new options, drivers and platforms. There are also a
        few fixes and cleanups for some existing vendors.
      
        Some of the things worth highlighting here are:
      
         - Enabling new crypt drivers on arm64 defconfig
      
         - QCOM IPQ8074 clocks and pinctrl drivers on arm64 defconfig
      
         - Debug support enabled for Renesas r8a7743
      
         - Various config updates for Renesas platforms (sound, USB, other
           drivers)
      
         - Platform support (including SMP) for TI dra762
      
         - OMAP cleanups: Move to use generic 8250 debug_ll, removal of stale
           DMA code"
      
      * tag 'armsoc-platforms' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (109 commits)
        ARM: multi_v7_defconfig: make eSDHC driver built-in
        arm64: defconfig: enable rockchip graphics
        MAINTAINERS: Update Cavium ThunderX2 entry
        ARM: config: aspeed: Add I2C, VUART, LPC Snoop
        ARM: configs: aspeed: Update Aspeed G4 with VMSPLIT_2G
        ARM: s3c24xx: Fix NAND ECC mode for mini2440 board
        ARM: davinci_all_defconfig: enable tinydrm and ST7586
        arm64: defconfig: Enable QCOM IPQ8074 clock and pinctrl
        ARM: defconfig: tegra: Enable ChipIdea UDC driver
        ARM: configs: Add Tegra I2S interfaces to multi_v7_defconfig
        ARM: tegra: Add Tegra I2S interfaces to defconfig
        ARM: tegra: Update default configuration for v4.13-rc1
        MAINTAINERS: update ARM/ZTE entry
        soc: versatile: remove unnecessary static in realview_soc_probe()
        ARM: Convert to using %pOF instead of full_name
        ARM: hisi: Fix typo in comment
        ARM: multi_v7_defconfig: add CONFIG_BRCMSTB_THERMAL
        arm64: defconfig: add CONFIG_BRCMSTB_THERMAL
        arm64: defconfig: add recently added crypto drivers as modules
        arm64: defconfig: enable CONFIG_UNIPHIER_WATCHDOG
        ...
      7f1b9be1
  5. 10 Sep, 2017 5 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next · d719518d
      Linus Torvalds authored
      Pull sparc updates from David Miller:
      
       1) Use register window state adjustment instructions when available,
          from Anthony Yznaga.
      
       2) Add VCC console concentrator driver, from Jag Raman.
      
       3) Add 16GB hugepage support, from Nitin Gupta.
      
       4) Support cpu 'poke' hypercall, from Vijay Kumar.
      
       5) Add M7/M8 optimized memcpy/memset/copy_{to,from}_user, from Babu
          Moger.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next: (33 commits)
        sparc64: Handle additional cases of no fault loads
        sparc64: speed up etrap/rtrap on NG2 and later processors
        sparc64: vcc: make ktermios const
        sparc: leon: grpci1: constify of_device_id
        sparc: leon: grpci2: constify of_device_id
        sparc64: vcc: Check for IS_ERR() instead of NULL
        sparc64: Cleanup hugepage table walk functions
        sparc64: Add 16GB hugepage support
        sparc64: Support huge PUD case in get_user_pages
        sparc64: vcc: Add install & cleanup TTY operations
        sparc64: vcc: Add break_ctl TTY operation
        sparc64: vcc: Add chars_in_buffer TTY operation
        sparc64: vcc: Add write & write_room TTY operations
        sparc64: vcc: Add hangup TTY operation
        sparc64: vcc: Add open & close TTY operations
        sparc64: vcc: Enable LDC event processing engine
        sparc64: vcc: Add RX & TX timer for delayed LDC operation
        sparc64: vcc: Create sysfs attribute group
        sparc64: vcc: Enable VCC port probe and removal
        sparc64: vcc: TTY driver initialization and cleanup
        ...
      d719518d
    • Geert Uytterhoeven's avatar
      m68k: Add braces to __pmd(x) initializer to kill compiler warning · 4c2b5e0f
      Geert Uytterhoeven authored
      With gcc 4.1.2:
      
          include/linux/swapops.h: In function ‘swp_entry_to_pmd’:
          include/linux/swapops.h:294: warning: missing braces around initializer
          include/linux/swapops.h:294: warning: (near initialization for ‘(anonymous).pmd’)
      
      Due to a GCC zero initializer bug (#53119), the standard "(pmd_t){ 0 }"
      initializer is not accepted by all GCC versions.
      In addition, on m68k pmd_t is an array instead of a single value, so we
      need "(pmd_t){ { 0 }, }" instead of "(pmd_t){ 0 }".
      
      Based on commit 9157259d ("mm: add pmd_t initializer __pmd() to
      work around a GCC bug.") for sparc32.
      
      Fixes: 616b8371 ("mm: thp: enable thp migration in generic path")
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4c2b5e0f
    • Andy Lutomirski's avatar
      x86/mm/64: Fix an incorrect warning with CONFIG_DEBUG_VM=y, !PCID · 7898f796
      Andy Lutomirski authored
      I've been staring at the word PCID too long.
      
      Fixes: f13c8e8c58ba ("x86/mm: Reinitialize TLB state on hotplug and resume")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarAndy Lutomirski <luto@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7898f796
    • Rob Gardner's avatar
      sparc64: Handle additional cases of no fault loads · b6fe1089
      Rob Gardner authored
      Load instructions using ASI_PNF or other no-fault ASIs should not
      cause a SIGSEGV or SIGBUS.
      
      A garden variety unmapped address follows the TSB miss path, and when
      no valid mapping is found in the process page tables, the miss handler
      checks to see if the access was via a no-fault ASI.  It then fixes up
      the target register with a zero, and skips the no-fault load
      instruction.
      
      But different paths are taken for data access exceptions and alignment
      traps, and these do not respect the no-fault ASI. We add checks in
      these paths for the no-fault ASI, and fix up the target register and
      TPC just like in the TSB miss case.
      Signed-off-by: default avatarRob Gardner <rob.gardner@oracle.com>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b6fe1089
    • Anthony Yznaga's avatar
      sparc64: speed up etrap/rtrap on NG2 and later processors · a7159a87
      Anthony Yznaga authored
      For many sun4v processor types, reading or writing a privileged register
      has a latency of 40 to 70 cycles.  Use a combination of the low-latency
      allclean, otherw, normalw, and nop instructions in etrap and rtrap to
      replace 2 rdpr and 5 wrpr instructions and improve etrap/rtrap
      performance.  allclean, otherw, and normalw are available on NG2 and
      later processors.
      
      The average ticks to execute the flush windows trap ("ta 0x3") with and
      without this patch on select platforms:
      
       CPU            Not patched     Patched    % Latency Reduction
      
       NG2            1762            1558            -11.58
       NG4            3619            3204            -11.47
       M7             3015            2624            -12.97
       SPARC64-X      829             770              -7.12
      Signed-off-by: default avatarAnthony Yznaga <anthony.yznaga@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a7159a87