27 Apr, 2015

5 commits

  • Pull intel iommu updates from David Woodhouse:
    "This lays a little of the groundwork for upcoming Shared Virtual
    Memory support — fixing some bogus #defines for capability bits and
    adding the new ones, and starting to use the new wider page tables
    where we can, in anticipation of actually filling in the new fields
    therein.

    It also allows graphics devices to be assigned to VM guests again.
    This got broken in 3.17 by disallowing assignment of RMRR-afflicted
    devices. Like USB, we do understand why there's an RMRR for graphics
    devices — and unlike USB, it's actually sane. So we can make an
    exception for graphics devices, just as we do USB controllers.

    Finally, tone down the warning about the X2APIC_OPT_OUT bit, due to
    persistent requests. X2APIC_OPT_OUT was added to the spec as a nasty
    hack to allow broken BIOSes to forbid us from using X2APIC when they
    do stupid and invasive things and would break if we did.

    Someone noticed that since Windows doesn't have full IOMMU support for
    DMA protection, setting the X2APIC_OPT_OUT bit made Windows avoid
    initialising the IOMMU on the graphics unit altogether.

    This means that it would be available for use in "driver mode", where
    the IOMMU registers are made available through a BAR of the graphics
    device and the graphics driver can do SVM all for itself.

    So they started setting the X2APIC_OPT_OUT bit on *all* platforms with
    SVM capabilities. And even the platforms which *might*, if the
    planets had been aligned correctly, possibly have had SVM capability
    but which in practice actually don't"

    * git://git.infradead.org/intel-iommu:
    iommu/vt-d: support extended root and context entries
    iommu/vt-d: Add new extended capabilities from v2.3 VT-d specification
    iommu/vt-d: Allow RMRR on graphics devices too
    iommu/vt-d: Print x2apic opt out info instead of printing a warning
    iommu/vt-d: kill bogus ecap_niotlb_iunits()

    Linus Torvalds
     
  • Pull NFS client updates from Trond Myklebust:
    "Another set of mainly bugfixes and a couple of cleanups. No new
    functionality in this round.

    Highlights include:

    Stable patches:
    - Fix a regression in /proc/self/mountstats
    - Fix the pNFS flexfiles O_DIRECT support
    - Fix high load average due to callback thread sleeping

    Bugfixes:
    - Various patches to fix the pNFS layoutcommit support
    - Do not cache pNFS deviceids unless server notifications are enabled
    - Fix a SUNRPC transport reconnection regression
    - make debugfs file creation failure non-fatal in SUNRPC
    - Another fix for circular directory warnings on NFSv4 "junctioned"
    mountpoints
    - Fix locking around NFSv4.2 fallocate() support
    - Truncating NFSv4 file opens should also sync O_DIRECT writes
    - Prevent infinite loop in rpcrdma_ep_create()

    Features:
    - Various improvements to the RDMA transport code's handling of
    memory registration
    - Various code cleanups"

    * tag 'nfs-for-4.1-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (55 commits)
    fs/nfs: fix new compiler warning about boolean in switch
    nfs: Remove unneeded casts in nfs
    NFS: Don't attempt to decode missing directory entries
    Revert "nfs: replace nfs_add_stats with nfs_inc_stats when add one"
    NFS: Rename idmap.c to nfs4idmap.c
    NFS: Move nfs_idmap.h into fs/nfs/
    NFS: Remove CONFIG_NFS_V4 checks from nfs_idmap.h
    NFS: Add a stub for GETDEVICELIST
    nfs: remove WARN_ON_ONCE from nfs_direct_good_bytes
    nfs: fix DIO good bytes calculation
    nfs: Fetch MOUNTED_ON_FILEID when updating an inode
    sunrpc: make debugfs file creation failure non-fatal
    nfs: fix high load average due to callback thread sleeping
    NFS: Reduce time spent holding the i_mutex during fallocate()
    NFS: Don't zap caches on fallocate()
    xprtrdma: Make rpcrdma_{un}map_one() into inline functions
    xprtrdma: Handle non-SEND completions via a callout
    xprtrdma: Add "open" memreg op
    xprtrdma: Add "destroy MRs" memreg op
    xprtrdma: Add "reset MRs" memreg op
    ...

    Linus Torvalds
     
  • Pull fourth vfs update from Al Viro:
    "d_inode() annotations from David Howells (sat in for-next since before
    the beginning of merge window) + four assorted fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    RCU pathwalk breakage when running into a symlink overmounting something
    fix I_DIO_WAKEUP definition
    direct-io: only inc/dec inode->i_dio_count for file systems
    fs/9p: fix readdir()
    VFS: assorted d_backing_inode() annotations
    VFS: fs/inode.c helpers: d_inode() annotations
    VFS: fs/cachefiles: d_backing_inode() annotations
    VFS: fs library helpers: d_inode() annotations
    VFS: assorted weird filesystems: d_inode() annotations
    VFS: normal filesystems (and lustre): d_inode() annotations
    VFS: security/: d_inode() annotations
    VFS: security/: d_backing_inode() annotations
    VFS: net/: d_inode() annotations
    VFS: net/unix: d_backing_inode() annotations
    VFS: kernel/: d_inode() annotations
    VFS: audit: d_backing_inode() annotations
    VFS: Fix up some ->d_inode accesses in the chelsio driver
    VFS: Cachefiles should perform fs modifications on the top layer only
    VFS: AF_UNIX sockets should call mknod on the top layer only

    Linus Torvalds
     
  • Pull chrome platform updates from Olof Johansson:
    "Here's a set of updates to the Chrome OS platform drivers for this
    merge window.

    Main new things this cycle is:

    - Driver changes to expose the lightbar to users. With this, you can
    make your own blinkenlights on Chromebook Pixels.

    - Changes in the way that the atmel_mxt trackpads are probed. The
    laptop driver is trying to be smart and not instantiate the devices
    that don't answer to probe. For the trackpad that can come up in
    two modes (bootloader or regular), this gets complicated since the
    driver already knows how to handle the two modes including the
    actual addresses used. So now the laptop driver needs to know more
    too, instantiating the regular address even if the bootloader one
    is the probe that passed.

    - mfd driver improvements by Javier Martines Canillas, and a few
    bugfixes from him, kbuild and myself"

    * tag 'chrome-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/chrome-platform:
    platform/chrome: chromeos_laptop - instantiate Atmel at primary address
    platform/chrome: cros_ec_lpc - Depend on X86 || COMPILE_TEST
    platform/chrome: cros_ec_lpc - Include linux/io.h header file
    platform/chrome: fix platform_no_drv_owner.cocci warnings
    platform/chrome: cros_ec_lightbar - fix duplicate const warning
    platform/chrome: cros_ec_dev - fix Unknown escape '%' warning
    platform/chrome: Expose Chrome OS Lightbar to users
    platform/chrome: Create sysfs attributes for the ChromeOS EC
    mfd: cros_ec: Instantiate ChromeOS EC character device
    platform/chrome: Add Chrome OS EC userspace device interface
    platform/chrome: Add cros_ec_lpc driver for x86 devices
    mfd: cros_ec: Add char dev and virtual dev pointers
    mfd: cros_ec: Use fixed size arrays to transfer data with the EC

    Linus Torvalds
     
  • Pull second batch of KVM changes from Paolo Bonzini:
    "This mostly includes the PPC changes for 4.1, which this time cover
    Book3S HV only (debugging aids, minor performance improvements and
    some cleanups). But there are also bug fixes and small cleanups for
    ARM, x86 and s390.

    The task_migration_notifier revert and real fix is still pending
    review, but I'll send it as soon as possible after -rc1"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (29 commits)
    KVM: arm/arm64: check IRQ number on userland injection
    KVM: arm: irqfd: fix value returned by kvm_irq_map_gsi
    KVM: VMX: Preserve host CR4.MCE value while in guest mode.
    KVM: PPC: Book3S HV: Use msgsnd for signalling threads on POWER8
    KVM: PPC: Book3S HV: Translate kvmhv_commence_exit to C
    KVM: PPC: Book3S HV: Streamline guest entry and exit
    KVM: PPC: Book3S HV: Use bitmap of active threads rather than count
    KVM: PPC: Book3S HV: Use decrementer to wake napping threads
    KVM: PPC: Book3S HV: Don't wake thread with no vcpu on guest IPI
    KVM: PPC: Book3S HV: Get rid of vcore nap_count and n_woken
    KVM: PPC: Book3S HV: Move vcore preemption point up into kvmppc_run_vcpu
    KVM: PPC: Book3S HV: Minor cleanups
    KVM: PPC: Book3S HV: Simplify handling of VCPUs that need a VPA update
    KVM: PPC: Book3S HV: Accumulate timing information for real-mode code
    KVM: PPC: Book3S HV: Create debugfs file for each guest's HPT
    KVM: PPC: Book3S HV: Add ICP real mode counters
    KVM: PPC: Book3S HV: Move virtual mode ICP functions to real-mode
    KVM: PPC: Book3S HV: Convert ICS mutex lock to spin lock
    KVM: PPC: Book3S HV: Add guest->host real mode completion counters
    KVM: PPC: Book3S HV: Add helpers for lock/unlock hpte
    ...

    Linus Torvalds
     

25 Apr, 2015

7 commits

  • I_DIO_WAKEUP is never directly used, but fix it up anyway.

    Signed-off-by: Eric Sandeen
    Signed-off-by: Al Viro

    Eric Sandeen
     
  • do_blockdev_direct_IO() increments and decrements the inode
    ->i_dio_count for each IO operation. It does this to protect against
    truncate of a file. Block devices don't need this sort of protection.

    For a capable multiqueue setup, this atomic int is the only shared
    state between applications accessing the device for O_DIRECT, and it
    presents a scaling wall for that. In my testing, as much as 30% of
    system time is spent incrementing and decrementing this value. A mixed
    read/write workload improved from ~2.5M IOPS to ~9.6M IOPS, with
    better latencies too. Before:

    clat percentiles (usec):
    | 1.00th=[ 33], 5.00th=[ 34], 10.00th=[ 34], 20.00th=[ 34],
    | 30.00th=[ 34], 40.00th=[ 34], 50.00th=[ 35], 60.00th=[ 35],
    | 70.00th=[ 35], 80.00th=[ 35], 90.00th=[ 37], 95.00th=[ 80],
    | 99.00th=[ 98], 99.50th=[ 151], 99.90th=[ 155], 99.95th=[ 155],
    | 99.99th=[ 165]

    After:

    clat percentiles (usec):
    | 1.00th=[ 95], 5.00th=[ 108], 10.00th=[ 129], 20.00th=[ 149],
    | 30.00th=[ 155], 40.00th=[ 161], 50.00th=[ 167], 60.00th=[ 171],
    | 70.00th=[ 177], 80.00th=[ 185], 90.00th=[ 201], 95.00th=[ 270],
    | 99.00th=[ 390], 99.50th=[ 398], 99.90th=[ 418], 99.95th=[ 422],
    | 99.99th=[ 438]

    In other setups, Robert Elliott reported seeing good performance
    improvements:

    https://lkml.org/lkml/2015/4/3/557

    The more applications accessing the device, the worse it gets.

    Add a new direct-io flags, DIO_SKIP_DIO_COUNT, which tells
    do_blockdev_direct_IO() that it need not worry about incrementing
    or decrementing the inode i_dio_count for this caller.

    Cc: Andrew Morton
    Cc: Christoph Hellwig
    Cc: Theodore Ts'o
    Cc: Elliott, Robert (Server Storage)
    Cc: Al Viro
    Signed-off-by: Jens Axboe
    Signed-off-by: Al Viro

    Jens Axboe
     
  • Pull sound fixes from Takashi Iwai:
    "Here are a few fixes that have been pending since the previous pull
    request: a regression fix for HD-audio multiple SPDIF / HDMI devices,
    several ALC256 codec fixes, a couple of i915 HDMI audio fixes, and
    various small fixes.

    Nothing exciting, just boring, but things good to have"

    * tag 'sound-fix-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - fix headset mic detection problem for one more machine
    ALSA: hda/realtek - Fix Headphone Mic doesn't recording for ALC256
    ALSA: hda - fix "num_steps = 0" error on ALC256
    ALSA: usb-audio: Fix audio output on Roland SC-D70 sound module
    ALSA: hda - add AZX_DCAPS_I915_POWERWELL to Baytrail
    ALSA: hda - only sync BCLK to the display clock for Haswell & Broadwell
    ALSA: hda - Mute headphone pin on suspend on XPS13 9333
    sound/oss: fix deadlock in sequencer_ioctl(SNDCTL_SEQ_OUTOFBAND)
    ALSA: asound.h - use SNDRV_CTL_ELEM_ID_NAME_MAXLEN
    ALSA: hda - potential (but unlikely) uninitialized variable
    ALSA: hda - Fix regression for slave SPDIF setups
    ALSA: intel8x0: Check pci_iomap() success for DEVICE_ALI
    ALSA: hda - simplify azx_has_pm_runtime

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "Lots of activity in target land the last months.

    The highlights include:

    - Convert fabric drivers tree-wide to target_register_template() (hch
    + bart)

    - iser-target hardening fixes + v1.0 improvements (sagi)

    - Convert iscsi_thread_set usage to kthread.h + kill
    iscsi_target_tq.c (sagi + nab)

    - Add support for T10-PI WRITE_STRIP + READ_INSERT operation (mkp +
    sagi + nab)

    - DIF fixes for CONFIG_DEBUG_SG=y + UNMAP file emulation (akinobu +
    sagi + mkp)

    - Extended TCMU ABI v2 for future BIDI + DIF support (andy + ilias)

    - Fix COMPARE_AND_WRITE handling for NO_ALLLOC drivers (hch + nab)

    Thanks to everyone who contributed this round with new features,
    bug-reports, fixes, cleanups and improvements.

    Looking forward, it's currently shaping up to be a busy v4.2 as well"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (69 commits)
    target: Put TCMU under a new config option
    target: Version 2 of TCMU ABI
    target: fix tcm_mod_builder.py
    target/file: Fix UNMAP with DIF protection support
    target/file: Fix SG table for prot_buf initialization
    target/file: Fix BUG() when CONFIG_DEBUG_SG=y and DIF protection enabled
    target: Make core_tmr_abort_task() skip TMFs
    target/sbc: Update sbc_dif_generate pr_debug output
    target/sbc: Make internal DIF emulation honor ->prot_checks
    target/sbc: Return INVALID_CDB_FIELD if DIF + sess_prot_type disabled
    target: Ensure sess_prot_type is saved across session restart
    target/rd: Don't pass incomplete scatterlist entries to sbc_dif_verify_*
    target: Remove the unused flag SCF_ACK_KREF
    target: Fix two sparse warnings
    target: Fix COMPARE_AND_WRITE with SG_TO_MEM_NOALLOC handling
    target: simplify the target template registration API
    target: simplify target_xcopy_init_pt_lun
    target: remove the unused SCF_CMD_XCOPY_PASSTHROUGH flag
    target/rd: reduce code duplication in rd_execute_rw()
    tcm_loop: fixup tpgt string to integer conversion
    ...

    Linus Torvalds
     
  • Pull dma-buf updates from Sumit Semwal:
    "Minor cleanup only; this could've gone in for the 4.0 merge window,
    but for a copy-paste stupidity from me.

    It has been in the for-next since then, and no issues reported.

    - cleanup of dma_buf_export()

    - correction of copy-paste stupidity while doing the cleanup"

    * tag 'dma-buf-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/sumits/dma-buf:
    staging: android: ion: fix wrong init of dma_buf_export_info
    dma-buf: cleanup dma_buf_export() to make it easily extensible

    Linus Torvalds
     
  • Pull slave-dmaengine updates from Vinod Koul:

    - new drivers for:
    - Ingenic JZ4780 controller
    - APM X-Gene controller
    - Freescale RaidEngine device
    - Renesas USB Controller

    - remove device_alloc_chan_resources dummy handlers

    - sh driver cleanups for peri peri and related emmc and asoc patches
    as well

    - fixes and enhancements spread over the drivers

    * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (59 commits)
    dmaengine: dw: don't prompt for DW_DMAC_CORE
    dmaengine: shdmac: avoid unused variable warnings
    dmaengine: fix platform_no_drv_owner.cocci warnings
    dmaengine: pch_dma: fix memory leak on failure path in pch_dma_probe()
    dmaengine: at_xdmac: unlock spin lock before return
    dmaengine: xgene: devm_ioremap() returns NULL on error
    dmaengine: xgene: buffer overflow in xgene_dma_init_channels()
    dmaengine: usb-dmac: Fix dereferencing freed memory 'desc'
    dmaengine: sa11x0: report slave capabilities to upper layers
    dmaengine: vdma: Fix compilation warnings
    dmaengine: fsl_raid: statify fsl_re_chan_probe
    dmaengine: Driver support for FSL RaidEngine device.
    dmaengine: xgene_dma_init_ring_mngr() can be static
    Documentation: dma: Add documentation for the APM X-Gene SoC DMA device DTS binding
    arm64: dts: Add APM X-Gene SoC DMA device and DMA clock DTS nodes
    dmaengine: Add support for APM X-Gene SoC DMA engine driver
    dmaengine: usb-dmac: Add Renesas USB DMA Controller (USB-DMAC) driver
    dmaengine: renesas,usb-dmac: Add device tree bindings documentation
    dmaengine: edma: fixed wrongly initialized data parameter to the edma callback
    dmaengine: ste_dma40: fix implicit conversion
    ...

    Linus Torvalds
     
  • Pull md updates from Neil Brown:
    "More updates that usual this time. A few have performance impacts
    which hould mostly be positive, but RAID5 (in particular) can be very
    work-load ensitive... We'll have to wait and see.

    Highlights:

    - "experimental" code for managing md/raid1 across a cluster using
    DLM. Code is not ready for general use and triggers a WARNING if
    used. However it is looking good and mostly done and having in
    mainline will help co-ordinate development.

    - RAID5/6 can now batch multiple (4K wide) stripe_heads so as to
    handle a full (chunk wide) stripe as a single unit.

    - RAID6 can now perform read-modify-write cycles which should help
    performance on larger arrays: 6 or more devices.

    - RAID5/6 stripe cache now grows and shrinks dynamically. The value
    set is used as a minimum.

    - Resync is now allowed to go a little faster than the 'mininum' when
    there is competing IO. How much faster depends on the speed of the
    devices, so the effective minimum should scale with device speed to
    some extent"

    * tag 'md/4.1' of git://neil.brown.name/md: (58 commits)
    md/raid5: don't do chunk aligned read on degraded array.
    md/raid5: allow the stripe_cache to grow and shrink.
    md/raid5: change ->inactive_blocked to a bit-flag.
    md/raid5: move max_nr_stripes management into grow_one_stripe and drop_one_stripe
    md/raid5: pass gfp_t arg to grow_one_stripe()
    md/raid5: introduce configuration option rmw_level
    md/raid5: activate raid6 rmw feature
    md/raid6 algorithms: xor_syndrome() for SSE2
    md/raid6 algorithms: xor_syndrome() for generic int
    md/raid6 algorithms: improve test program
    md/raid6 algorithms: delta syndrome functions
    raid5: handle expansion/resync case with stripe batching
    raid5: handle io error of batch list
    RAID5: batch adjacent full stripe write
    raid5: track overwrite disk count
    raid5: add a new flag to track if a stripe can be batched
    raid5: use flex_array for scribble data
    md raid0: access mddev->queue (request queue member) conditionally because it is not set when accessed from dm-raid
    md: allow resync to go faster when there is competing IO.
    md: remove 'go_faster' option from ->sync_request()
    ...

    Linus Torvalds
     

24 Apr, 2015

9 commits

  • Pull second batch of devicetree updates from Rob Herring:
    "As Grant mentioned in the first devicetree pull request, here is the
    2nd batch of DT changes for 4.1. The main remaining item here is the
    endianness bindings and related 8250 driver support.

    - DT endianness specification bindings

    - big-endian 8250 serial support

    - DT overlay unittest updates

    - various DT doc updates

    - compile fixes for OF_IRQ=n"

    * tag 'devicetree-for-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    frv: add io{read,write}{16,32}be functions
    mn10300: add io{read,write}{16,32}be functions
    Documentation: DT bindings: add doc for Altera's SoCFPGA platform
    of: base: improve of_get_next_child() kernel-doc
    Doc: dt: arch_timer: discourage clock-frequency use
    of: unittest: overlay: Keep track of created overlays
    of/fdt: fix allocation size for device node path
    serial: of_serial: Support big-endian register accesses
    serial: 8250: Add support for big-endian MMIO accesses
    of: Document {little,big,native}-endian bindings
    of/fdt: Add endianness helper function for early init code
    of: Add helper function to check MMIO register endianness
    of/fdt: Remove "reg" data prints from early_init_dt_scan_memory
    of: add vendor prefix for Artesyn
    of: Add dummy of_irq_to_resource_table() for IRQ_OF=n
    of: OF_IRQ should depend on IRQ_DOMAIN

    Linus Torvalds
     
  • Pull initial ACPI support for arm64 from Will Deacon:
    "This series introduces preliminary ACPI 5.1 support to the arm64
    kernel using the "hardware reduced" profile. We don't support any
    peripherals yet, so it's fairly limited in scope:

    - MEMORY init (UEFI)

    - ACPI discovery (RSDP via UEFI)

    - CPU init (FADT)

    - GIC init (MADT)

    - SMP boot (MADT + PSCI)

    - ACPI Kconfig options (dependent on EXPERT)

    ACPI for arm64 has been in development for a while now and hardware
    has been available that can boot with either FDT or ACPI tables. This
    has been made possible by both changes to the ACPI spec to cater for
    ARM-based machines (known as "hardware-reduced" in ACPI parlance) but
    also a Linaro-driven effort to get this supported on top of the Linux
    kernel. This pull request is the result of that work.

    These changes allow us to initialise the CPUs, interrupt controller,
    and timers via ACPI tables, with memory information and cmdline coming
    from EFI. We don't support a hybrid ACPI/FDT scheme. Of course,
    there is still plenty of work to do (a serial console would be nice!)
    but I expect that to happen on a per-driver basis after this core
    series has been merged.

    Anyway, the diff stat here is fairly horrible, but splitting this up
    and merging it via all the different subsystems would have been
    extremely painful. Instead, we've got all the relevant Acks in place
    and I've not seen anything other than trivial (Kconfig) conflicts in
    -next (for completeness, I've included my resolution below). Nearly
    half of the insertions fall under Documentation/.

    So, we'll see how this goes. Right now, it all depends on EXPERT and
    I fully expect people to use FDT by default for the immediate future"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (31 commits)
    ARM64 / ACPI: make acpi_map_gic_cpu_interface() as void function
    ARM64 / ACPI: Ignore the return error value of acpi_map_gic_cpu_interface()
    ARM64 / ACPI: fix usage of acpi_map_gic_cpu_interface
    ARM64: kernel: acpi: honour acpi=force command line parameter
    ARM64: kernel: acpi: refactor ACPI tables init and checks
    ARM64: kernel: psci: let ACPI probe PSCI version
    ARM64: kernel: psci: factor out probe function
    ACPI: move arm64 GSI IRQ model to generic GSI IRQ layer
    ARM64 / ACPI: Don't unflatten device tree if acpi=force is passed
    ARM64 / ACPI: additions of ACPI documentation for arm64
    Documentation: ACPI for ARM64
    ARM64 / ACPI: Enable ARM64 in Kconfig
    XEN / ACPI: Make XEN ACPI depend on X86
    ARM64 / ACPI: Select ACPI_REDUCED_HARDWARE_ONLY if ACPI is enabled on ARM64
    clocksource / arch_timer: Parse GTDT to initialize arch timer
    irqchip: Add GICv2 specific ACPI boot support
    ARM64 / ACPI: Introduce ACPI_IRQ_MODEL_GIC and register device's gsi
    ACPI / processor: Make it possible to get CPU hardware ID via GICC
    ACPI / processor: Introduce phys_cpuid_t for CPU hardware ID
    ARM64 / ACPI: Parse MADT for SMP initialization
    ...

    Linus Torvalds
     
  • Pull nfsd updates from Bruce Fields:
    "A quiet cycle this time; this is basically entirely bugfixes.

    The few that aren't cc'd to stable are cleanup or seemed unlikely to
    affect anyone much"

    * 'for-4.1' of git://linux-nfs.org/~bfields/linux:
    uapi: Remove kernel internal declaration
    nfsd: fix nsfd startup race triggering BUG_ON
    nfsd: eliminate NFSD_DEBUG
    nfsd4: fix READ permission checking
    nfsd4: disallow SEEK with special stateids
    nfsd4: disallow ALLOCATE with special stateids
    nfsd: add NFSEXP_PNFS to the exflags array
    nfsd: Remove duplicate macro define for max sec label length
    nfsd: allow setting acls with unenforceable DENYs
    nfsd: NFSD_FAULT_INJECTION depends on DEBUG_FS
    nfsd: remove unused status arg to nfsd4_cleanup_open_state
    nfsd: remove bogus setting of status in nfsd4_process_open2
    NFSD: Use correct reply size calculating function
    NFSD: Using path_equal() for checking two paths

    Linus Torvalds
     
  • Pull xfs update from Dave Chinner:
    "This update contains:

    - RENAME_WHITEOUT support

    - conversion of per-cpu superblock accounting to use generic counters

    - new inode mmap lock so that we can lock page faults out of
    truncate, hole punch and other direct extent manipulation functions
    to avoid racing mmap writes from causing data corruption

    - rework of direct IO submission and completion to solve data
    corruption issue when running concurrent extending DIO writes.
    Also solves problem of running IO completion transactions in
    interrupt context during size extending AIO writes.

    - FALLOC_FL_INSERT_RANGE support for inserting holes into a file via
    direct extent manipulation to avoid needing to copy data within the
    file

    - attribute block header field overflow fix for 64k block size
    filesystems

    - Lots of changes to log messaging to be more informative and concise
    when errors occur. Also prevent a lot of unnecessary log spamming
    due to cascading failures in error conditions.

    - lots of cleanups and bug fixes

    One thing of note is the direct IO fixes that we merged last week
    after the window opened. Even though a little late, they fix a user
    reported data corruption and have been pretty well tested. I figured
    there was not much point waiting another 2 weeks for -rc1 to be
    released just so I could send them to you..."

    * tag 'xfs-for-linus-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (49 commits)
    xfs: using generic_file_direct_write() is unnecessary
    xfs: direct IO EOF zeroing needs to drain AIO
    xfs: DIO write completion size updates race
    xfs: DIO writes within EOF don't need an ioend
    xfs: handle DIO overwrite EOF update completion correctly
    xfs: DIO needs an ioend for writes
    xfs: move DIO mapping size calculation
    xfs: factor DIO write mapping from get_blocks
    xfs: unlock i_mutex in xfs_break_layouts
    xfs: kill unnecessary firstused overflow check on attr3 leaf removal
    xfs: use larger in-core attr firstused field and detect overflow
    xfs: pass attr geometry to attr leaf header conversion functions
    xfs: disallow ro->rw remount on norecovery mount
    xfs: xfs_shift_file_space can be static
    xfs: Add support FALLOC_FL_INSERT_RANGE for fallocate
    fs: Add support FALLOC_FL_INSERT_RANGE for fallocate
    xfs: Fix incorrect positive ENOMEM return
    xfs: xfs_mru_cache_insert() should use GFP_NOFS
    xfs: %pF is only for function pointers
    xfs: fix shadow warning in xfs_da3_root_split()
    ...

    Linus Torvalds
     
  • NFS: NFSoRDMA Client Changes

    This patch series creates an operation vector for each of the different
    memory registration modes. This should make it easier to one day increase
    credit limit, rsize, and wsize.

    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • This file is only used internally to the NFS v4 module, so it doesn't
    need to be in the global include path. I also renamed it from
    nfs_idmap.h to nfs4idmap.h to emphasize that it's an NFSv4-only include
    file.

    Signed-off-by: Anna Schumaker
    Signed-off-by: Trond Myklebust

    Anna Schumaker
     
  • The idmapper is completely internal to the NFS v4 module, so this macro
    will always evaluate to true. This patch also removes unnecessary
    includes of this file from the generic NFS client.

    Signed-off-by: Anna Schumaker
    Signed-off-by: Trond Myklebust

    Anna Schumaker
     
  • v2: gracefully handle the case where some dentry pointers end up NULL
    and be more dilligent about zeroing out dentry pointers

    We currently have a problem that SELinux policy is being enforced when
    creating debugfs files. If a debugfs file is created as a side effect of
    doing some syscall, then that creation can fail if the SELinux policy
    for that process prevents it.

    This seems wrong. We don't do that for files under /proc, for instance,
    so Bruce has proposed a patch to fix that.

    While discussing that patch however, Greg K.H. stated:

    "No kernel code should care / fail if a debugfs function fails, so
    please fix up the sunrpc code first."

    This patch converts all of the sunrpc debugfs setup code to be void
    return functins, and the callers to not look for errors from those
    functions.

    This should allow rpc_clnt and rpc_xprt creation to work, even if the
    kernel fails to create debugfs files for some reason.

    Cc: Greg Kroah-Hartman
    Acked-by: "J. Bruce Fields"
    Signed-off-by: Jeff Layton
    Signed-off-by: Trond Myklebust

    Jeff Layton
     
  • This patch adds a GETATTR to the end of ALLOCATE and DEALLOCATE
    operations so we can set the updated inode size and change attribute
    directly. DEALLOCATE will still need to release pagecache pages, so
    nfs42_proc_deallocate() now calls truncate_pagecache_range() before
    contacting the server.

    Signed-off-by: Anna Schumaker
    Signed-off-by: Trond Myklebust

    Anna Schumaker
     

23 Apr, 2015

12 commits

  • Pull MTD updates from Brian Norris:
    "Common MTD:

    - Add Kconfig option for keeping both the 'master' and 'partition'
    MTDs registered as devices. This would really make a better
    default if we could do it over, as it allows a lot more flexibility
    in (1) determining the flash topology of the system from user-space
    and (2) adding temporary partitions at runtime (ioctl(BLKPG)).

    Unfortunately, this would possibly cause user-space breakage, as it
    will cause renumbering of the /dev/mtdX devices. We'll see if we
    can change this in the future, as there have already been a few
    people looking for this feature, and I know others have just been
    working around our current limitations instead of fixing them this
    way.

    - Along with the previous change, add some additional information to
    sysfs, so user-space can read the offset of each partition within
    its master device

    SPI NOR:

    - add new device tree compatible binding to represent the
    mostly-compatible class of SPI NOR flash which can be detected by
    their extended JEDEC ID bytes, cutting down the duplication of our
    ID tables

    - misc. new IDs

    Various other miscellaneous fixes and changes"

    * tag 'for-linus-20150422' of git://git.infradead.org/linux-mtd: (53 commits)
    mtd: spi-nor: Add support for Macronix mx25u6435f serial flash
    mtd: spi-nor: Add support for Winbond w25q64dw serial flash
    mtd: spi-nor: add support for the Winbond W25X05 flash
    mtd: spi-nor: support en25s64 device
    mtd: m25p80: bind to "nor-jedec" ID, for auto-detection
    Documentation: devicetree: m25p80: add "nor-jedec" binding
    mtd: Make MTD tests cancelable
    mtd: mtd_oobtest: Fix bitflip_limit usage in test case 3
    mtd: docg3: remove invalid __exit annotations
    mtd: fsl_ifc_nand: use msecs_to_jiffies for time conversion
    mtd: atmel_nand: don't map the ROM table if no pmecc table offset in DT
    mtd: atmel_nand: add a definition for the oob reserved bytes
    mtd: part: Remove partition overlap checks
    mtd: part: Add sysfs variable for offset of partition
    mtd: part: Create the master device node when partitioned
    mtd: ts5500_flash: Fix typo in MODULE_DESCRIPTION in ts5500_flash.c
    mtd: denali: Disable sub-page writes in Denali NAND driver
    mtd: pxa3xx_nand: cleanup wait_for_completion handling
    mtd: nand: gpmi: Check for scan_bbt() error
    mtd: nand: gpmi: fixup return type of wait_for_completion_timeout
    ...

    Linus Torvalds
     
  • Pull InfiniBand/RDMA updates from Roland Dreier:

    - IPoIB fixes from Doug Ledford and Erez Shitrit

    - iSER updates from Sagi Grimberg

    - mlx4 GUID handling changes from Yishai Hadas

    - other misc fixes

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (51 commits)
    mlx5: wrong page mask if CONFIG_ARCH_DMA_ADDR_T_64BIT enabled for 32Bit architectures
    IB/iser: Rewrite bounce buffer code path
    IB/iser: Bump version to 1.6
    IB/iser: Remove code duplication for a single DMA entry
    IB/iser: Pass struct iser_mem_reg to iser_fast_reg_mr and iser_reg_sig_mr
    IB/iser: Modify struct iser_mem_reg members
    IB/iser: Make fastreg pool cache friendly
    IB/iser: Move PI context alloc/free to routines
    IB/iser: Move fastreg descriptor pool get/put to helper functions
    IB/iser: Merge build page-vec into register page-vec
    IB/iser: Get rid of struct iser_rdma_regd
    IB/iser: Remove redundant assignments in iser_reg_page_vec
    IB/iser: Move memory reg/dereg routines to iser_memory.c
    IB/iser: Don't pass ib_device to fall_to_bounce_buff routine
    IB/iser: Remove a redundant struct iser_data_buf
    IB/iser: Remove redundant cmd_data_len calculation
    IB/iser: Fix wrong calculation of protection buffer length
    IB/iser: Handle fastreg/local_inv completion errors
    IB/iser: Fix unload during ep_poll wrong dereference
    ib_srpt: convert printk's to pr_* functions
    ...

    Linus Torvalds
     
  • Pull Ceph updates from Sage Weil:
    "This time around we have a collection of CephFS fixes from Zheng
    around MDS failure handling and snapshots, support for a new CRUSH
    straw2 algorithm (to sync up with userspace) and several RBD cleanups
    and fixes from Ilya, an error path leak fix from Taesoo, and then an
    assorted collection of cleanups from others"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (28 commits)
    rbd: rbd_wq comment is obsolete
    libceph: announce support for straw2 buckets
    crush: straw2 bucket type with an efficient 64-bit crush_ln()
    crush: ensuring at most num-rep osds are selected
    crush: drop unnecessary include from mapper.c
    ceph: fix uninline data function
    ceph: rename snapshot support
    ceph: fix null pointer dereference in send_mds_reconnect()
    ceph: hold on to exclusive caps on complete directories
    libceph: simplify our debugfs attr macro
    ceph: show non-default options only
    libceph: expose client options through debugfs
    libceph, ceph: split ceph_show_options()
    rbd: mark block queue as non-rotational
    libceph: don't overwrite specific con error msgs
    ceph: cleanup unsafe requests when reconnecting is denied
    ceph: don't zero i_wrbuffer_ref when reconnecting is denied
    ceph: don't mark dirty caps when there is no auth cap
    ceph: keep i_snap_realm while there are writers
    libceph: osdmap.h: Add missing format newlines
    ...

    Linus Torvalds
     
  • Pull virtio updates from Rusty Russell:
    "Some virtio internal cleanups, a new virtio device "virtio input", and
    a change to allow the legacy virtio balloon.

    Most excitingly, some lguest work! No seriously, I got some cleanup
    patches"

    * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    virtio: drop virtio_device_is_legacy_only
    virtio_pci: support non-legacy balloon devices
    virtio_mmio: support non-legacy balloon devices
    virtio_ccw: support non-legacy balloon devices
    virtio: balloon might not be a legacy device
    virtio_balloon: transitional interface
    virtio_ring: Update weak barriers to use dma_wmb/rmb
    virtio_pci_modern: switch to type-safe io accessors
    virtio_pci_modern: type-safe io accessors
    lguest: handle traps on the "interrupt suppressed" iret instruction.
    virtio: drop a useless config read
    virtio_config: reorder functions
    Add virtio-input driver.
    lguest: suppress interrupts for single insn, not range.
    lguest: simplify lguest_iret
    lguest: rename i386_head.S in the comments
    lguest: explicitly set miscdevice's private_data NULL
    lguest: fix pending interrupt test.

    Linus Torvalds
     
  • This reverts commit 8d63d99a5dfbdb997d12dd3c07b2070ca723db3b.

    It causes in VM mapping refcount errors:

    page:ffffea0010a15040 count:0 mapcount:1 mapping: (null) index:0x0
    flags: 0x8000000000008014(referenced|dirty|tail)
    page dumped because: VM_BUG_ON_PAGE(page_mapcount(page) != 0)
    ------------[ cut here ]------------
    kernel BUG at mm/swap.c:134!

    as reported by Borislav Petkov

    Reported-and-tested-by: Borislav Petkov
    Cc: Kirill A. Shutemov
    Cc: Hugh Dickins
    Cc: Andrea Arcangeli
    Cc: Andrew Morton
    Cc: linux-mm@kvack.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull MMC fixes from Ulf Hansson:
    "Here is two mmc core fixes for v.4.1 rc1:

    - fix error code propagation in mmc_pwrseq_simple_alloc()

    - revert 'mmc: core: Convert mmc_driver to device_driver'"

    * tag 'mmc-4.1-rc1' of git://git.linaro.org/people/ulf.hansson/mmc:
    Revert "mmc: core: Convert mmc_driver to device_driver"
    mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc()

    Linus Torvalds
     
  • Pull ARM SoC late changes from Olof Johansson:
    "We were expecting to sit on this branch through most of the merge
    window since the contents was merged into our tree late, but we ended
    up sitting on all of our contents so it can go in with the rest.

    The contents here is:

    - a large branch of cleanups of the CM/PRM blocks on OMAP.

    - a couple of patches plumbing up CM/PRM on OMAP5 and DRA7.

    - a branch with DT updates for Freescale i.MX. including some
    shuffling from .dts to .dtsi (include) files that causes a little
    churn"

    * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (78 commits)
    ARM: OMAP2+: Fix booting with configs that don't have MFD_SYSCON
    ARM: OMAP4+: control: add support for initializing control module via DT
    ARM: dts: dra7: add minimal l4 bus layout with control module support
    ARM: dts: omap5: add minimal l4 bus layout with control module support
    ARM: OMAP4+: control: remove support for legacy pad read/write
    ARM: OMAP4: display: convert display to use syscon for dsi muxing
    ARM: dts: omap4: add minimal l4 bus layout with control module support
    ARM: dts: am4372: add minimal l4 bus layout with control module support
    ARM: dts: am43xx-epos-evm: fix pinmux node layout
    ARM: dts: am33xx: add minimal l4 bus layout with control module support
    ARM: dts: omap3: add minimal l4 bus layout with control module support
    ARM: dts: omap24xx: add minimal l4 bus layout with control module support
    ARM: OMAP2+: control: add syscon support for register accesses
    ARM: OMAP2+: id: cache omap_type value
    ARM: OMAP2+: control: remove API for getting control module base address
    ARM: OMAP2+: clock: add low-level support for regmap
    ARM: OMAP4+: PRM: get rid of cpu_is_omap44xx calls from interrupt init
    ARM: OMAP4+: PRM: setup prm_features from the PRM init time flags
    ARM: OMAP2+: CM: move SoC specific init calls within a generic API
    ARM: OMAP4+: PRM: determine prm_device_inst based on DT compatibility
    ...

    Linus Torvalds
     
  • Pull ARM SoC multiplatform code changes from Olof Johansson:
    "The changes here belong to two main platforms:

    - Atmel At91 is flipping the bit and going multiplatform. This
    includes some cleanups and removal of code, and the final flip of
    config dependencies

    - Shmobile has several platforms that are going multiplatform, but
    this branch also contains a bunch of cleanups that they weren't
    able to keep separate in a good way. THere's also a removal of one
    of their SoCs and the corresponding boards (sh7372 and mackerel)"

    * tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (67 commits)
    ARM: at91/pm: move AT91_MEMCTRL_* to pm.h
    ARM: at91/pm: move the standby functions to pm.c
    ARM: at91: fix pm_suspend.S compilation when ARMv6 is selected
    ARM: at91: add a Kconfig dependency on multi-platform
    ARM: at91: drop AT91_TIMER_HZ
    ARM: at91: remove hardware.h
    ARM: at91: remove SoC headers
    ARM: at91: remove useless mach/cpu.h
    ARM: at91: remove unused headers
    ARM: at91: switch at91_dt_defconfig to multiplatform
    ARM: at91: switch to multiplatform
    ARM: shmobile: r8a7778: enable multiplatform target
    ARM: shmobile: bockw: add sound to DT
    ARM: shmobile: r8a7778: add sound to DT
    ARM: shmobile: bockw: add devices hooked up to i2c0 to DT
    DT: i2c: add trivial binding for OKI ML86V7667 video decoder
    ARM: shmobile: r8a7778: common clock framework CPG driver
    ARM: shmobile: bockw dts: set extal clock frequency
    ARM: shmobile: bockw dts: Move Ethernet node to BSC
    ARM: shmobile: r8a73a4: Remove legacy code
    ...

    Linus Torvalds
     
  • Pull ARM SoC driver updates from Olof Johansson:
    "Driver updates for v4.1. Some of these are for drivers/soc, where we
    find more and more SoC-specific drivers these days. Some are for
    other driver subsystems where we have received acks from the
    appropriate maintainers.

    The larger parts of this branch are:

    - MediaTek support for their PMIC wrapper interface, a high-level
    interface for talking to the system PMIC over a dedicated I2C
    interface.

    - Qualcomm SCM driver has been moved to drivers/firmware. It's used
    for CPU up/down and needs to be in a shared location for arm/arm64
    common code.

    - cleanup of ARM-CCI PMU code.

    - another set of cleanusp to the OMAP GPMC code"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (43 commits)
    soc/mediatek: Remove unused variables
    clocksource: atmel-st: select MFD_SYSCON
    soc: mediatek: Add PMIC wrapper for MT8135 and MT8173 SoCs
    arm-cci: Fix CCI PMU event validation
    arm-cci: Split the code for PMU vs driver support
    arm-cci: Get rid of secure transactions for PMU driver
    arm-cci: Abstract the CCI400 PMU specific definitions
    arm-cci: Rearrange code for splitting PMU vs driver code
    drivers: cci: reject groups spanning multiple HW PMUs
    ARM: at91: remove useless include
    clocksource: atmel-st: remove mach/hardware dependency
    clocksource: atmel-st: use syscon/regmap
    ARM: at91: time: move the system timer driver to drivers/clocksource
    ARM: at91: properly initialize timer
    ARM: at91: at91rm9200: remove deprecated arm_pm_restart
    watchdog: at91rm9200: implement restart handler
    watchdog: at91rm9200: use the system timer syscon
    mfd: syscon: Add atmel system timer registers definition
    ARM: at91/dt: declare atmel,at91rm9200-st as a syscon
    soc: qcom: gsbi: Add support for ADM CRCI muxing
    ...

    Linus Torvalds
     
  • Pull ARM DT updates from Olof Johansson:
    "As always, this tends to be one of our bigger branches. There are
    lots of updates this release, but not that many jumps out as something
    that needs more detailed coverage. Some of the highlights are:

    - DTs for the new Annapurna Labs Alpine platform

    - more graphics DT pieces falling into place on Exynos, bridges,
    clocks.

    - plenty of DT updates for Qualcomm platforms for various IP blocks

    - some churn on Tegra due to switch-over to tool-generated pinctrl
    data

    - misc fixes and updates for Atmel at91 platforms

    - various DT updates to add IP block support on Broadcom's Cygnus
    platforms

    - more updates for Renesas platforms as DT support is added for
    various IP blocks (IPMMU, display, audio, etc)"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (231 commits)
    ARM: dts: alpine: add internal pci
    Revert "ARM: dts: mt8135: Add pinctrl/GPIO/EINT node for mt8135."
    ARM: mvebu: use 0xf1000000 as internal registers on Armada 370 DB
    ARM: dts: qcom: Add idle state device nodes for 8064
    ARM: dts: qcom: Add idle states device nodes for 8084
    ARM: dts: qcom: Add idle states device nodes for 8974/8074
    ARM: dts: qcom: Update power-controller device node for 8064 Krait CPUs
    ARM: dts: qcom: Add power-controller device node for 8084 Krait CPUs
    ARM: dts: qcom: Add power-controller device node for 8074 Krait CPUs
    devicetree: bindings: Document qcom,idle-states
    devicetree: bindings: Update qcom,saw2 node bindings
    dt-bindings: Add #defines for MSM8916 clocks and resets
    arm: dts: qcom: Add LPASS Audio HW to IPQ8064 device tree
    arm: dts: qcom: Add APQ8084 chipset SPMI PMIC's nodes
    arm: dts: qcom: Add 8x74 chipset SPMI PMIC's nodes
    arm: dts: qcom: Add SPMI PMIC Arbiter nodes for APQ8084 and MSM8974
    arm: dts: qcom: Add LCC nodes
    arm: dts: qcom: Add TCSR support for MSM8960
    arm: dts: qcom: Add TCSR support for MSM8660
    arm: dts: qcom: Add TCSR support for IPQ8064
    ...

    Linus Torvalds
     
  • Pull ARM SoC platform updates from Olof Johansson:
    "Our SoC branch usually contains expanded support for new SoCs and
    other core platform code. In this case, that includes:

    - support for the new Annapurna Labs "Alpine" platform

    - a rework greatly simplifying adding new platform support to the
    MCPM subsystem (Multi-cluster power management)

    - cpuidle and PM improvements for Exynos3250

    - misc updates for Renesas, OMAP, Meson, i.MX. Some of these could
    have gone in other branches but ended up here for various reasons"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (53 commits)
    ARM: alpine: add support for generic pci
    ARM: Exynos: migrate DCSCB to the new MCPM backend abstraction
    ARM: vexpress: migrate DCSCB to the new MCPM backend abstraction
    ARM: vexpress: DCSCB: tighten CPU validity assertion
    ARM: vexpress: migrate TC2 to the new MCPM backend abstraction
    ARM: MCPM: move the algorithmic complexity to the core code
    ARM: EXYNOS: allow cpuidle driver usage on Exynos3250 SoC
    ARM: EXYNOS: add AFTR mode support for Exynos3250
    ARM: EXYNOS: add code for setting/clearing boot flag
    ARM: EXYNOS: fix CPU1 hotplug on Exynos3250
    ARM: S3C64XX: Use fixed IRQ bases to avoid conflicts on Cragganmore
    ARM: cygnus: fix const declaration bcm_cygnus_dt_compat
    ARM: DRA7: hwmod: Fix the hwmod class for GPTimer4
    ARM: DRA7: hwmod: Add data for GPTimers 13 through 16
    ARM: EXYNOS: Remove left over 'extra_save'
    ARM: EXYNOS: Constify exynos_pm_data array
    ARM: EXYNOS: use static in suspend.c
    ARM: EXYNOS: Use platform device name as power domain name
    ARM: EXYNOS: add support for async-bridge clocks for pm_domains
    ARM: omap-device: add missed callback for suspend-to-disk
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Olof Johansson:
    "We've got a fairly large cleanup branch this time. The bulk of this
    is removal of non-DT platforms of several flavors:

    - Atmel at91 platforms go full-DT, with removal of remaining
    board-file based support

    - OMAP removes legacy board files for three more platforms

    - removal of non-DT mach-msm, newer Qualcomm platforms now live in
    mach-qcom

    - Freescale i.MX25 also removes non-DT platform support"

    Most of the rest of the changes here are fallout from the above, i.e. for
    example removal of drivers that now lack platforms, etc.

    * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (58 commits)
    mmc: Remove msm_sdcc driver
    gpio: Remove gpio-msm-v1 driver
    ARM: Remove mach-msm and associated ARM architecture code
    ARM: shmobile: cpuidle: Remove the pointless default driver
    ARM: davinci: dm646x: Add interrupt resource for McASPs
    ARM: davinci: irqs: Correct McASP1 TX interrupt definition for DM646x
    ARM: davinci: dm646x: Clean up the McASP DMA resources
    ARM: davinci: devices-da8xx: Add support for McASP2 on da830
    ARM: davinci: devices-da8xx: Clean up and correct the McASP device creation
    ARM: davinci: devices-da8xx: Add interrupt resource to McASP structs
    ARM: davinci: devices-da8xx: Add resource name for the McASP DMA request
    ARM: OMAP2+: Remove legacy support for omap3 TouchBook
    ARM: OMAP3: Remove legacy support for devkit8000
    ARM: OMAP3: Remove legacy support for EMA-Tech Stalker board
    ARM: shmobile: Consolidate the pm code for R-Car Gen2
    ARM: shmobile: r8a7791: Correct SYSCIER value
    ARM: shmobile: r8a7790: Correct SYSCIER value
    ARM: at91: remove old setup
    ARM: at91: sama5d4: remove useless map_io
    ARM: at91: sama5 use SoC detection infrastructure
    ...

    Linus Torvalds
     

22 Apr, 2015

7 commits

  • Sync up feature bits and enable CEPH_FEATURE_CRUSH_V4.

    Signed-off-by: Ilya Dryomov

    Ilya Dryomov
     
  • This is an improved straw bucket that correctly avoids any data movement
    between items A and B when neither A nor B's weights are changed. Said
    differently, if we adjust the weight of item C (including adding it anew
    or removing it completely), we will only see inputs move to or from C,
    never between other items in the bucket.

    Notably, there is not intermediate scaling factor that needs to be
    calculated. The mapping function is a simple function of the item weights.

    The below commits were squashed together into this one (mostly to avoid
    adding and then yanking a ~6000 lines worth of crush_ln_table):

    - crush: add a straw2 bucket type
    - crush: add crush_ln to calculate nature log efficently
    - crush: improve straw2 adjustment slightly
    - crush: change crush_ln to provide 32 more digits
    - crush: fix crush_get_bucket_item_weight and bucket destroy for straw2
    - crush/mapper: fix divide-by-0 in straw2
    (with div64_s64() for draw = ln / w and INT64_MIN -> S64_MIN - need
    to create a proper compat.h in ceph.git)

    Reflects ceph.git commits 242293c908e923d474910f2b8203fa3b41eb5a53,
    32a1ead92efcd351822d22a5fc37d159c65c1338,
    6289912418c4a3597a11778bcf29ed5415117ad9,
    35fcb04e2945717cf5cfe150b9fa89cb3d2303a1,
    6445d9ee7290938de1e4ee9563912a6ab6d8ee5f,
    b5921d55d16796e12d66ad2c4add7305f9ce2353.

    Signed-off-by: Ilya Dryomov

    Ilya Dryomov
     
  • Signed-off-by: Yan, Zheng

    Yan, Zheng
     
  • Pull networking fixes from David Miller:
    "Just a few fixes trickling in at this point.

    1) If we see an attached socket on an skb in the ipv4 forwarding path,
    bail. This can happen due to races with FIB rule addition, and
    deletion, and we should just drop such frames. From Sebastian
    Pöhn.

    2) pppoe receive should only accept packets destined for this hosts's
    MAC address. From Joakim Tjernlund.

    3) Handle checksum unwrapping properly in ppp receive properly when
    it's encapsulated in UDP in some way, fix from Tom Herbert.

    4) Fix some bugs in mv88e6xxx DSA driver resulting from the conversion
    from register offset constants to mnenomic macros. From Vivien
    Didelot.

    5) Fix handling of HCA max message size in mlx4 adapters, from Eran
    Ben ELisha"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    net/mlx4_core: Fix reading HCA max message size in mlx4_QUERY_DEV_CAP
    tcp: add memory barriers to write space paths
    altera tse: Error-Bit on tx-avalon-stream always set.
    net: dsa: mv88e6xxx: use PORT_DEFAULT_VLAN
    net: dsa: mv88e6xxx: fix setup of port control 1
    ppp: call skb_checksum_complete_unset in ppp_receive_frame
    net: add skb_checksum_complete_unset
    pppoe: Lacks DST MAC address check
    ip_forward: Drop frames with attached skb->sk

    Linus Torvalds
     
  • Glue it altogehter. The raid6 rmw path should work the same as the
    already existing raid5 logic. So emulate the prexor handling/flags
    and split functions as needed.

    1) Enable xor_syndrome() in the async layer.

    2) Split ops_run_prexor() into RAID4/5 and RAID6 logic. Xor the syndrome
    at the start of a rmw run as we did it before for the single parity.

    3) Take care of rmw run in ops_run_reconstruct6(). Again process only
    the changed pages to get syndrome back into sync.

    4) Enhance set_syndrome_sources() to fill NULL pages if we are in a rmw
    run. The lower layers will calculate start & end pages from that and
    call the xor_syndrome() correspondingly.

    5) Adapt the several places where we ignored Q handling up to now.

    Performance numbers for a single E5630 system with a mix of 10 7200k
    desktop/server disks. 300 seconds random write with 8 threads onto a
    3,2TB (10*400GB) RAID6 64K chunk without spare (group_thread_cnt=4)

    bsize rmw_level=1 rmw_level=0 rmw_level=1 rmw_level=0
    skip_copy=1 skip_copy=1 skip_copy=0 skip_copy=0
    4K 115 KB/s 141 KB/s 165 KB/s 140 KB/s
    8K 225 KB/s 275 KB/s 324 KB/s 274 KB/s
    16K 434 KB/s 536 KB/s 640 KB/s 534 KB/s
    32K 751 KB/s 1,051 KB/s 1,234 KB/s 1,045 KB/s
    64K 1,339 KB/s 1,958 KB/s 2,282 KB/s 1,962 KB/s
    128K 2,673 KB/s 3,862 KB/s 4,113 KB/s 3,898 KB/s
    256K 7,685 KB/s 7,539 KB/s 7,557 KB/s 7,638 KB/s
    512K 19,556 KB/s 19,558 KB/s 19,652 KB/s 19,688 Kb/s

    Signed-off-by: Markus Stockhausen
    Signed-off-by: NeilBrown

    Markus Stockhausen
     
  • v3: s-o-b comment, explanation of performance and descision for
    the start/stop implementation

    Implementing rmw functionality for RAID6 requires optimized syndrome
    calculation. Up to now we can only generate a complete syndrome. The
    target P/Q pages are always overwritten. With this patch we provide
    a framework for inplace P/Q modification. In the first place simply
    fill those functions with NULL values.

    xor_syndrome() has two additional parameters: start & stop. These
    will indicate the first and last page that are changing during a
    rmw run. That makes it possible to avoid several unneccessary loops
    and speed up calculation. The caller needs to implement the following
    logic to make the functions work.

    1) xor_syndrome(disks, start, stop, ...): "Remove" all data of source
    blocks inside P/Q between (and including) start and end.

    2) modify any block with start
    Signed-off-by: NeilBrown

    Markus Stockhausen
     
  • NeilBrown