01 Mar, 2014

3 commits


26 Feb, 2014

2 commits

  • Merge "mvebu new SoCs for v3.15" from Jason Cooper:

    - mvebu
    - initial support for Armada 375, 380, and 385

    Depends:
    - tags/mvebu-soc-3.15 (resolves delete/rename hidden conflict)

    * tag 'mvebu-soc-3xx-3.15' of git://git.infradead.org/linux-mvebu:
    Documentation: arm: update Marvell documentation about Armada 375/38x
    ARM: mvebu: add initial support for the Armada 380/385 SOCs
    ARM: mvebu: add workaround for data abort issue on Armada 375
    ARM: mvebu: add initial support for the Armada 375 SOCs
    ARM: mvebu: add Armada 375 support to the system-controller driver
    ARM: mvebu: make CPU_PJ4B selection a per-SoC choice
    ARM: mvebu: rename DT machine structure for Armada 370/XP
    ARM: mvebu: rename armada-370-xp.c to board-v7.c

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Merge dependency for mvebu-soc-3xx branch from cleanups.

    * mvebu/soc:
    ARM: mvebu: remove unneeded ->map_io field for Armada 370/XP
    ARM: mvebu: make use of of_find_matching_node_and_match
    ARM: mvebu: Makefile clean-up

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

22 Feb, 2014

10 commits

  • This commit updates the documentation that describes the various
    families of SOCs produced by Marvell, together with the corresponding
    available technical documents. It adds Armada 375 and Armada 38x, and
    adds a link to the product brief for the already supported Armada 370.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • This commit adds the basic support for the Armada 380 and Armada 385
    SOCs. These SoCs share most of their IP with the Armada 370/XP
    SoCs. The main difference is the use of a Cortex A9 CPU instead of the
    PJ4B CPU. The Armada 380 is a single core Cortex-A9, while the Armada
    385 is a dual-core Cortex-A9.

    The support is introduced in board-v7.c, together with Armada 370/XP,
    but a separate DT structure is added, because Armada 38x will need a
    different set of SMP operations when the SMP support is introduced.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • Early versions of Armada 375 SoC have a bug where the BootROM leaves
    an external data abort pending. The kernel is hit by this data abort
    as soon as it enters userspace, because it unmasks the data aborts at
    this moment. We register a custom abort handler below to ignore the
    first data abort to work around this problem.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • This commit adds the basic support for the Armada 375 SOCs. These SoCs
    share most of their IP with the Armada 370/XP SoCs. The main
    difference is the use of a Cortex A9 CPU instead of the PJ4B CPU. The
    interrupt controller and the L2 cache controller are also different
    they are respectively the GIC and the PL310.

    The support is introduced in board-v7.c, together with Armada 370/XP,
    but a separate DT structure is added, because Armada 375 will need a
    different set of SMP operations when the SMP support is introduced.

    Signed-off-by: Gregory CLEMENT
    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Gregory CLEMENT
     
  • The system controller block in the Armada 375 has different register
    offsets for the system reset and other related functions. Therefore,
    this commit introduces the new "armada-375-system-controller"
    compatible string to identify the Armada 375 variant of the system
    controller.

    Signed-off-by: Thomas Petazzoni
    Reviewed-by: Gregory CLEMENT
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • Until now, the CPU_PJ4B Kconfig option was selected by
    MACH_ARMADA_MVEBU, i.e for all Armada MVEBU SOCs. In preparation to
    the introduction of Cortex-A9 based Armada MVEBU SOCs, this selection
    is moved down to the Armada 370 and Armada XP specific options.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • Due to a mistake made when merging Armada 370 and Armada XP DT machine
    structures, the name of the structure was incorrectly chosen as being
    ARMADA_XP_DT, while the structure also covers Armada 370. Therefore,
    we rename the structure to ARMADA_370_XP_DT.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • In preparation to the introduction of the support of Armada 375 and
    Armada 38x, this commit renames arch/arm/mach-mvebu/armada-370-xp.c to
    arch/arm/mach-mvebu/board-v7.c. The board-v7.c name as we expect this
    file to ultimately contain the DT_MACHINE_START definitions for all
    ARMv7 Marvell EBU platforms (370, 375, 38x, XP and Dove as of today).

    In relation to this file rename, this commit also:

    * Renames the hidden Kconfig symbol MACH_ARMADA_370_XP to
    MACH_MVEBU_V7. This hidden symbol is selected by the various
    per-SoC visible Kconfig options to trigger the build of board-v7.c.

    * Renames a certain number of functions in board-v7.c so that their
    armada_370_xp prefix is replaced by a mvebu prefix. The .dt_compat
    array keeps its armada_370_xp prefix because the new SOCs will be
    introduced with separate .dt_compat arrays, due to the need for
    different SMP operations.

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Jason Cooper

    Thomas Petazzoni
     
  • mvebu soc changes for v3.15

    - mvebu
    - Makefile cleanup and remove map_io
    - use of_find_matching_node_and_match

    Jason Cooper
     
  • Allows us to probe the performance counters on Krait CPUs.

    Signed-off-by: Stephen Boyd
    Signed-off-by: Will Deacon
    [olof: Moved 8960 contents to the dtsi instead]
    Signed-off-by: Olof Johansson

    Stephen Boyd
     

20 Feb, 2014

1 commit

  • …alak/linux-qcom into next/soc

    Merge "Qualcomm ARM Based SoC Updates for v3.15" from Kumar Gala:

    * Add support for determining smp ops based on device tree.
    * Add DT binding specs for Krait/Scorpion enable method
    * Add DT binding specs for various Krait Processor controller complexes
    * Add SoC SMP support for Krait Processor Subsystem v1 & v2

    * tag 'qcom-soc-for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom:
    ARM: qcom: Add SMP support for KPSSv2
    ARM: qcom: Add SMP support for KPSSv1
    devicetree: bindings: Document qcom,saw2 node
    devicetree: bindings: Document qcom,kpss-acc
    devicetree: bindings: Document Krait/Scorpion cpus and enable-method
    ARM: qcom: Re-organize platsmp to make it extensible
    ARM: Introduce CPU_METHOD_OF_DECLARE() for cpu hotplug/smp
    ARM: qcom: Rename various msm prefixed functions to qcom
    clocksource: qcom: split building of legacy vs multiplatform support
    ARM: qcom: Split Qualcomm support into legacy and multiplatform
    clocksource: qcom: Move clocksource code out of mach-msm
    ARM: msm: kill off hotplug.c
    ARM: msm: Remove pen_release usage
    ARM: dts: msm: split out msm8660 and msm8960 soc into dts include

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

17 Feb, 2014

3 commits

  • Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "We have a small collection of fixes in my for-linus branch.

    The big thing that stands out is a revert of a new ioctl. Users
    haven't shipped yet in btrfs-progs, and Dave Sterba found a better way
    to export the information"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: use right clone root offset for compressed extents
    btrfs: fix null pointer deference at btrfs_sysfs_add_one+0x105
    Btrfs: unset DCACHE_DISCONNECTED when mounting default subvol
    Btrfs: fix max_inline mount option
    Btrfs: fix a lockdep warning when cleaning up aborted transaction
    Revert "btrfs: add ioctl to export size of global metadata reservation"

    Linus Torvalds
     
  • Pull devicetree fixes from Rob Herring:
    "Fix booting on PPC boards. Changes to of_match_node matching caused
    the serial port on some PPC boards to stop working. Reverted the
    change and reimplement to split matching between new style compatible
    only matching and fallback to old matching algorithm"

    * tag 'dt-fixes-for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    of: search the best compatible match first in __of_match_node()
    Revert "OF: base: match each node compatible against all given matches first"

    Linus Torvalds
     

16 Feb, 2014

12 commits

  • Currently, of_match_node compares each given match against all node's
    compatible strings with of_device_is_compatible.

    To achieve multiple compatible strings per node with ordering from
    specific to generic, this requires given matches to be ordered from
    specific to generic. For most of the drivers this is not true and also
    an alphabetical ordering is more sane there.

    Therefore, this patch introduces a function to match each of the node's
    compatible strings against all given compatible matches without type and
    name first, before checking the next compatible string. This implies
    that node's compatibles are ordered from specific to generic while
    given matches can be in any order. If we fail to find such a match
    entry, then fall-back to the old method in order to keep compatibility.

    Cc: Sebastian Hesselbarth
    Signed-off-by: Kevin Hao
    Tested-by: Stephen Chivers
    Signed-off-by: Rob Herring

    Kevin Hao
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "Mostly minor fixes this time to v3.14-rc1 related changes. Also
    included is one fix for a free after use regression in persistent
    reservations UNREGISTER logic that is CC'ed to >= v3.11.y stable"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    Target/sbc: Fix protection copy routine
    IB/srpt: replace strict_strtoul() with kstrtoul()
    target: Simplify command completion by removing CMD_T_FAILED flag
    iser-target: Fix leak on failure in isert_conn_create_fastreg_pool
    iscsi-target: Fix SNACK Type 1 + BegRun=0 handling
    target: Fix missing length check in spc_emulate_evpd_83()
    qla2xxx: Remove last vestiges of qla_tgt_cmd.cmd_list
    target: Fix 32-bit + CONFIG_LBDAF=n link error w/ sector_div
    target: Fix free-after-use regression in PR unregister

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "i2c has a bugfix and documentation improvements for you"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    Documentation: i2c: mention ACPI method for instantiating devices
    Documentation: i2c: describe devicetree method for instantiating devices
    i2c: mv64xxx: refactor message start to ensure proper initialization

    Linus Torvalds
     
  • …el.org/pub/scm/linux/kernel/git/tip/tip

    Pull irq update from Thomas Gleixner:
    "Fix from the urgent branch: a trivial oneliner adding the missing
    Kconfig dependency curing build failures which have been discovered by
    several build robots.

    The update in the irq-core branch provides a new function in the
    irq/devres code, which is a prerequisite for driver developers to get
    rid of boilerplate code all over the place.

    Not a bugfix, but it has zero impact on the current kernel due to the
    lack of users. It's simpler to provide the infrastructure to
    interested parties via your tree than fulfilling the wishlist of
    driver maintainers on which particular commit or tag this should be
    based on"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    genirq: Add missing irq_to_desc export for CONFIG_SPARSE_IRQ=n

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    genirq: Add devm_request_any_context_irq()

    Linus Torvalds
     
  • Pull timer fixes from Thomas Gleixner:
    "The following trilogy of patches brings you:

    - fix for a long standing math overflow issue with HZ < 60

    - an onliner fix for a corner case in the dreaded tick broadcast
    mechanism affecting a certain range of AMD machines which are
    infested with the infamous automagic C1E power control misfeature

    - a fix for one of the ARM platforms which allows the kernel to
    proceed and boot instead of stupidly panicing for no good reason.
    The patch is slightly larger than necessary, but it's less ugly
    than the alternative 5 liner"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    tick: Clear broadcast pending bit when switching to oneshot
    clocksource: Kona: Print warning rather than panic
    time: Fix overflow when HZ is smaller than 60

    Linus Torvalds
     
  • …it/rostedt/linux-trace

    Pull twi tracing fixes from Steven Rostedt:
    "Two urgent fixes in the tracing utility.

    The first is a fix for the way the ring buffer stores timestamps.
    After a restructure of the code was done, the ring buffer timestamp
    logic missed the fact that the first event on a sub buffer is to have
    a zero delta, as the full timestamp is stored on the sub buffer
    itself. But because the delta was not cleared to zero, the timestamp
    for that event will be calculated as the real timestamp + the delta
    from the last timestamp. This can skew the timestamps of the events
    and have them say they happened when they didn't really happen.
    That's bad.

    The second fix is for modifying the function graph caller site. When
    the stop machine was removed from updating the function tracing code,
    it missed updating the function graph call site location. It is still
    modified as if it is being done via stop machine. But it's not. This
    can lead to a GPF and kernel crash if the function graph call site
    happens to lie between cache lines and one CPU is executing it while
    another CPU is doing the update. It would be a very hard condition to
    hit, but the result is severe enough to have it fixed ASAP"

    * tag 'trace-fixes-v3.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftrace/x86: Use breakpoints for converting function graph caller
    ring-buffer: Fix first commit on sub-buffer having non-zero delta

    Linus Torvalds
     
  • Pull x86 EFI fixes from Peter Anvin:
    "A few more EFI-related fixes"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/efi: Check status field to validate BGRT header
    x86/efi: Fix 32-bit fallout

    Linus Torvalds
     
  • Pull ARM SoC fixes from Kevin Hilman:
    "A collection of ARM SoC fixes for v3.14-rc1.

    Mostly a collection of Kconfig, device tree data and compilation fixes
    along with fix to drivers/phy that fixes a boot regression on some
    Marvell mvebu platforms"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    dma: mv_xor: Silence a bunch of LPAE-related warnings
    ARM: ux500: disable msp2 device tree node
    ARM: zynq: Reserve not DMAable space in front of the kernel
    ARM: multi_v7_defconfig: Select CONFIG_SOC_DRA7XX
    ARM: imx6: Initialize low-power mode early again
    ARM: pxa: fix various compilation problems
    ARM: pxa: fix compilation problem on AM300EPD board
    ARM: at91: add Atmel's SAMA5D3 Xplained board
    spi/atmel: document clock properties
    mmc: atmel-mci: document clock properties
    ARM: at91: enable USB host on at91sam9n12ek board
    ARM: at91/dt: fix sama5d3 ohci hclk clock reference
    ARM: at91/dt: sam9263: fix compatibility string for the I2C
    ata: sata_mv: Fix probe failures with optional phys
    drivers: phy: Add support for optional phys
    drivers: phy: Make NULL a valid phy reference
    ARM: fix HAVE_ARM_TWD selection for OMAP and shmobile
    ARM: moxart: move DMA_OF selection to driver
    ARM: hisi: fix kconfig warning on HAVE_ARM_TWD

    Linus Torvalds
     
  • Signed-off-by: Wolfram Sang
    Acked-by: Guenter Roeck

    Wolfram Sang
     
  • Signed-off-by: Wolfram Sang

    Wolfram Sang
     
  • For non compressed extents, iterate_extent_inodes() gives us offsets
    that take into account the data offset from the file extent items, while
    for compressed extents it doesn't. Therefore we have to adjust them before
    placing them in a send clone instruction. Not doing this adjustment leads to
    the receiving end requesting for a wrong a file range to the clone ioctl,
    which results in different file content from the one in the original send
    root.

    Issue reproducible with the following excerpt from the test I made for
    xfstests:

    _scratch_mkfs
    _scratch_mount "-o compress-force=lzo"

    $XFS_IO_PROG -f -c "truncate 118811" $SCRATCH_MNT/foo
    $XFS_IO_PROG -c "pwrite -S 0x0d -b 39987 92267 39987" $SCRATCH_MNT/foo

    $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap1

    $XFS_IO_PROG -c "pwrite -S 0x3e -b 80000 200000 80000" $SCRATCH_MNT/foo
    $BTRFS_UTIL_PROG filesystem sync $SCRATCH_MNT
    $XFS_IO_PROG -c "pwrite -S 0xdc -b 10000 250000 10000" $SCRATCH_MNT/foo
    $XFS_IO_PROG -c "pwrite -S 0xff -b 10000 300000 10000" $SCRATCH_MNT/foo

    # will be used for incremental send to be able to issue clone operations
    $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/clones_snap

    $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap2

    $FSSUM_PROG -A -f -w $tmp/1.fssum $SCRATCH_MNT/mysnap1
    $FSSUM_PROG -A -f -w $tmp/2.fssum -x $SCRATCH_MNT/mysnap2/mysnap1 \
    -x $SCRATCH_MNT/mysnap2/clones_snap $SCRATCH_MNT/mysnap2
    $FSSUM_PROG -A -f -w $tmp/clones.fssum $SCRATCH_MNT/clones_snap \
    -x $SCRATCH_MNT/clones_snap/mysnap1 -x $SCRATCH_MNT/clones_snap/mysnap2

    $BTRFS_UTIL_PROG send $SCRATCH_MNT/mysnap1 -f $tmp/1.snap
    $BTRFS_UTIL_PROG send $SCRATCH_MNT/clones_snap -f $tmp/clones.snap
    $BTRFS_UTIL_PROG send -p $SCRATCH_MNT/mysnap1 \
    -c $SCRATCH_MNT/clones_snap $SCRATCH_MNT/mysnap2 -f $tmp/2.snap

    _scratch_unmount
    _scratch_mkfs
    _scratch_mount

    $BTRFS_UTIL_PROG receive $SCRATCH_MNT -f $tmp/1.snap
    $FSSUM_PROG -r $tmp/1.fssum $SCRATCH_MNT/mysnap1 2>> $seqres.full

    $BTRFS_UTIL_PROG receive $SCRATCH_MNT -f $tmp/clones.snap
    $FSSUM_PROG -r $tmp/clones.fssum $SCRATCH_MNT/clones_snap 2>> $seqres.full

    $BTRFS_UTIL_PROG receive $SCRATCH_MNT -f $tmp/2.snap
    $FSSUM_PROG -r $tmp/2.fssum $SCRATCH_MNT/mysnap2 2>> $seqres.full

    Signed-off-by: Filipe David Borba Manana
    Signed-off-by: Chris Mason

    Filipe David Borba Manana
     
  • bdev is null when disk has disappeared and mounted with
    the degrade option

    stack trace
    ---------
    btrfs_sysfs_add_one+0x105/0x1c0 [btrfs]
    open_ctree+0x15f3/0x1fe0 [btrfs]
    btrfs_mount+0x5db/0x790 [btrfs]
    ? alloc_pages_current+0xa4/0x160
    mount_fs+0x34/0x1b0
    vfs_kern_mount+0x62/0xf0
    do_mount+0x22e/0xa80
    ? __get_free_pages+0x9/0x40
    ? copy_mount_options+0x31/0x170
    SyS_mount+0x7e/0xc0
    system_call_fastpath+0x16/0x1b
    ---------

    reproducer:
    -------
    mkfs.btrfs -draid1 -mraid1 /dev/sdc /dev/sdd
    (detach a disk)
    devmgt detach /dev/sdc [1]
    mount -o degrade /dev/sdd /btrfs
    -------

    [1] github.com/anajain/devmgt.git

    Signed-off-by: Anand Jain
    Tested-by: Hidetoshi Seto
    Signed-off-by: Chris Mason

    Anand Jain
     

15 Feb, 2014

9 commits

  • Because the offload mechanism can fall back to a standard transfer,
    having two seperate initialization states is unfortunate. Let's just
    have one state which does things consistently. This fixes a bug where
    some preparation was missing when the fallback happened. And it makes
    the code much easier to follow. To implement this, we put the check
    if offload is possible at the top of the offload setup function.

    Signed-off-by: Wolfram Sang
    Tested-by: Gregory CLEMENT
    Cc: stable@vger.kernel.org # v3.12+
    Fixes: 930ab3d403ae (i2c: mv64xxx: Add I2C Transaction Generator support)

    Wolfram Sang
     
  • Pull USB fixes from Greg KH:
    "Here is a bunch of USB fixes for 3.14-rc3. Most of these are xhci
    reverts, fixing a bunch of reported issues with USB 3 host controller
    issues that loads of people have been hitting (with the exception of
    kernel developers, all of our machines seem to be working fine, which
    is why these took so long to get resolved...)

    There are some other minor fixes and new device ids, as ususal. All
    have been in linux-next successfully"

    * tag 'usb-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (22 commits)
    usb: option: blacklist ZTE MF667 net interface
    Revert "usb: xhci: Link TRB must not occur within a USB payload burst"
    Revert "xhci: Avoid infinite loop when sg urb requires too many trbs"
    Revert "xhci: Set scatter-gather limit to avoid failed block writes."
    xhci 1.0: Limit arbitrarily-aligned scatter gather.
    Modpost: fixed USB alias generation for ranges including 0x9 and 0xA
    usb: core: Fix potential memory leak adding dyn USBdevice IDs
    USB: ftdi_sio: add Tagsys RFID Reader IDs
    usb: qcserial: add Netgear Aircard 340U
    usb-storage: enable multi-LUN scanning when needed
    USB: simple: add Dynastream ANT USB-m Stick device support
    usb-storage: add unusual-devs entry for BlackBerry 9000
    usb-storage: restrict bcdDevice range for Super Top in Cypress ATACB
    usb: phy: move some error messages to debug
    usb: ftdi_sio: add Mindstorms EV3 console adapter
    usb: dwc2: fix memory corruption in dwc2 driver
    usb: dwc2: fix role switch breakage
    usb: dwc2: bail out early when booting with "nousb"
    Revert "xhci: replace xhci_read_64() with readq()"
    Revert "xhci: replace xhci_write_64() with writeq()"
    ...

    Linus Torvalds
     
  • Pull tty/serial driver fixes from Greg KH:
    "Here are a small number of tty/serial driver fixes to resolve reported
    issues with 3.14-rc and earlier (in the case of the vt bugfix). Some
    of these have been tested and reported by a number of people as the
    tty bugfix was pretty commonly hit on some platforms.

    All have been in linux-next for a while"

    * tag 'tty-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    vt: Fix secure clear screen
    serial: 8250: Support XR17V35x fraction divisor
    n_tty: Fix stale echo output
    serial: sirf: fix kernel panic caused by unpaired spinlock
    serial: 8250_pci: unbreak last serial ports on NetMos 9865 cards
    n_tty: Fix poll() when TIME_CHAR and MIN_CHAR == 0
    serial: omap: fix rs485 probe on defered pinctrl
    serial: 8250_dw: fix compilation warning when !CONFIG_PM_SLEEP
    serial: omap-serial: Move info message to probe function
    tty: Set correct tty name in 'active' sysfs attribute
    tty: n_gsm: Fix for modems with brk in modem status control
    drivers/tty/hvc: don't use module_init in non-modular hyp. console code

    Linus Torvalds
     
  • Pull staging driver fixes from Greg KH:
    "Here are a number (lots, I know) of fixes for staging drivers to
    resolve a bunch of reported issues.

    The largest patches here is one revert of a patch that is in 3.14-rc1
    to fix reported problems, and a sync of a usb host driver that
    required some ARM patches to go in before it could be accepted (which
    is why it missed -rc1)

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'staging-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (56 commits)
    staging/rtl8821ae: fix build, depends on MAC80211
    iio: max1363: Use devm_regulator_get_optional for optional regulator
    iio:accel:bma180: Use modifier instead of index in channel specification
    iio: adis16400: Set timestamp as the last element in chan_spec
    iio: ak8975: Fix calculation formula for convert micro tesla to gauss unit
    staging:iio:ad799x fix typo in ad799x_events[]
    iio: mxs-lradc: remove useless scale_available files
    iio: mxs-lradc: fix buffer overflow
    iio:magnetometer:mag3110: Fix output of decimal digits in show_int_plus_micros()
    iio:magnetometer:mag3110: Report busy in _read_raw() / write_raw() when buffer is enabled
    wlags49_h2: Fix overflow in wireless_set_essid()
    xlr_net: Fix missing trivial allocation check
    staging: r8188eu: overflow in rtw_p2p_get_go_device_address()
    staging: r8188eu: array overflow in rtw_mp_ioctl_hdl()
    staging: r8188eu: Fix typo in USB_DEVICE list
    usbip/userspace/libsrc/names.c: memory leak
    gpu: ion: dereferencing an ERR_PTR
    staging: comedi: usbduxsigma: fix unaligned dereferences
    staging: comedi: fix too early cleanup in comedi_auto_config()
    staging: android: ion: dummy: fix an error code
    ...

    Linus Torvalds
     
  • Pull driver core fix from Greg KH:
    "Here is a single driver core patch for 3.14-rc3 for the component code
    that Russell has found and fixed"

    * tag 'driver-core-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    drivers/base: fix devres handling for master device

    Linus Torvalds
     
  • Pull char/misc fixes from Greg KH:
    "Here are some small char/misc driver fixes, along with some
    documentation updates, for 3.14-rc3. Nothing major, just a number of
    fixes for reported issues"

    * tag 'char-misc-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    Revert "misc: eeprom: sunxi: Add new compatibles"
    Revert "ARM: sunxi: dt: Convert to the new SID compatibles"
    misc: mic: fix possible signed underflow (undefined behavior) in userspace API
    ARM: sunxi: dt: Convert to the new SID compatibles
    misc: eeprom: sunxi: Add new compatibles
    misc: genwqe: Fix potential memory leak when pinning memory
    Documentation:Update Documentation/zh_CN/arm64/memory.txt
    Documentation:Update Documentation/zh_CN/arm64/booting.txt
    Documentation:Chinese translation of Documentation/arm64/tagged-pointers.txt
    raw: set range for MAX_RAW_DEVS
    raw: test against runtime value of max_raw_minors
    Drivers: hv: vmbus: Don't timeout during the initial connection with host
    Drivers: hv: vmbus: Specify the target CPU that should receive notification
    VME: Correct read/write alignment algorithm
    mei: don't unset read cb ptr on reset
    mei: clear write cb from waiting list on reset

    Linus Torvalds
     
  • A user was running into errors from an NFS export of a subvolume that had a
    default subvol set. When we mount a default subvol we will use d_obtain_alias()
    to find an existing dentry for the subvolume in the case that the root subvol
    has already been mounted, or a dummy one is allocated in the case that the root
    subvol has not already been mounted. This allows us to connect the dentry later
    on if we wander into the path. However if we don't ever wander into the path we
    will keep DCACHE_DISCONNECTED set for a long time, which angers NFS. It doesn't
    appear to cause any problems but it is annoying nonetheless, so simply unset
    DCACHE_DISCONNECTED in the get_default_root case and switch btrfs_lookup() to
    use d_materialise_unique() instead which will make everything play nicely
    together and reconnect stuff if we wander into the defaul subvol path from a
    different way. With this patch I'm no longer getting the NFS errors when
    exporting a volume that has been mounted with a default subvol set. Thanks,

    cc: bfields@fieldses.org
    cc: ebiederm@xmission.com
    Signed-off-by: Josef Bacik
    Acked-by: "Eric W. Biederman"
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • Currently, the only mount option for max_inline that has any effect is
    max_inline=0. Any other value that is supplied to max_inline will be
    adjusted to a minimum of 4k. Since max_inline has an effective maximum
    of ~3900 bytes due to page size limitations, the current behaviour
    only has meaning for max_inline=0.

    This patch will allow the the max_inline mount option to accept non-zero
    values as indicated in the documentation.

    Signed-off-by: Mitch Harder
    Signed-off-by: Chris Mason

    Mitch Harder
     
  • Given now we have 2 spinlock for management of delayed refs,
    CONFIG_DEBUG_SPINLOCK=y helped me find this,

    [ 4723.413809] BUG: spinlock wrong CPU on CPU#1, btrfs-transacti/2258
    [ 4723.414882] lock: 0xffff880048377670, .magic: dead4ead, .owner: btrfs-transacti/2258, .owner_cpu: 2
    [ 4723.417146] CPU: 1 PID: 2258 Comm: btrfs-transacti Tainted: G W O 3.12.0+ #4
    [ 4723.421321] Call Trace:
    [ 4723.421872] [] dump_stack+0x54/0x74
    [ 4723.422753] [] spin_dump+0x8c/0x91
    [ 4723.424979] [] spin_bug+0x21/0x26
    [ 4723.425846] [] do_raw_spin_unlock+0x66/0x90
    [ 4723.434424] [] _raw_spin_unlock+0x27/0x40
    [ 4723.438747] [] btrfs_cleanup_one_transaction+0x35e/0x710 [btrfs]
    [ 4723.443321] [] btrfs_cleanup_transaction+0x104/0x570 [btrfs]
    [ 4723.444692] [] ? trace_hardirqs_on_caller+0xfd/0x1c0
    [ 4723.450336] [] ? trace_hardirqs_on+0xd/0x10
    [ 4723.451332] [] transaction_kthread+0x22e/0x270 [btrfs]
    [ 4723.452543] [] ? btrfs_cleanup_transaction+0x570/0x570 [btrfs]
    [ 4723.457833] [] kthread+0xea/0xf0
    [ 4723.458990] [] ? kthread_create_on_node+0x140/0x140
    [ 4723.460133] [] ret_from_fork+0x7c/0xb0
    [ 4723.460865] [] ? kthread_create_on_node+0x140/0x140
    [ 4723.496521] ------------[ cut here ]------------

    ----------------------------------------------------------------------

    The reason is that we get to call cond_resched_lock(&head_ref->lock) while
    still holding @delayed_refs->lock.

    So it's different with __btrfs_run_delayed_refs(), where we do drop-acquire
    dance before and after actually processing delayed refs.

    Here we don't drop the lock, others are not able to add new delayed refs to
    head_ref, so cond_resched_lock(&head_ref->lock) is not necessary here.

    Signed-off-by: Liu Bo
    Signed-off-by: Chris Mason

    Liu Bo