1. 07 10月, 2016 10 次提交
    • P
      xen-netback: retire guest rx side prefix GSO feature · fedbc8c1
      Paul Durrant 提交于
      As far as I am aware only very old Windows network frontends make use of
      this style of passing GSO packets from backend to frontend. These
      frontends can easily be replaced by the freely available Xen Project
      Windows PV network frontend, which uses the 'default' mechanism for
      passing GSO packets, which is also used by all Linux frontends.
      
      NOTE: Removal of this feature will not cause breakage in old Windows
            frontends. They simply will no longer receive GSO packets - the
            packets instead being fragmented in the backend.
      Signed-off-by: NPaul Durrant <paul.durrant@citrix.com>
      Reviewed-by: NDavid Vrabel <david.vrabel@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fedbc8c1
    • P
      xen-netback: separate guest side rx code into separate module · 3254f836
      Paul Durrant 提交于
      The netback source module has become very large and somewhat confusing.
      This patch simply moves all code related to the backend to frontend (i.e
      guest side rx) data-path into a separate rx source module.
      
      This patch contains no functional change, it is code movement and
      minimal changes to avoid patch style-check issues.
      Signed-off-by: NPaul Durrant <paul.durrant@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3254f836
    • D
      Merge branch 'fman-next' of git://git.freescale.com/ppc/upstream/linux · 00c06ed7
      David S. Miller 提交于
      Madalin Bucur says:
      
      ====================
      fsl/fman: cleanup and small fixes
      
      This series contains fixes for the DPAA FMan driver.
      Adding myself as maintainer of the driver.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      00c06ed7
    • L
      Merge tag 'for-f2fs-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 4c1fad64
      Linus Torvalds 提交于
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've investigated how f2fs deals with errors given by
        our fault injection facility. With this, we could fix several corner
        cases. And, in order to improve the performance, we set inline_dentry
        by default and enhance the exisiting discard issue flow. In addition,
        we added f2fs_migrate_page for better memory management.
      
        Enhancements:
         - set inline_dentry by default
         - improve discard issue flow
         - add more fault injection cases in f2fs
         - allow block preallocation for encrypted files
         - introduce migrate_page callback function
         - avoid truncating the next direct node block at every checkpoint
      
        Bug fixes:
         - set page flag correctly between write_begin and write_end
         - missing error handling cases detected by fault injection
         - preallocate blocks regarding to 4KB alignement correctly
         - dentry and filename handling of encryption
         - lost xattrs of directories"
      
      * tag 'for-f2fs-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (69 commits)
        f2fs: introduce update_ckpt_flags to clean up
        f2fs: don't submit irrelevant page
        f2fs: fix to commit bio cache after flushing node pages
        f2fs: introduce get_checkpoint_version for cleanup
        f2fs: remove dead variable
        f2fs: remove redundant io plug
        f2fs: support checkpoint error injection
        f2fs: fix to recover old fault injection config in ->remount_fs
        f2fs: do fault injection initialization in default_options
        f2fs: remove redundant value definition
        f2fs: support configuring fault injection per superblock
        f2fs: adjust display format of segment bit
        f2fs: remove dirty inode pages in error path
        f2fs: do not unnecessarily null-terminate encrypted symlink data
        f2fs: handle errors during recover_orphan_inodes
        f2fs: avoid gc in cp_error case
        f2fs: should put_page for summary page
        f2fs: assign return value in f2fs_gc
        f2fs: add customized migrate_page callback
        f2fs: introduce cp_lock to protect updating of ckpt_flags
        ...
      4c1fad64
    • L
      Merge tag 'pstore-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 0fb3ca44
      Linus Torvalds 提交于
      Pull pstore updates from Kees Cook:
      
       - Fix bug in module unloading
      
       - Switch to always using spinlock over cmpxchg
      
       - Explicitly define pstore backend's supported modes
      
       - Remove bounce buffer from pmsg
      
       - Switch to using memcpy_to/fromio()
      
       - Error checking improvements
      
      * tag 'pstore-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ramoops: move spin_lock_init after kmalloc error checking
        pstore/ram: Use memcpy_fromio() to save old buffer
        pstore/ram: Use memcpy_toio instead of memcpy
        pstore/pmsg: drop bounce buffer
        pstore/ram: Set pstore flags dynamically
        pstore: Split pstore fragile flags
        pstore/core: drop cmpxchg based updates
        pstore/ramoops: fixup driver removal
      0fb3ca44
    • L
      Merge tag 'for-linus-4.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · 3940ee36
      Linus Torvalds 提交于
      Pull orangefs updates from Mike Marshall:
       "Miscellaneous improvements:
         - clean up debugfs globals
         - remove dead code in sysfs
         - reorganize duplicated sysfs attribute structs
         - consolidate sysfs show and store functions
         - remove duplicated sysfs_ops structures
         - describe organization of sysfs
         - make devreq_mutex static
         - g_orangefs_stats -> orangefs_stats for consistency
         - rename most remaining global variables
      
        Feature negotiation:
         - enable Orangefs userspace and kernel module to negotiate mutually
           supported features"
      
      * tag 'for-linus-4.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        Revert "orangefs: bump minimum userspace version"
        orangefs: bump minimum userspace version
        orangefs: rename most remaining global variables
        orangefs: g_orangefs_stats -> orangefs_stats for consistency
        orangefs: make devreq_mutex static
        orangefs: describe organization of sysfs
        orangefs: remove duplicated sysfs_ops structures
        orangefs: consolidate sysfs show and store functions
        orangefs: reorganize duplicated sysfs attribute structs
        orangefs: remove dead code in sysfs
        orangefs: clean up debugfs globals
        orangefs: do not allow client readahead cache without feature bit
        orangefs: add features op
        orangefs: record userspace version for feature compatbility
        orangefs: add readahead count and size to sysfs
        orangefs: re-add flush_racache from out-of-tree
        orangefs: turn param response value into union
        orangefs: add missing param request ops
        orangefs: rename remaining bits of mmap readahead cache
      3940ee36
    • L
      Merge tag 'trace-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 95107b30
      Linus Torvalds 提交于
      Pull tracing updates from Steven Rostedt:
       "This release cycle is rather small.  Just a few fixes to tracing.
      
        The big change is the addition of the hwlat tracer. It not only
        detects SMIs, but also other latency that's caused by the hardware. I
        have detected some latency from large boxes having bus contention"
      
      * tag 'trace-v4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Call traceoff trigger after event is recorded
        ftrace/scripts: Add helper script to bisect function tracing problem functions
        tracing: Have max_latency be defined for HWLAT_TRACER as well
        tracing: Add NMI tracing in hwlat detector
        tracing: Have hwlat trace migrate across tracing_cpumask CPUs
        tracing: Add documentation for hwlat_detector tracer
        tracing: Added hardware latency tracer
        ftrace: Access ret_stack->subtime only in the function profiler
        function_graph: Handle TRACE_BPUTS in print_graph_comment
        tracing/uprobe: Drop isdigit() check in create_trace_uprobe
      95107b30
    • L
      Merge tag 'for-linus-4.9-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 541efb76
      Linus Torvalds 提交于
      Pull xen updates from David Vrabel:
       "xen features and fixes for 4.9:
      
         - switch to new CPU hotplug mechanism
      
         - support driver_override in pciback
      
         - require vector callback for HVM guests (the alternate mechanism via
           the platform device has been broken for ages)"
      
      * tag 'for-linus-4.9-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/x86: Update topology map for PV VCPUs
        xen/x86: Initialize per_cpu(xen_vcpu, 0) a little earlier
        xen/pciback: support driver_override
        xen/pciback: avoid multiple entries in slot list
        xen/pciback: simplify pcistub device handling
        xen: Remove event channel notification through Xen PCI platform device
        xen/events: Convert to hotplug state machine
        xen/x86: Convert to hotplug state machine
        x86/xen: add missing \n at end of printk warning message
        xen/grant-table: Use kmalloc_array() in arch_gnttab_valloc()
        xen: Make VPMU init message look less scary
        xen: rename xen_pmu_init() in sys-hypervisor.c
        hotplug: Prevent alloc/free of irq descriptors during cpu up/down (again)
        xen/x86: Move irq allocation from Xen smp_op.cpu_up()
      541efb76
    • L
      Merge tag 'kvm-4.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 6218590b
      Linus Torvalds 提交于
      Pull KVM updates from Radim Krčmář:
       "All architectures:
         - move `make kvmconfig` stubs from x86
         - use 64 bits for debugfs stats
      
        ARM:
         - Important fixes for not using an in-kernel irqchip
         - handle SError exceptions and present them to guests if appropriate
         - proxying of GICV access at EL2 if guest mappings are unsafe
         - GICv3 on AArch32 on ARMv8
         - preparations for GICv3 save/restore, including ABI docs
         - cleanups and a bit of optimizations
      
        MIPS:
         - A couple of fixes in preparation for supporting MIPS EVA host
           kernels
         - MIPS SMP host & TLB invalidation fixes
      
        PPC:
         - Fix the bug which caused guests to falsely report lockups
         - other minor fixes
         - a small optimization
      
        s390:
         - Lazy enablement of runtime instrumentation
         - up to 255 CPUs for nested guests
         - rework of machine check deliver
         - cleanups and fixes
      
        x86:
         - IOMMU part of AMD's AVIC for vmexit-less interrupt delivery
         - Hyper-V TSC page
         - per-vcpu tsc_offset in debugfs
         - accelerated INS/OUTS in nVMX
         - cleanups and fixes"
      
      * tag 'kvm-4.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (140 commits)
        KVM: MIPS: Drop dubious EntryHi optimisation
        KVM: MIPS: Invalidate TLB by regenerating ASIDs
        KVM: MIPS: Split kernel/user ASID regeneration
        KVM: MIPS: Drop other CPU ASIDs on guest MMU changes
        KVM: arm/arm64: vgic: Don't flush/sync without a working vgic
        KVM: arm64: Require in-kernel irqchip for PMU support
        KVM: PPC: Book3s PR: Allow access to unprivileged MMCR2 register
        KVM: PPC: Book3S PR: Support 64kB page size on POWER8E and POWER8NVL
        KVM: PPC: Book3S: Remove duplicate setting of the B field in tlbie
        KVM: PPC: BookE: Fix a sanity check
        KVM: PPC: Book3S HV: Take out virtual core piggybacking code
        KVM: PPC: Book3S: Treat VTB as a per-subcore register, not per-thread
        ARM: gic-v3: Work around definition of gic_write_bpr1
        KVM: nVMX: Fix the NMI IDT-vectoring handling
        KVM: VMX: Enable MSR-BASED TPR shadow even if APICv is inactive
        KVM: nVMX: Fix reload apic access page warning
        kvmconfig: add virtio-gpu to config fragment
        config: move x86 kvm_guest.config to a common location
        arm64: KVM: Remove duplicating init code for setting VMID
        ARM: KVM: Support vgic-v3
        ...
      6218590b
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 14986a34
      Linus Torvalds 提交于
      Pull namespace updates from Eric Biederman:
       "This set of changes is a number of smaller things that have been
        overlooked in other development cycles focused on more fundamental
        change. The devpts changes are small things that were a distraction
        until we managed to kill off DEVPTS_MULTPLE_INSTANCES. There is an
        trivial regression fix to autofs for the unprivileged mount changes
        that went in last cycle. A pair of ioctls has been added by Andrey
        Vagin making it is possible to discover the relationships between
        namespaces when referring to them through file descriptors.
      
        The big user visible change is starting to add simple resource limits
        to catch programs that misbehave. With namespaces in general and user
        namespaces in particular allowing users to use more kinds of
        resources, it has become important to have something to limit errant
        programs. Because the purpose of these limits is to catch errant
        programs the code needs to be inexpensive to use as it always on, and
        the default limits need to be high enough that well behaved programs
        on well behaved systems don't encounter them.
      
        To this end, after some review I have implemented per user per user
        namespace limits, and use them to limit the number of namespaces. The
        limits being per user mean that one user can not exhause the limits of
        another user. The limits being per user namespace allow contexts where
        the limit is 0 and security conscious folks can remove from their
        threat anlysis the code used to manage namespaces (as they have
        historically done as it root only). At the same time the limits being
        per user namespace allow other parts of the system to use namespaces.
      
        Namespaces are increasingly being used in application sand boxing
        scenarios so an all or nothing disable for the entire system for the
        security conscious folks makes increasing use of these sandboxes
        impossible.
      
        There is also added a limit on the maximum number of mounts present in
        a single mount namespace. It is nontrivial to guess what a reasonable
        system wide limit on the number of mount structure in the kernel would
        be, especially as it various based on how a system is using
        containers. A limit on the number of mounts in a mount namespace
        however is much easier to understand and set. In most cases in
        practice only about 1000 mounts are used. Given that some autofs
        scenarious have the potential to be 30,000 to 50,000 mounts I have set
        the default limit for the number of mounts at 100,000 which is well
        above every known set of users but low enough that the mount hash
        tables don't degrade unreaonsably.
      
        These limits are a start. I expect this estabilishes a pattern that
        other limits for resources that namespaces use will follow. There has
        been interest in making inotify event limits per user per user
        namespace as well as interest expressed in making details about what
        is going on in the kernel more visible"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (28 commits)
        autofs:  Fix automounts by using current_real_cred()->uid
        mnt: Add a per mount namespace limit on the number of mounts
        netns: move {inc,dec}_net_namespaces into #ifdef
        nsfs: Simplify __ns_get_path
        tools/testing: add a test to check nsfs ioctl-s
        nsfs: add ioctl to get a parent namespace
        nsfs: add ioctl to get an owning user namespace for ns file descriptor
        kernel: add a helper to get an owning user namespace for a namespace
        devpts: Change the owner of /dev/pts/ptmx to the mounter of /dev/pts
        devpts: Remove sync_filesystems
        devpts: Make devpts_kill_sb safe if fsi is NULL
        devpts: Simplify devpts_mount by using mount_nodev
        devpts: Move the creation of /dev/pts/ptmx into fill_super
        devpts: Move parse_mount_options into fill_super
        userns: When the per user per user namespace limit is reached return ENOSPC
        userns; Document per user per user namespace limits.
        mntns: Add a limit on the number of mount namespaces.
        netns: Add a limit on the number of net namespaces
        cgroupns: Add a limit on the number of cgroup namespaces
        ipcns: Add a  limit on the number of ipc namespaces
        ...
      14986a34
  2. 06 10月, 2016 30 次提交
    • L
      Merge tag 'xfs-for-linus-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 8d370595
      Linus Torvalds 提交于
      Pull xfs and iomap updates from Dave Chinner:
       "The main things in this update are the iomap-based DAX infrastructure,
        an XFS delalloc rework, and a chunk of fixes to how log recovery
        schedules writeback to prevent spurious corruption detections when
        recovery of certain items was not required.
      
        The other main chunk of code is some preparation for the upcoming
        reflink functionality. Most of it is generic and cleanups that stand
        alone, but they were ready and reviewed so are in this pull request.
      
        Speaking of reflink, I'm currently planning to send you another pull
        request next week containing all the new reflink functionality. I'm
        working through a similar process to the last cycle, where I sent the
        reverse mapping code in a separate request because of how large it
        was. The reflink code merge is even bigger than reverse mapping, so
        I'll be doing the same thing again....
      
        Summary for this update:
      
         - change of XFS mailing list to linux-xfs@vger.kernel.org
      
         - iomap-based DAX infrastructure w/ XFS and ext2 support
      
         - small iomap fixes and additions
      
         - more efficient XFS delayed allocation infrastructure based on iomap
      
         - a rework of log recovery writeback scheduling to ensure we don't
           fail recovery when trying to replay items that are already on disk
      
         - some preparation patches for upcoming reflink support
      
         - configurable error handling fixes and documentation
      
         - aio access time update race fixes for XFS and
           generic_file_read_iter"
      
      * tag 'xfs-for-linus-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (40 commits)
        fs: update atime before I/O in generic_file_read_iter
        xfs: update atime before I/O in xfs_file_dio_aio_read
        ext2: fix possible integer truncation in ext2_iomap_begin
        xfs: log recovery tracepoints to track current lsn and buffer submission
        xfs: update metadata LSN in buffers during log recovery
        xfs: don't warn on buffers not being recovered due to LSN
        xfs: pass current lsn to log recovery buffer validation
        xfs: rework log recovery to submit buffers on LSN boundaries
        xfs: quiesce the filesystem after recovery on readonly mount
        xfs: remote attribute blocks aren't really userdata
        ext2: use iomap to implement DAX
        ext2: stop passing buffer_head to ext2_get_blocks
        xfs: use iomap to implement DAX
        xfs: refactor xfs_setfilesize
        xfs: take the ilock shared if possible in xfs_file_iomap_begin
        xfs: fix locking for DAX writes
        dax: provide an iomap based fault handler
        dax: provide an iomap based dax read/write path
        dax: don't pass buffer_head to copy_user_dax
        dax: don't pass buffer_head to dax_insert_mapping
        ...
      8d370595
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · d230ec72
      Linus Torvalds 提交于
      Pull networking fixups from David Miller:
       "Here are the build and merge fixups for the networking stuff"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        phy: micrel.c: Enable ksz9031 energy-detect power-down mode
        netfilter: merge fixup for "nf_tables_netdev: remove redundant ip_hdr assignment"
        netfilter: nft_limit: fix divided by zero panic
        netfilter: fix namespace handling in nf_log_proc_dostring
        netfilter: xt_hashlimit: Fix link error in 32bit arch because of 64bit division
        netfilter: accommodate different kconfig in nf_set_hooks_head
        netfilter: Fix potential null pointer dereference
      d230ec72
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · f84d9fa8
      Linus Torvalds 提交于
      Pull sparc updates from David Miller:
       "Besides some cleanups the major thing here is supporting relaxed
        ordering PCIe transactions on newer sparc64 machines, from Chris
        Hyser"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: fixing ident and beautifying code
        sparc64: Enable setting "relaxed ordering" in IOMMU mappings
        sparc64: Enable PCI IOMMU version 2 API
        sparc: migrate exception table users off module.h and onto extable.h
      f84d9fa8
    • L
      Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 82fa407d
      Linus Torvalds 提交于
      Pull ARM updates from Russell King:
      
       - Correct ARMs dma-mapping to use the correct printk format strings.
      
       - Avoid defining OBJCOPYFLAGS globally which upsets lkdtm rodata
         testing.
      
       - Cleanups to ARMs asm/memory.h include.
      
       - L2 cache cleanups.
      
       - Allow flat nommu binaries to be executed on ARM MMU systems.
      
       - Kernel hardening - add more read-only after init annotations,
         including making some kernel vdso variables const.
      
       - Ensure AMBA primecell clocks are appropriately defaulted.
      
       - ARM breakpoint cleanup.
      
       - Various StrongARM 11x0 and companion chip (SA1111) updates to bring
         this legacy platform to use more modern APIs for (eg) GPIOs and
         interrupts, which will allow us in the future to reduce some of the
         board-level driver clutter and elimate function callbacks into board
         code via platform data. There still appears to be interest in these
         platforms!
      
       - Remove the now redundant secure_flush_area() API.
      
       - Module PLT relocation optimisations. Ard says: This series of 4
         patches optimizes the ARM PLT generation code that is invoked at
         module load time, to get rid of the O(n^2) algorithm that results in
         pathological load times of 10 seconds or more for large modules on
         certain STB platforms.
      
       - ARMv7M cache maintanence support.
      
       - L2 cache PMU support
      
      * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (35 commits)
        ARM: sa1111: provide to_sa1111_device() macro
        ARM: sa1111: add sa1111_get_irq()
        ARM: sa1111: clean up duplication in IRQ chip implementation
        ARM: sa1111: implement a gpio_chip for SA1111 GPIOs
        ARM: sa1111: move irq cleanup to separate function
        ARM: sa1111: use devm_clk_get()
        ARM: sa1111: use devm_kzalloc()
        ARM: sa1111: ensure we only touch RAB bus type devices when removing
        ARM: 8611/1: l2x0: add PMU support
        ARM: 8610/1: V7M: Add dsb before jumping in handler mode
        ARM: 8609/1: V7M: Add support for the Cortex-M7 processor
        ARM: 8608/1: V7M: Indirect proc_info construction for V7M CPUs
        ARM: 8607/1: V7M: Wire up caches for V7M processors with cache support.
        ARM: 8606/1: V7M: introduce cache operations
        ARM: 8605/1: V7M: fix notrace variant of save_and_disable_irqs
        ARM: 8604/1: V7M: Add support for reading the CTR with read_cpuid_cachetype()
        ARM: 8603/1: V7M: Add addresses for mem-mapped V7M cache operations
        ARM: 8602/1: factor out CSSELR/CCSIDR operations that use cp15 directly
        ARM: kernel: avoid brute force search on PLT generation
        ARM: kernel: sort relocation sections before allocating PLTs
        ...
      82fa407d
    • L
      Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm · c7f5d36a
      Linus Torvalds 提交于
      Pull ARM fix from Russell King:
       "A 5% error in delay calculation was introduced during the last merge
        window, which had gone un-noticed until yesterday"
      
      * 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: fix delays
      c7f5d36a
    • B
      xen/x86: Update topology map for PV VCPUs · a6a198bc
      Boris Ostrovsky 提交于
      Early during boot topology_update_package_map() computes
      logical_pkg_ids for all present processors.
      
      Later, when processors are brought up, identify_cpu() updates
      these values based on phys_pkg_id which is a function of
      initial_apicid. On PV guests the latter may point to a
      non-existing node, causing logical_pkg_ids to be set to -1.
      
      Intel's RAPL uses logical_pkg_id (as topology_logical_package_id())
      to index its arrays and therefore in this case will point to index
      65535 (since logical_pkg_id is a u16). This could lead to either a
      crash or may actually access random memory location.
      
      As a workaround, we recompute topology during CPU bringup to reset
      logical_pkg_id to a valid value.
      
      (The reason for initial_apicid being bogus is because it is
      initial_apicid of the processor from which the guest is launched.
      This value is CPUID(1).EBX[31:24])
      Signed-off-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NDavid Vrabel <david.vrabel@citrix.com>
      a6a198bc
    • R
      Merge branch 'devel-stable' into for-linus · 81a63001
      Russell King 提交于
      81a63001
    • R
      Merge branches 'misc' and 'sa1111-base' into for-linus · 301a36fa
      Russell King 提交于
      301a36fa
    • R
      ARM: fix delays · fb833b1f
      Russell King 提交于
      Commit 215e362d ("ARM: 8306/1: loop_udelay: remove bogomips value
      limitation") tried to increase the bogomips limitation, but in doing
      so messed up udelay such that it always gives about a 5% error in the
      delay, even if we use a timer.
      
      The calculation is:
      
      	loops = UDELAY_MULT * us_delay * ticks_per_jiffy >> UDELAY_SHIFT
      
      Originally, UDELAY_MULT was ((UL(2199023) * HZ) >> 11) and UDELAY_SHIFT
      30.  Assuming HZ=100, us_delay of 1000 and ticks_per_jiffy of 1660000
      (eg, 166MHz timer, 1ms delay) this would calculate:
      
      	((UL(2199023) * HZ) >> 11) * 1000 * 1660000 >> 30
      		=> 165999
      
      With the new values of 2047 * HZ + 483648 * HZ / 1000000 and 31, we get:
      
      	(2047 * HZ + 483648 * HZ / 1000000) * 1000 * 1660000 >> 31
      		=> 158269
      
      which is incorrect.  This is due to a typo - correcting it gives:
      
      	(2147 * HZ + 483648 * HZ / 1000000) * 1000 * 1660000 >> 31
      		=> 165999
      
      i.o.w, the original value.
      
      Fixes: 215e362d ("ARM: 8306/1: loop_udelay: remove bogomips value limitation")
      Cc: <stable@vger.kernel.org>
      Reviewed-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      fb833b1f
    • N
      sparc: fixing ident and beautifying code · 98e98eb6
      netmonk@netmonk.org 提交于
      Good evening,
      
      Following LinuxCodingStyle documentation and with the help of Sam, fixed
      severals identation issues in the code, and few others cosmetic changes
      
      And last and i hope least fixing my name :)
      
      Signed-off-by : Dominique Carrel <netmonk@netmonk.org>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      98e98eb6
    • D
      Merge branch 'sparc-pcie-perf' · 27f145e7
      David S. Miller 提交于
      Chris Hyser says:
      
      ====================
      sparc64: PCIe performance enhancements
      
      Ver 2 is redone for 4.8 where commit 00085f1e
      changed DMA attributes from struct pointer to unsigned long.
      
      This set of patches initiates a series of PCIe performance enhancement patch
      submittals.
      
      Patch 1/2 enables version 2 of the SPARC sun4v IOMMU I/O address translation
      services need for subsequent enhancements.
      
      Patch 2/2 allows drivers to specify DMA_ATTR_WEAK_ORDERING via DMA attributes
      to the SPARC DMA mapping routines enabling "relaxed ordering" for the buffer
      being mapped.
      
      [Still relevant write-up]
      PCI-Express Relaxed Ordering and the Sun SPARC Enterprise M-class Servers
      https://blogs.oracle.com/olympus/entry/relaxed_ordering
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      27f145e7
    • C
      sparc64: Enable setting "relaxed ordering" in IOMMU mappings · aa7bde1a
      chris hyser 提交于
      Enable relaxed ordering for memory writes in IOMMU TSB entry from
      dma_4v_alloc_coherent(), dma_4v_map_page() and dma_4v_map_sg() when
      dma_attrs DMA_ATTR_WEAK_ORDERING is set. This requires PCI IOMMU I/O
      Translation Services version 2.0 API.
      
      Many PCIe devices allow enabling relaxed-ordering (memory writes bypassing
      other memory writes) for various DMA buffers. A notable exception is the
      Mellanox mlx4 IB adapter. Due to the nature of x86 HW this appears to have
      little performance impact there. On SPARC HW however, this results in major
      performance degradation getting only about 3Gbps. Enabling RO in the IOMMU
      entries corresponding to mlx4 data buffers increases the throughput to
      about 13 Gbps.
      
      Orabug: 19245907
      Signed-off-by: NChris Hyser <chris.hyser@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aa7bde1a
    • C
      sparc64: Enable PCI IOMMU version 2 API · 8914391b
      chris hyser 提交于
      Enable Version 2 of the PCI IOMMU API needed for advanced features
      such as PCI Relaxed Ordering and greater than 2 GB DMA address
      space per root complex.
      Signed-off-by: NChris Hyser <chris.hyser@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8914391b
    • P
      sparc: migrate exception table users off module.h and onto extable.h · cdd4f4c7
      Paul Gortmaker 提交于
      These files were only including module.h for exception table
      related functions.  We've now separated that content out into its
      own file "extable.h" so now move over to that and avoid all the
      extra header content in module.h that we don't really need to compile
      these files.
      
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: sparclinux@vger.kernel.org
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cdd4f4c7
    • M
      phy: micrel.c: Enable ksz9031 energy-detect power-down mode · af70c1f9
      Mike Looijmans 提交于
      Set bit 0 in register 1C.23 to enable the EDPD feature of the
      KSZ9031 PHY. This reduces power consumption when the link is
      down.
      Signed-off-by: NMike Looijmans <mike.looijmans@topic.nl>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Reviewed-by: Florian Fainelli <f.fainelli@gmail.com
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      af70c1f9
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · a6930aae
      Linus Torvalds 提交于
      Pull m68knommu updates from Greg Ungerer:
       "The bulk of the changes here are to clean up the ColdFire 5441x SoC
        support so that it can run with MMU enabled. We have only supported it
        with MMU disabled up to now.
      
        There is also a few individual bug fixes across the ColdFire support
        code"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: let clk_disable() return immediately if clk is NULL
        m68knommu: convert printk(KERN_INFO) to pr_info()
        m68knommu: clean up uClinux boot log output
        m68k: generalize uboot command line support
        m68k: don't panic if no hardware FPU defined
        m68k: only generate FPU instructions if CONFIG_FPU enabled
        m68k: always make available dump_fpu()
        m68k: generalize io memory region setup for ColdFire ACR registers
        m68k: move ColdFire _bootmem_alloc code
        m68k: report correct FPU type on ColdFire MMU platforms
        m68k: set appropriate machine type for m5411x SoC platforms
        m68k: move CONFIG_FPU set to per-CPU configuration
        m68knommu: fix IO write size in nettel pin set
        m68knommu: switch to using IO access methods in WildFire board code
        m68knommu: fix early setup to not access variables
      a6930aae
    • L
      Merge tag 'xtensa-20161005' of git://github.com/jcmvbkbc/linux-xtensa · d8ea757b
      Linus Torvalds 提交于
      Pull Xtensa updates from Max Filippov:
       "Updates for the xtensa architecture.  It is a combined set of patches
        for 4.8 that never got to the mainline and new patches for 4.9.
      
         - add new kernel memory layouts for MMUv3 cores: with 256MB and 512MB
           KSEG size, starting at physical address other than 0
      
         - make kernel load address configurable
      
         - clean up kernel memory layout macros
      
         - drop sysmem early allocator and switch to memblock
      
         - enable kmemleak and memory reservation from the device tree
      
         - wire up new syscalls: userfaultfd, membarrier, mlock2,
           copy_file_range, preadv2 and pwritev2
      
         - add new platform: Cadence Configurable System Platform (CSP) and
           new core variant for it: xt_lnx
      
         - rearrange CCOUNT calibration code, make most of it generic
      
         - improve machine reset code (XTFPGA now reboots reliably with MMUv3
           cores)
      
         - provide default memmap command line option for configurations
           without device tree support
      
         - ISS fixes: simdisk is now capable of using highmem pages, panic
           correctly terminates simulator"
      
      * tag 'xtensa-20161005' of git://github.com/jcmvbkbc/linux-xtensa: (24 commits)
        xtensa: disable MMU initialization option on MMUv2 cores
        xtensa: add default memmap and mmio32native options to defconfigs
        xtensa: add default memmap option to common_defconfig
        xtensa: add default memmap option to iss_defconfig
        xtensa: ISS: allow simdisk to use high memory buffers
        xtensa: ISS: define simc_exit and use it instead of inline asm
        xtensa: xtfpga: group platform_* functions together
        xtensa: rearrange CCOUNT calibration
        xtensa: xtfpga: use clock provider, don't update DT
        xtensa: Tweak xuartps UART driver Rx watermark for Cadence CSP config.
        xtensa: initialize MMU before jumping to reset vector
        xtensa: fix icountlevel setting in cpu_reset
        xtensa: extract common CPU reset code into separate function
        xtensa: Added Cadence CSP kernel configuration for Xtensa
        xtensa: fix default kernel load address
        xtensa: wire up new syscalls
        xtensa: support reserved-memory DT node
        xtensa: drop sysmem and switch to memblock
        xtensa: minimize use of PLATFORM_DEFAULT_MEM_{ADDR,SIZE}
        xtensa: cleanup MMU setup and kernel layout macros
        ...
      d8ea757b
    • S
    • D
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · 5bfb88a1
      David S. Miller 提交于
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net-next
      
      This is a pull request to address fallout from previous nf-next pull
      request, only fixes going on here:
      
      1) Address a potential null dereference in nf_unregister_net_hook()
         when becomes nf_hook_entry_head is NULL, from Aaron Conole.
      
      2) Missing ifdef for CONFIG_NETFILTER_INGRESS, also from Aaron.
      
      3) Fix linking problems in xt_hashlimit in x86_32, from Pai.
      
      4) Fix permissions of nf_log sysctl from unpriviledge netns, from
         Jann Horn.
      
      5) Fix possible divide by zero in nft_limit, from Liping Zhang.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5bfb88a1
    • L
      Merge tag 'staging-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 41844e36
      Linus Torvalds 提交于
      Pull staging and IIO updates from Greg KH:
       "Here is the big staging and IIO driver pull request for 4.9-rc1.
      
        There are a lot of patches in here, the majority due to the
        drivers/staging/greybus/ subsystem being merged in with full
        development history that went back a few years, in order to preserve
        the work that those developers did over time.
      
        Lots and lots of tiny cleanups happened in the tree as well, due to
        the Outreachy application process and lots of other developers showing
        up for the first time to clean code up.  Along with those changes, we
        deleted a wireless driver, and added a raspberrypi driver (currently
        marked broken), and lots of new iio drivers.
      
        Overall the tree still shrunk with more lines removed than added,
        about 10 thousand lines removed in total. Full details are in the very
        long shortlog below.
      
        All of this has been in the linux-next tree with no issues. There will
        be some merge problems with other subsystem trees, but those are all
        minor problems and shouldn't be hard to work out when they happen
        (MAINTAINERS and some lustre build problems with the IB tree)"
      
      And furter from me asking for clarification about greybus:
       "Right now there is a phone from Motorola shipping with this code (a
        slightly older version, but the same tree), so even though Ara is not
        alive in the same form, the functionality is happening. We are working
        with the developers of that phone to merge the newer stuff in with
        their fork so they can use the upstream version in future versions of
        their phone product line.
      
        Toshiba has at least one chip shipping in their catalog that
        needs/uses this protocol over a Unipro link, and rumor has it that
        there might be more in the future.
      
        There are also other users of the greybus protocols, there is a talk
        next week at ELC that shows how it is being used across a network
        connection to control a device, and previous ELC talks have showed the
        protocol stack being used over USB to drive embedded Linux boards.
        I've also talked to some people who are starting to work to add a host
        controller driver to control arduinos as the greybus PHY protocols are
        very useful to control a serial/i2c/spio/whatever device across a
        random physical link, as it is a way to have a self-describing device
        be attached to a host without needing manual configuration.
      
        So yes, people are using it, and there is still the chance that it
        will show up in a phone/laptop/tablet/whatever from Google in the
        future as well, the tech isn't dead, even if the original large phone
        project happens to be"
      
      * tag 'staging-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (3703 commits)
        Staging: fbtft: Fix bug in fbtft-core
        staging: rtl8188eu: fix double unlock error in rtw_resume_process()
        staging:r8188eu: remove GEN_MLME_EXT_HANDLER macro
        staging:r8188eu: remove GEN_DRV_CMD_HANDLER macro
        staging:r8188eu: remove GEN_EVT_CODE macro
        staging:r8188eu: remove GEN_CMD_CODE macro
        staging:r8188eu: remove pkt_newalloc member of the recv_buf structure
        staging:r8188eu: remove rtw_handle_dualmac declaration
        staging:r8188eu: remove (RGTRY|BSSID)_(OFT|SZ) macros
        staging:r8188eu: change rtl8188e_process_phy_info function argument type
        Staging: fsl-mc: Remove blank lines
        Staging: fsl-mc: Fix unaligned * in block comments
        Staging: comedi: Align the * in block comments
        Staging : ks7010 : Fix block comments warninig
        Staging: vt6655: Remove explicit NULL comparison using Coccinelle
        staging: rtl8188eu: core: rtw_xmit: Use macros instead of constants
        staging: rtl8188eu: core: rtw_xmit: Move constant of the right side
        staging: dgnc: Fix lines longer than 80 characters
        Staging: dgnc: constify attribute_group structures
        Staging: most: hdm-dim2: constify attribute_group structures
        ...
      41844e36
    • L
      Merge tag 'sound-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 5691f0e9
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "Again the diffstat shows a widely distributed pattern at this cycle,
        as there've been many code cleanups and refactoring allover the
        places. Other than that, the development was relatively calm, and no
        big surprise shouldn't be expected. Here are some highlights:
      
        Core:
         - Sequencer code refactoring / documentation updates
         - TLV code moved to uapi, following some relevant cleanups
      
        USB-Audio:
         - Lots of LINE6 driver fixes / updates
         - DragonFly and TEAC device quirk updates
      
        HD-audio:
         - Usual fixupes for Dell, Lenovo and HP machines
         - Link-audio time reporting capability
      
        ASoC:
         - Large refactoring of simple-card code to be shared with rcar driver
         - Removal of some duplicated ops over lots of CODEC drivers
         - Again quite a few Intel SKL driver updates
         - New drivers for Nuvoton NAU88C10, Realtek RT5660 and RT5663"
      
      * tag 'sound-4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (465 commits)
        ASoC: fsl: Fix lockups with recent cache changes
        ASoC: Intel: Skylake: fix memory leak of module on error exit path
        ASoC: rsnd: add SNDRV_PCM_TRIGGER_SUSPEND/RESUME
        ASoC: wm8960: remove usage of obsoleted TLV-related macro
        ASoC: rt5616: remove usage of obsoleted TLV-related macro
        ASoC: max9867: remove usage of obsoleted TLV-related macro
        ASoC: trivial: system spelling fix
        ASoC: da7219: fix inappropriate condition statement
        ASoC: tlv320aic31xx: do not declare support for mono DAI
        ASoC: stac9766: fix wrong usage of DECLARE_TLV_DB_LINEAR()
        ASoC: wm8991: remove unused variable
        ASoC: wm8991: fix wrong usage of DECLARE_TLV_DB_LINEAR()
        ASOC: tpa6130a2: add static qualifier for file local symbols
        ASoC: sst-bxt-rt298: fix obsoleted initializers for array
        ASoC: sst-bxt-da7219_max98357a: fix obsoleted initializers for array
        ASoC: rt5616: add static qualifier for file local symbols
        ASoC: arizona: Add output power up/down delays for speaker path
        ASoC: arizona: Add debug prints for output power up/down times
        ALSA: hda - Add the top speaker pin config for HP Spectre x360
        ASoC: Intel: Add DMIC channel constraint for bxt machine
        ...
      5691f0e9
    • L
      Merge tag 'devicetree-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 878fb5dc
      Linus Torvalds 提交于
      Pull DeviceTree updates from Rob Herring:
      
       - update changeset documentation on locking to reflect current code
      
       - fix alphabetizing of vendor-prefixes.txt
      
       - add various vendor prefixes
      
       - add ESP8089 WiFi binding
      
       - add new variable sized array parsing functions
      
      * tag 'devicetree-for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (21 commits)
        DT: irqchip: renesas-irqc: document R8A7743/5 support
        dt-bindings: Add Keith&Koep vendor prefix
        dt-bindings: add vendor prefix for Auvidea GmbH
        of: Add vendor prefix for Engicam s.r.l company
        devicetree: Add vendor-prefix for Silead Inc.
        devicetree: bindings: Add vendor prefix for Topeet.
        dt-bindings: Add summit vendor id
        of/platform: Initialise dev->fwnode appropriately
        of: Add array read functions with min/max size limits
        of: Make of_find_property_value_of_size take a length range
        dt: net: enhance DWC EQoS binding to support Tegra186
        bindings: PCI: artpec: correct pci binding example
        Documentation: devicetree: Fix max77693 spelling errors
        dt: bindings: Add binding for ESP8089 wifi chips
        PCI: Xilinx NWL PCIe: Updating device tree documentation with prefetchable memory space
        Documentation: devicetree: spi: fix wrong spi-bus documentation
        dt-bindings: Add Japan Display Inc vendor id
        dt-bindings: vendor-prefixes: Add Sierra Wireless
        devicetree: Add vendor prefix for Shenzhen Sunchip Technology Co., Ltd
        devicetree: Sort vendor prefixes in alphabetical order
        ...
      878fb5dc
    • L
      Merge tag 'gpio-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 6a497e9d
      Linus Torvalds 提交于
      Pull GPIO updates from Linus Walleij:
       "This is the bulk of GPIO changes for the v4.9 series:
      
        Subsystem improvements:
      
         - do away with the last users of the obsolete Kconfig options
           ARCH_REQUIRE_GPIOLIB and ARCH_WANT_OPTIONAL_GPIOLIB (the latter
           always sounded like an item on a wishlist to Santa Claus to me). We
           can now select GPIOLIB and be done with it, for all archs. After
           some struggle it even work on UM. Not that it has GPIO, but if it
           wants to, it can select the library.
      
         - continued efforts to make drivers properly either tristate or bool.
      
         - introduce a warning for drivers assigning default triggers to their
           irqchip lines when probed from device tree, so we find and fix
           these ambigous drivers. It is agreed that in the OF config path,
           the device tree defines trigger characteristics.
      
         - the same warning, mutatis mutandis, for ACPI-probed GPIO irqchips.
      
         - we introduce the ability to mark certain IRQ lines as "unusable" as
           they can be taken by BIOS/firmware, unrouted in silicon and
           generally nasty if you use them, and such things. This is put to
           good use in the STMPE driver and also in the Cherryview pin control
           driver.
      
         - a new "mockup" virtual GPIO device that can be used for testing.
           The plan is to add unit tests under tools/* for exercising this
           device and verify that the kernel code paths are working as they
           should.
      
         - make memory-mapped I/O-drivers depend on HAS_IOMEM. This was
           implicit all the time, but when people started building UM with
           allyesconfig or allmodconfig it exploded in their face.
      
         - move some stray bits of device tree and ACPI HW description
           callbacks down into their respective implementation silo. These
           were causing issues when compiling on !HAS_IOMEM as well, so now
           eventually UM compiles the GPIOLIB library if it wants to.
      
        New drivers:
      
         - new driver for the Aspeed GPIO front-end companion to the pin
           controller merged through the pin control tree.
      
         - new driver for the LP873x PMIC GPIO portions.
      
         - new driver for Technologic Systems' I2C FPGA GPIO such as TS4900,
           TS-7970, TS-7990 and TS-4100.
      
         - new driver for the Broadcom BCM63xx series including BCM6338 and
           BCM6345.
      
         - new driver for the Intel WhiskeyCove PMIC GPIO.
      
         - new driver for the Allwinner AXP209 PMIC GPIO portions.
      
         - new driver for Diamond Systems 48 line GPIO-MM, another of these
           port-mapped I/O expansion cards.
      
         - support the STMicroelectronics STMPE1600 variant in the STMPE
           driver.
      
        Driver improvements:
      
         - the STMPE driver now supports rising/falling edge detection
           properly for IRQs.
      
         - the PCA954x will now fetch and enable its VCC regulator properly.
      
         - major rework of the PCA953x driver with the goal of eventually
           switching it over to use regmap and thus modernize it even more.
      
         - switch the IOP driver to use the generic MMIO GPIO library.
      
         - move the ages old HTC EGPIO (extended GPIO) GPIO expander driver
           over to this subsystem from MFD, achieveing some separation of
           concerns"
      
      * tag 'gpio-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (81 commits)
        gpio: add missing static inline
        gpio: OF: localize some gpiochip init functions
        gpio: acpi: separation of concerns
        gpio: OF: separation of concerns
        gpio: make memory-mapped drivers depend on HAS_IOMEM
        gpio: stmpe: use BIT() macro
        gpio: stmpe: forbid unused lines to be mapped as IRQs
        mfd/gpio: Move HTC GPIO driver to GPIO subsystem
        gpio: MAINTAINERS: Add an entry for GPIO mockup driver
        gpio/mockup: add virtual gpio device
        gpio: Added zynq specific check for special pins on bank zero
        gpio: axp209: Implement get_direction
        gpio: aspeed: remove redundant return value check
        gpio: loongson1: remove redundant return value check
        ARM: omap2: fix missing include
        gpio: tc3589x: fix up complaints on unsigned
        gpio: tc3589x: add .get_direction() and small cleanup
        gpio: f7188x: use gpiochip_get_data instead of container_of
        gpio: tps65218: use devm_gpiochip_add_data() for gpio registration
        gpio: aspeed: fix return value check in aspeed_gpio_probe()
        ...
      6a497e9d
    • L
      Merge tag 'pinctrl-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · d268dbe7
      Linus Torvalds 提交于
      Pull pin control updates from Linus Walleij:
       "This is the bulk of pin control changes for the v4.9 cycle.
      
        General improvements:
      
         - nicer debugfs output with one pin/config pair per line.
      
         - continued efforts to strictify module vs bool.
      
         - constification and similar from Coccinelle engineers.
      
         - return error from pinctrl_bind_pins()
      
         - pulling in the ability to selectively disable mapping of unusable
           IRQs from the GPIO subsystem.
      
        New drivers:
      
         - new driver for the Aspeed pin controller family: AST2400 (G4) and
           AST2500 (G5) are supported. These are used by OpenBMC on the IBM
           Witherspoon platform.
      
         - new subdriver for the Allwinner sunxi GR8.
      
        Driver improvements:
      
         - drop default IRQ trigger types assigned during IRQ mapping on AT91
           and Nomadik. This error was identified by improvements in the IRQ
           core by Marc Zyngier.
      
         - active high/low types on the GPIO IRQs for the ST pin controller.
      
         - IRQ support on GPIOs on the STM32 pin controller.
      
         - Renesas Super-H/ARM sh-pfc: continued massive developments.
      
         - misc MXC improvements.
      
         - SPDIF on the Allwiner A31 SoC
      
         - IR remote and SPI NOR flash, NAND flash, I2C pins on the AMLogic
           SoC.
      
         - PWM pins on the Meson.
      
         - do not map unusable IRQs (taken by BIOS) on the Intel Cherryview.
      
         - add GPIO IRQ wakeup support to the Intel driver so we can wake up
           from button pushes.
      
        Deprecation:
      
         - delete the obsolete STiH415/6 SoC support"
      
      * tag 'pinctrl-v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (75 commits)
        pinctrl: qcom: fix masking of pinmux functions
        pinctrl: intel: Configure GPIO chip IRQ as wakeup interrupts
        pinctrl: cherryview: Convert to use devm_gpiochip_add_data()
        pinctrl: cherryview: Do not add all southwest and north GPIOs to IRQ domain
        gpiolib: Make it possible to exclude GPIOs from IRQ domain
        pinctrl: nomadik: don't default-flag IRQs as falling
        pinctrl: st: Remove obsolete platforms from pinctrl-st dt doc
        pinctrl: st: Remove STiH415/6 SoC pinctrl driver support.
        pinctrl: amlogic: gxbb: add i2c pins
        pinctrl: amlogic: gxbb: add nand pins
        pinctrl: stm32: add IRQ_DOMAIN_HIERARCHY dependency
        pinctrl: amlogic: gxbb: add spi nor pins
        pinctrl: sh-pfc: r8a7794: Implement voltage switching for SDHI
        pinctrl: sh-pfc: r8a7791: Implement voltage switching for SDHI
        pinctrl: sh-pfc: Add PORT_GP_24 helper macro
        pinctrl: Fix "st,syscfg" definition for STM32 pinctrl
        driver: base: pinctrl: return error from pinctrl_bind_pins()
        pinctrl: meson-gxbb: add the missing SDIO interrupt pin
        pinctrl: aspeed: fix regmap error handling
        pinctrl: mediatek: constify gpio_chip structures
        ...
      d268dbe7
    • L
      Merge tag 'mmc-v4.9' of git://git.linaro.org/people/ulf.hansson/mmc · 64cbd16a
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
      
        MMC core:
         - Add support for sending commands during data transfer
         - Erase/discard/trim improvements
         - Improved error handling
         - Extend sysfs with SD status register
         - Document info about the vmmc/vmmcq regulators
         - Extend pwrseq-simple to manage an optional post-power-on-delay
         - Some various minor improvements and cleanups
      
        MMC host:
         - dw_mmc: Add reset support
         - dw_mmc: Return -EILSEQ for EBE and SBE error
         - dw_mmc: Some cleanups
         - dw_mmc-k3: Add UHS-I support Hisilicon Hikey
         - tmio: Add eMMC support
         - sh_mobile_sdhi: Add r8a7796 support
         - sunxi: Don't use sample clocks for sun4i/sun5i
         - sunxi: Add support for A64 mmc controller
         - sunxi: Some cleanups and improvements
         - sdhci: Support for sending commands during data transfer
         - sdhci: Do not allow tuning procedure to be interrupted
         - sdhci-pci: Enable SD/SDIO on Merrifield
         - sdhci-pci|acpi: Enable MMC_CAP_CMD_DURING_TFR
         - sdhci-pci: Some cleanups
         - sdhci-of-arasan: Set controller to test mode when no CD bit
         - sdhci-of-arasan: Some fixes for clocks and phys
         - sdhci-brcmstb: Don't use ADMA 64-bit when not supported
         - sdhci-tegra: Mark 64-bit DMA broken on Tegra124
         - sdhci-esdhc-imx: Fixups related to data timeouts
      
      * tag 'mmc-v4.9' of git://git.linaro.org/people/ulf.hansson/mmc: (68 commits)
        mmc: dw_mmc: remove the deprecated "supports-highspeed" property
        mmc: dw_mmc: minor cleanup for dw_mci_adjust_fifoth
        mmc: dw_mmc: use macro to define ring buffer size
        mmc: dw_mmc: fix misleading error print if failing to do DMA transfer
        mmc: dw_mmc: avoid race condition of cpu and IDMAC
        mmc: dw_mmc: split out preparation of desc for IDMAC32 and IDMAC64
        mmc: core: don't try to switch block size for dual rate mode
        mmc: sdhci-of-arasan: Set controller to test mode when no CD bit
        dt: sdhci-of-arasan: Add device tree option xlnx, fails-without-test-cd
        mmc: tmio: add eMMC support
        mmc: rtsx_usb: use new macro for R1 without CRC
        mmc: rtsx_pci: use new macro for R1 without CRC
        mmc: add define for R1 response without CRC
        mmc: card: do away with indirection pointer
        mmc: sdhci-acpi: Set MMC_CAP_CMD_DURING_TFR for Intel eMMC controllers
        mmc: sdhci-pci: Set MMC_CAP_CMD_DURING_TFR for Intel eMMC controllers
        mmc: sdhci: Support cap_cmd_during_tfr requests
        mmc: mmc_test: Add tests for sending commands during transfer
        mmc: core: Add support for sending commands during data transfer
        mmc: sdhci-brcmstb: Fix incorrect capability
        ...
      64cbd16a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · edadd0e5
      Linus Torvalds 提交于
      Pull fuse updates from Miklos Szeredi:
       "This adds POSIX ACL permission checking to the fuse kernel module.
      
        In addition there are minor bug fixes as well as cleanups"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: limit xattr returned size
        fuse: remove duplicate cs->offset assignment
        fuse: don't use fuse_ioctl_copy_user() helper
        fuse_ioctl_copy_user(): don't open-code copy_page_{to,from}_iter()
        fuse: get rid of fc->flags
        fuse: use timespec64
        fuse: don't use ->d_time
        fuse: Add posix ACL support
        fuse: handle killpriv in userspace fs
        fuse: fix killing s[ug]id in setattr
        fuse: invalidate dir dentry after chmod
        fuse: Use generic xattr ops
        fuse: listxattr: verify xattr list
      edadd0e5
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 3fb75cb8
      Linus Torvalds 提交于
      Pull misc filesystem and quota fixes from Jan Kara:
       "Some smaller udf, ext2, quota & reiserfs fixes"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: Unmap metadata when zeroing blocks
        udf: don't bother with full-page write optimisations in adinicb case
        reiserfs: Unlock superblock before calling reiserfs_quota_on_mount()
        udf: Remove useless check in udf_adinicb_write_begin()
        quota: fill in Q_XGETQSTAT inode information for inactive quotas
        ext2: Check return value from ext2_get_group_desc()
      3fb75cb8
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next · 687ee0ad
      Linus Torvalds 提交于
      Pull networking updates from David Miller:
      
       1) BBR TCP congestion control, from Neal Cardwell, Yuchung Cheng and
          co. at Google. https://lwn.net/Articles/701165/
      
       2) Do TCP Small Queues for retransmits, from Eric Dumazet.
      
       3) Support collect_md mode for all IPV4 and IPV6 tunnels, from Alexei
          Starovoitov.
      
       4) Allow cls_flower to classify packets in ip tunnels, from Amir Vadai.
      
       5) Support DSA tagging in older mv88e6xxx switches, from Andrew Lunn.
      
       6) Support GMAC protocol in iwlwifi mwm, from Ayala Beker.
      
       7) Support ndo_poll_controller in mlx5, from Calvin Owens.
      
       8) Move VRF processing to an output hook and allow l3mdev to be
          loopback, from David Ahern.
      
       9) Support SOCK_DESTROY for UDP sockets. Also from David Ahern.
      
      10) Congestion control in RXRPC, from David Howells.
      
      11) Support geneve RX offload in ixgbe, from Emil Tantilov.
      
      12) When hitting pressure for new incoming TCP data SKBs, perform a
          partial rathern than a full purge of the OFO queue (which could be
          huge). From Eric Dumazet.
      
      13) Convert XFRM state and policy lookups to RCU, from Florian Westphal.
      
      14) Support RX network flow classification to igb, from Gangfeng Huang.
      
      15) Hardware offloading of eBPF in nfp driver, from Jakub Kicinski.
      
      16) New skbmod packet action, from Jamal Hadi Salim.
      
      17) Remove some inefficiencies in snmp proc output, from Jia He.
      
      18) Add FIB notifications to properly propagate route changes to
          hardware which is doing forwarding offloading. From Jiri Pirko.
      
      19) New dsa driver for qca8xxx chips, from John Crispin.
      
      20) Implement RFC7559 ipv6 router solicitation backoff, from Maciej
          Żenczykowski.
      
      21) Add L3 mode to ipvlan, from Mahesh Bandewar.
      
      22) Support 802.1ad in mlx4, from Moshe Shemesh.
      
      23) Support hardware LRO in mediatek driver, from Nelson Chang.
      
      24) Add TC offloading to mlx5, from Or Gerlitz.
      
      25) Convert various drivers to ethtool ksettings interfaces, from
          Philippe Reynes.
      
      26) TX max rate limiting for cxgb4, from Rahul Lakkireddy.
      
      27) NAPI support for ath10k, from Rajkumar Manoharan.
      
      28) Support XDP in mlx5, from Rana Shahout and Saeed Mahameed.
      
      29) UDP replicast support in TIPC, from Richard Alpe.
      
      30) Per-queue statistics for qed driver, from Sudarsana Reddy Kalluru.
      
      31) Support BQL in thunderx driver, from Sunil Goutham.
      
      32) TSO support in alx driver, from Tobias Regnery.
      
      33) Add stream parser engine and use it in kcm.
      
      34) Support async DHCP replies in ipconfig module, from Uwe
          Kleine-König.
      
      35) DSA port fast aging for mv88e6xxx driver, from Vivien Didelot.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1715 commits)
        mlxsw: switchx2: Fix misuse of hard_header_len
        mlxsw: spectrum: Fix misuse of hard_header_len
        net/faraday: Stop NCSI device on shutdown
        net/ncsi: Introduce ncsi_stop_dev()
        net/ncsi: Rework the channel monitoring
        net/ncsi: Allow to extend NCSI request properties
        net/ncsi: Rework request index allocation
        net/ncsi: Don't probe on the reserved channel ID (0x1f)
        net/ncsi: Introduce NCSI_RESERVED_CHANNEL
        net/ncsi: Avoid unused-value build warning from ia64-linux-gcc
        net: Add netdev all_adj_list refcnt propagation to fix panic
        net: phy: Add Edge-rate driver for Microsemi PHYs.
        vmxnet3: Wake queue from reset work
        i40e: avoid NULL pointer dereference and recursive errors on early PCI error
        qed: Add RoCE ll2 & GSI support
        qed: Add support for memory registeration verbs
        qed: Add support for QP verbs
        qed: PD,PKEY and CQ verb support
        qed: Add support for RoCE hw init
        qede: Add qedr framework
        ...
      687ee0ad
    • J
      mm: filemap: fix mapping->nrpages double accounting in fuse · 3ddf40e8
      Johannes Weiner 提交于
      Commit 22f2ac51 ("mm: workingset: fix crash in shadow node shrinker
      caused by replace_page_cache_page()") switched replace_page_cache() from
      raw radix tree operations to page_cache_tree_insert() but didn't take
      into account that the latter function, unlike the raw radix tree op,
      handles mapping->nrpages.  As a result, that counter is bumped for each
      page replacement rather than balanced out even.
      
      The mapping->nrpages counter is used to skip needless radix tree walks
      when invalidating, truncating, syncing inodes without pages, as well as
      statistics for userspace.  Since the error is positive, we'll do more
      page cache tree walks than necessary; we won't miss a necessary one.
      And we'll report more buffer pages to userspace than there are.  The
      error is limited to fuse inodes.
      
      Fixes: 22f2ac51 ("mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()")
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Miklos Szeredi <miklos@szeredi.hu>
      Cc: stable@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3ddf40e8
    • J
      mm: filemap: don't plant shadow entries without radix tree node · d3798ae8
      Johannes Weiner 提交于
      When the underflow checks were added to workingset_node_shadow_dec(),
      they triggered immediately:
      
        kernel BUG at ./include/linux/swap.h:276!
        invalid opcode: 0000 [#1] SMP
        Modules linked in: isofs usb_storage fuse xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun nf_conntrack_netbios_ns nf_conntrack_broadcast ip6t_REJECT nf_reject_ipv6
         soundcore wmi acpi_als pinctrl_sunrisepoint kfifo_buf tpm_tis industrialio acpi_pad pinctrl_intel tpm_tis_core tpm nfsd auth_rpcgss nfs_acl lockd grace sunrpc dm_crypt
        CPU: 0 PID: 20929 Comm: blkid Not tainted 4.8.0-rc8-00087-gbe67d60b #1
        Hardware name: System manufacturer System Product Name/Z170-K, BIOS 1803 05/06/2016
        task: ffff8faa93ecd940 task.stack: ffff8faa7f478000
        RIP: page_cache_tree_insert+0xf1/0x100
        Call Trace:
          __add_to_page_cache_locked+0x12e/0x270
          add_to_page_cache_lru+0x4e/0xe0
          mpage_readpages+0x112/0x1d0
          blkdev_readpages+0x1d/0x20
          __do_page_cache_readahead+0x1ad/0x290
          force_page_cache_readahead+0xaa/0x100
          page_cache_sync_readahead+0x3f/0x50
          generic_file_read_iter+0x5af/0x740
          blkdev_read_iter+0x35/0x40
          __vfs_read+0xe1/0x130
          vfs_read+0x96/0x130
          SyS_read+0x55/0xc0
          entry_SYSCALL_64_fastpath+0x13/0x8f
        Code: 03 00 48 8b 5d d8 65 48 33 1c 25 28 00 00 00 44 89 e8 75 19 48 83 c4 18 5b 41 5c 41 5d 41 5e 5d c3 0f 0b 41 bd ef ff ff ff eb d7 <0f> 0b e8 88 68 ef ff 0f 1f 84 00
        RIP  page_cache_tree_insert+0xf1/0x100
      
      This is a long-standing bug in the way shadow entries are accounted in
      the radix tree nodes. The shrinker needs to know when radix tree nodes
      contain only shadow entries, no pages, so node->count is split in half
      to count shadows in the upper bits and pages in the lower bits.
      
      Unfortunately, the radix tree implementation doesn't know of this and
      assumes all entries are in node->count. When there is a shadow entry
      directly in root->rnode and the tree is later extended, the radix tree
      implementation will copy that entry into the new node and and bump its
      node->count, i.e. increases the page count bits. Once the shadow gets
      removed and we subtract from the upper counter, node->count underflows
      and triggers the warning. Afterwards, without node->count reaching 0
      again, the radix tree node is leaked.
      
      Limit shadow entries to when we have actual radix tree nodes and can
      count them properly. That means we lose the ability to detect refaults
      from files that had only the first page faulted in at eviction time.
      
      Fixes: 449dd698 ("mm: keep page cache radix tree nodes in check")
      Signed-off-by: NJohannes Weiner <hannes@cmpxchg.org>
      Reported-and-tested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d3798ae8