07 Oct, 2016

9 commits

  • Pull rpmsg updates from Bjorn Andersson:
    "The bulk of these patches involve splitting the rpmsg implementation
    into a framework/API part and a virtio specific backend part. It then
    adds the Qualcomm Shared Memory Device (SMD) as an additional
    supported wire format.

    Also included is a set of code style cleanups that have been lingering
    for a while"

    * tag 'rpmsg-v4.9' of git://github.com/andersson/remoteproc: (26 commits)
    rpmsg: smd: fix dependency on QCOM_SMD=n
    rpmsg: Introduce Qualcomm SMD backend
    rpmsg: Allow callback to return errors
    rpmsg: Move virtio specifics from public header
    rpmsg: virtio: Hide vrp pointer from the public API
    rpmsg: Hide rpmsg indirection tables
    rpmsg: Split rpmsg core and virtio backend
    rpmsg: Split off generic tail of create_channel()
    rpmsg: Move helper for finding rpmsg devices to core
    rpmsg: Move endpoint related interface to rpmsg core
    rpmsg: Indirection table for rpmsg_endpoint operations
    rpmsg: Move rpmsg_device API to new file
    rpmsg: Introduce indirection table for rpmsg_device operations
    rpmsg: Clean up rpmsg device vs channel naming
    rpmsg: Make rpmsg_create_ept() take channel_info struct
    rpmsg: rpmsg_send() operations takes rpmsg_endpoint
    rpmsg: Name rpmsg devices based on channel id
    rpmsg: Enable matching devices with drivers based on DT
    rpmsg: Drop prototypes for non-existing functions
    samples/rpmsg: add support for multiple instances
    ...

    Linus Torvalds
     
  • Pull remoteproc updates from Bjorn Andersson:
    "In addition to a slew of minor fixes and cleanups these patches
    refactor how we deal with remoteprocs that will be auto-booting
    themselves.

    That does clean up the remote resource handling but makes for
    additional work to clarify responsibilities and life cycles of
    resources. We also revise how module locking of remoteproc drivers
    work, so that they are locked as we hand out references to them to
    third parties, rather than only when booted by anyone.

    In addition to that we also introduce the Qualcomm Wireless Subsystem
    remoteproc driver"

    * tag 'rproc-v4.9' of git://github.com/andersson/remoteproc: (26 commits)
    remoteproc: Refactor rproc module locking
    remoteproc: Split driver and consumer dereferencing
    remoteproc: Correct resource handling upon boot failure
    remoteproc: Drop unnecessary NULL check
    remoteproc: core: transform struct fw_rsc_vdev_vring reserved field in pa
    remoteproc: Modify FW_RSC_ADDR_ANY definition
    remoteproc: qcom: wcnss: Fix return value check in wcnss_probe()
    remoteproc: qcom: Introduce WCNSS peripheral image loader
    dt-binding: remoteproc: Introduce Qualcomm WCNSS loader binding
    remoteproc: Only update table_ptr if we have a loaded table
    remoteproc: Move handling of cached table to boot/shutdown
    remoteproc: Move vdev handling to boot/shutdown
    remoteproc: Calculate max_notifyid during load
    remoteproc: Introduce auto-boot flag
    remoteproc/omap: revise a minor error trace message
    remoteproc/omap: fix various code formatting issues
    remoteproc: print hex numbers with a leading 0x format
    remoteproc: align code with open parenthesis
    remoteproc: fix bare unsigned type usage
    remoteproc: use variable names for sizeof() operator
    ...

    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
    ...

    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

    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

    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

    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()

    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
    ...

    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
    ...

    Linus Torvalds
     

06 Oct, 2016

30 commits

  • 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
    ...

    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

    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

    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
    ...

    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

    Linus Torvalds
     
  • 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: Boris Ostrovsky
    Cc: stable@vger.kernel.org
    Signed-off-by: David Vrabel

    Boris Ostrovsky
     
  • Russell King
     
  • Russell King
     
  • Commit 215e362dafed ("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: 215e362dafed ("ARM: 8306/1: loop_udelay: remove bogomips value limitation")
    Cc:
    Reviewed-by: Nicolas Pitre
    Signed-off-by: Russell King

    Russell King
     
  • 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
    Acked-by: Sam Ravnborg

    Signed-off-by: David S. Miller

    netmonk@netmonk.org
     
  • Chris Hyser says:

    ====================
    sparc64: PCIe performance enhancements

    Ver 2 is redone for 4.8 where commit 00085f1efa387a8ce100e3734920f7639c80caa3
    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: David S. Miller

    David S. Miller
     
  • 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: Chris Hyser
    Signed-off-by: David S. Miller

    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: Chris Hyser
    Signed-off-by: David S. Miller

    chris hyser
     
  • 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"
    Cc: sparclinux@vger.kernel.org
    Signed-off-by: Paul Gortmaker
    Signed-off-by: David S. Miller

    Paul Gortmaker
     
  • 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: Mike Looijmans
    Reviewed-by: Andrew Lunn
    Reviewed-by: Florian Fainelli

    Mike Looijmans
     
  • 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

    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
    ...

    Linus Torvalds
     
  • Signed-off-by: Stephen Rothwell
    Acked-by: Pablo Neira Ayuso
    Signed-off-by: David S. Miller

    Stephen Rothwell
     
  • 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: David S. Miller

    David S. Miller
     
  • 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
    ...

    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
    ...

    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
    ...

    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()
    ...

    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
    ...

    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
    ...

    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

    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()

    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
    ...

    Linus Torvalds
     
  • Commit 22f2ac51b6d6 ("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: 22f2ac51b6d6 ("mm: workingset: fix crash in shadow node shrinker caused by replace_page_cache_page()")
    Signed-off-by: Johannes Weiner
    Cc: Andrew Morton
    Cc: Miklos Szeredi
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    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-gbe67d60ba944 #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 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: 449dd6984d0e ("mm: keep page cache radix tree nodes in check")
    Signed-off-by: Johannes Weiner
    Reported-and-tested-by: Linus Torvalds
    Reviewed-by: Jan Kara
    Cc: Andrew Morton
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     

05 Oct, 2016

1 commit