1. 18 Feb, 2014 2 commits
    • Ard Biesheuvel's avatar
      cpu: add generic support for CPU feature based module autoloading · 67bad2fd
      Ard Biesheuvel authored
      This patch adds support for advertising optional CPU features over udev
      using the modalias, and for declaring compatibility with/dependency upon
      such a feature in a module.
      
      The mapping between feature numbers and actual features should be provided
      by the architecture in a file called <asm/cpufeature.h> which exports the
      following functions/macros:
      - cpu_feature(FEAT), a preprocessor macro that maps token FEAT to a
        numeric index;
      - bool cpu_have_feature(n), returning whether this CPU has support for
        feature #n;
      - MAX_CPU_FEATURES, an upper bound for 'n' in the previous function.
      
      The feature can then be enabled by setting CONFIG_GENERIC_CPU_AUTOPROBE
      for the architecture.
      
      For instance, a module that registers its module init function using
      
        module_cpu_feature_match(FEAT_X, module_init_function)
      
      will be probed automatically when the CPU's support for the 'FEAT_X'
      feature is advertised over udev, and will only allow the module to be
      loaded by hand if the 'FEAT_X' feature is supported.
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      67bad2fd
    • Greg Kroah-Hartman's avatar
      Merge 3.14-rc3 into driver-core-next · 91219a3b
      Greg Kroah-Hartman authored
      We want those fixes here for testing and development.
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      91219a3b
  2. 16 Feb, 2014 8 commits
    • Linus Torvalds's avatar
      Linux 3.14-rc3 · 6d0abeca
      Linus Torvalds authored
      6d0abeca
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 3962dfbe
      Linus Torvalds authored
      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"
      3962dfbe
    • Linus Torvalds's avatar
      Merge tag 'dt-fixes-for-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 4302a875
      Linus Torvalds authored
      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"
      4302a875
    • Kevin Hao's avatar
      of: search the best compatible match first in __of_match_node() · 06b29e76
      Kevin Hao authored
      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 <sebastian.hesselbarth@gmail.com>
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Tested-by: default avatarStephen Chivers <schivers@csc.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      06b29e76
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 946dd683
      Linus Torvalds authored
      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
      946dd683
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 2d0ef4fb
      Linus Torvalds authored
      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
      2d0ef4fb
    • Linus Torvalds's avatar
      Merge branches 'irq-urgent-for-linus' and 'irq-core-for-linus' of... · 5a667a0c
      Linus Torvalds authored
      Merge branches 'irq-urgent-for-linus' and 'irq-core-for-linus' of git://git.kernel.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()
      5a667a0c
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3a19c07c
      Linus Torvalds authored
      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
      3a19c07c
  3. 15 Feb, 2014 19 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v3.14-rc2' of... · 9bd01b9b
      Linus Torvalds authored
      Merge tag 'trace-fixes-v3.14-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/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
      9bd01b9b
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7fc92804
      Linus Torvalds authored
      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
      7fc92804
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 83660b73
      Linus Torvalds authored
      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
      83660b73
    • Cody P Schafer's avatar
      sysfs: create bin_attributes under the requested group · aabaf4c2
      Cody P Schafer authored
      bin_attributes created/updated in create_files() (such as those listed
      via (struct device).attribute_groups) were not placed under the
      specified group, and instead appeared in the base kobj directory.
      
      Fix this by making bin_attributes use creating code similar to normal
      attributes.
      
      A quick grep shows that no one is using bin_attrs in a named attribute
      group yet, so we can do this without breaking anything in usespace.
      
      Note that I do not add is_visible() support to
      bin_attributes, though that could be done as well.
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      aabaf4c2
    • Jiang Liu's avatar
      driver core: unexport static function create_syslog_header · 5c764dfa
      Jiang Liu authored
      Function create_syslog_header() is defined as static, so it should
      not be exported.
      Signed-off-by: default avatarJiang Liu <jiang.liu@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5c764dfa
    • Shaibal Dutta's avatar
      firmware: use power efficient workqueue for unloading and aborting fw load · bce6618a
      Shaibal Dutta authored
      Allow the scheduler to select the most appropriate CPU for running the
      firmware load timeout routine and delayed routine for firmware unload.
      This extends idle residency times and conserves power.
      
      This functionality is enabled when CONFIG_WQ_POWER_EFFICIENT is selected.
      
      Cc: Ming Lei <ming.lei@canonical.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarShaibal Dutta <shaibal.dutta@broadcom.com>
      [zoran.markovic@linaro.org: Rebased to latest kernel, added commit message.
      Fixed code alignment.]
      Signed-off-by: default avatarZoran Markovic <zoran.markovic@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bce6618a
    • zhang jun's avatar
      firmware: give a protection when map page failed · 2b1278cb
      zhang jun authored
      so, we need give a protection and return a error value.
      [ 7341.474236] [drm:do_intel_finish_page_flip] *ERROR* invalid or inactive unpin_work!
      [ 7341.494464] atomisp-css2400b0_v21 0000:00:03.0: unhandled css stored event: 0x20
      [ 7341.503627] vmap allocation for size 208896 failed: use vmalloc=<size> to increase size.<=================== map failed
      [ 7341.507135] [drm:do_intel_finish_page_flip] *ERROR* invalid or inactive unpin_work!
      [ 7341.503848] BUG: unable to handle kernel NULL pointer dereference at   (null)
      [ 7341.520394] IP: [<c18f5c1b>] sst_load_all_modules_elf+0x1bb/0x850
      [ 7341.527216] *pdpt = 0000000030dfe001 *pde = 0000000000000000
      [ 7341.533640] Oops: 0000 [#1] PREEMPT SMP
      [ 7341.540360] [drm:do_intel_finish_page_flip] *ERROR* invalid or inactive unpin_work!
      [ 7341.538037] Modules linked in: atomisp_css2400b0_v21 lm3554 ov2722 imx1x5 atmel_mxt_ts vxd392 videobuf_vmalloc videobuf_core lm_dump(O) bcm_bt_lpm hdmi_audio bcm4334x(O)
      [ 7341.563531] CPU: 1 PID: 525 Comm: mediaserver Tainted: G        W  O 3.10.20-262518-ga83c053 #1
      [ 7341.573253] task: f0994ec0 ti: f09f0000 task.ti: f09f0000
      [ 7341.579284] EIP: 0060:[<c18f5c1b>] EFLAGS: 00010246 CPU: 1
      [ 7341.585415] EIP is at sst_load_all_modules_elf+0x1bb/0x850
      [ 7341.591541] EAX: 00000000 EBX: e3595ba0 ECX: 00000000 EDX: 00031c1c
      [ 7341.598541] ESI: e04a0000 EDI: 00000000 EBP: f09f1d80 ESP: f09f1cf4
      [ 7341.605542]  DS: 007b ES: 007b FS: 00d8 GS: 003b SS: 0068
      [ 7341.611573] CR0: 80050033 CR2: 00000000 CR3: 30db4000 CR4: 001007f0
      [ 7341.618573] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      [ 7341.625575] DR6: ffff0ff0 DR7: 00000400
      [ 7341.629856] Stack:
      [ 7341.632097]  f09f1d57 00000019 c1d656d7 c1d658d3 c1d56409 00000f28 c1d64af9 18000103
      [ 7341.640766]  01000001 00080000 c1f910a0 f326f4c8 00000034 f326f520 00000002 e04a02bc
      [ 7341.649465]  00000001 f326e014 c1f910b0 e04a0000 c0080100 00031c1c e3595ba0 c0080100
      [ 7341.658149] Call Trace:
      [ 7341.660888]  [<c18f6308>] sst_post_download_byt+0x58/0xb0
      [ 7341.666925]  [<c18f4fbc>] sst_load_fw+0xdc/0x510
      [ 7341.672086]  [<c1a7b2c0>] ? __mutex_lock_slowpath+0x250/0x370
      [ 7341.678507]  [<c1a80e05>] ? sub_preempt_count+0x55/0xe0
      [ 7341.684346]  [<c18f1294>] sst_download_fw+0x14/0x60
      [ 7341.689796]  [<c1a7b403>] ? mutex_lock+0x23/0x30
      [ 7341.694954]  [<c18f191c>] intel_sst_check_device+0x6c/0x120
      [ 7341.701181]  [<c18f1d08>] sst_set_generic_params+0x1b8/0x4a0
      [ 7341.707504]  [<c1a80e05>] ? sub_preempt_count+0x55/0xe0
      [ 7341.713341]  [<c1a80e05>] ? sub_preempt_count+0x55/0xe0
      [ 7341.719178]  [<c1a7b2c0>] ? __mutex_lock_slowpath+0x250/0x370
      [ 7341.725600]  [<c1320d84>] ? __kmalloc_track_caller+0xe4/0x1d0
      [ 7341.732022]  [<c18e35f5>] sst_set_mixer_param+0x25/0x40
      [ 7341.737859]  [<c18e3853>] lpe_mixer_ihf_set+0xb3/0x160
      [ 7341.743602]  [<c1855b99>] snd_ctl_ioctl+0xa89/0xb40
      [ 7341.749052]  [<c1331e65>] ? path_openat+0xa5/0x3d0
      [ 7341.754409]  [<c1447857>] ? avc_has_perm_flags+0xc7/0x170
      [ 7341.760441]  [<c1855110>] ? snd_ctl_elem_add_user+0x540/0x540
      [ 7341.766862]  [<c1334047>] do_vfs_ioctl+0x77/0x5e0
      [ 7341.772117]  [<c144842a>] ? inode_has_perm.isra.42.constprop.79+0x3a/0x50
      [ 7341.779705]  [<c14490a0>] ? file_has_perm+0xa0/0xb0
      [ 7341.785155]  [<c14493b8>] ? selinux_file_ioctl+0x48/0xe0
      [ 7341.791090]  [<c1334628>] SyS_ioctl+0x78/0x90
      [ 7341.795958]  [<c1a7dde8>] syscall_call+0x7/0xb
      [ 7341.800925]  [<c1a70000>] ? mm_fault_error+0x13c/0x198
      Signed-off-by: default avatarzhang jun <jun.zhang@intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2b1278cb
    • Michel Lespinasse's avatar
      firmware: google memconsole driver fixes · cb887591
      Michel Lespinasse authored
      The google memconsole driver is currently broken upstream, as it tries
      to read memory that is described as reserved in /proc/iomem, by
      dereferencing a pointer obtained through phys_to_virt(). This triggers
      a kernel fault as such regions are unmapped after early boot.
      
      The proper workaround is to use ioremap_cache() / iounmap() around such
      accesses.
      
      As some unrelated changes, I also converted some printks to use pr_info()
      and added some missing __init annotations.
      
      Tested: booted dbg build, verified I could read /sys/firmware/log
      Signed-off-by: default avatarMichel Lespinasse <walken@google.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cb887591
    • Michel Lespinasse's avatar
      firmware: fix google/gsmi duplicate efivars_sysfs_init() · b12b73f1
      Michel Lespinasse authored
      Starting in commit e14ab23d,
      efivars_sysfs_init() is called both by itself as an init function,
      and by drivers/firmware/google/gsmi.c gsmi_init().
      
      This results in runtime warnings such as the following:
      [    5.651330] WARNING: at fs/sysfs/dir.c:530 sysfs_add_one+0xbd/0xe0()
      [    5.657699] sysfs: cannot create duplicate filename '/firmware/gsmi/vars'
      
      Fixing this by removing the redundant efivars_sysfs_init() call in
      gsmi_init().
      
      Tested: booted, checked that /firmware/gsmi/vars was still present and
      showed the expected contents.
      Signed-off-by: default avatarMichel Lespinasse <walken@google.com>
      Acked-by: default avatarMatt Fleming <matt.fleming@intel.com>
      Acked-by: default avatarMike Waychison <mikew@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b12b73f1
    • Wolfram Sang's avatar
    • Wolfram Sang's avatar
    • Filipe David Borba Manana's avatar
      Btrfs: use right clone root offset for compressed extents · 93de4ba8
      Filipe David Borba Manana authored
      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: default avatarFilipe David Borba Manana <fdmanana@gmail.com>
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      93de4ba8
    • Anand Jain's avatar
      btrfs: fix null pointer deference at btrfs_sysfs_add_one+0x105 · f085381e
      Anand Jain authored
      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: default avatarAnand Jain <Anand.Jain@oracle.com>
      Tested-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      f085381e
    • Wolfram Sang's avatar
      i2c: mv64xxx: refactor message start to ensure proper initialization · 79970db2
      Wolfram Sang authored
      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: default avatarWolfram Sang <wsa@the-dreams.de>
      Tested-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Cc: stable@vger.kernel.org # v3.12+
      Fixes: 930ab3d4 (i2c: mv64xxx: Add I2C Transaction Generator support)
      79970db2
    • Linus Torvalds's avatar
      Merge tag 'usb-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · ca033390
      Linus Torvalds authored
      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()"
        ...
      ca033390
    • Linus Torvalds's avatar
      Merge tag 'tty-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 40a215fb
      Linus Torvalds authored
      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
      40a215fb
    • Linus Torvalds's avatar
      Merge tag 'staging-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · e2e481d6
      Linus Torvalds authored
      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
        ...
      e2e481d6
    • Linus Torvalds's avatar
      Merge tag 'driver-core-3.14-rc3' of... · ad07f124
      Linus Torvalds authored
      Merge tag 'driver-core-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
      
      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
      ad07f124
    • Linus Torvalds's avatar
      Merge tag 'char-misc-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · bb0a05d7
      Linus Torvalds authored
      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
      bb0a05d7
  4. 14 Feb, 2014 11 commits
    • Paul Gortmaker's avatar
      drivers/base: delete non-required instances of include <linux/init.h> · 4272b961
      Paul Gortmaker authored
      None of these files are actually using any __init type directives
      and hence don't need to include <linux/init.h>.  Most are just a
      left over from __devinit and __cpuinit removal, or simply due to
      code getting copied from one driver to the next.
      
      Cc: Len Brown <len.brown@intel.com>
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: default avatarPavel Machek <pavel@ucw.cz>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarMark Brown <broonie@linaro.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4272b961
    • Li Zefan's avatar
      kernfs: fix kernfs_node_from_dentry() · f41c5934
      Li Zefan authored
      Currently kernfs_node_from_dentry() returns NULL for root dentry,
      because root_dentry->d_op == NULL.
      
      Due to this bug cgroupstats_build() returns -EINVAL for root cgroup.
      
        # mount -t cgroup -o cpuacct /cgroup
        # Documentation/accounting/getdelays -C /cgroup
        fatal reply error,  errno -22
      
      With this fix:
      
        # Documentation/accounting/getdelays -C /cgroup
        sleeping 305, blocked 0, running 1, stopped 0, uninterruptible 1
      Signed-off-by: default avatarLi Zefan <lizefan@huawei.com>
      Acked-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f41c5934
    • Josh Cartwright's avatar
      ACPI / platform: drop redundant ACPI_HANDLE check · 9383f4c6
      Josh Cartwright authored
      The acpi_dev_pm_attach/_detach functions perform their own checks to
      ensure the device has an ACPI companion.  It is not necessary for the
      caller to do so.
      
      This mirrors what other busses with ACPI dev PM support do (i2c, spi,
      sdio).
      
      Cc: Len Brown <lenb@kernel.org>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarJosh Cartwright <joshc@codeaurora.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9383f4c6
    • Josef Bacik's avatar
      Btrfs: unset DCACHE_DISCONNECTED when mounting default subvol · 3a0dfa6a
      Josef Bacik authored
      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: default avatarJosef Bacik <jbacik@fb.com>
      Acked-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      3a0dfa6a
    • Mitch Harder's avatar
      Btrfs: fix max_inline mount option · feb5f965
      Mitch Harder authored
      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: default avatarMitch Harder <mitch.harder@sabayonlinux.org>
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      feb5f965
    • Liu Bo's avatar
      Btrfs: fix a lockdep warning when cleaning up aborted transaction · a9d2d4ad
      Liu Bo authored
      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]  [<ffffffff81680fe7>] dump_stack+0x54/0x74
      [ 4723.422753]  [<ffffffff81681093>] spin_dump+0x8c/0x91
      [ 4723.424979]  [<ffffffff816810b9>] spin_bug+0x21/0x26
      [ 4723.425846]  [<ffffffff81323956>] do_raw_spin_unlock+0x66/0x90
      [ 4723.434424]  [<ffffffff81689bf7>] _raw_spin_unlock+0x27/0x40
      [ 4723.438747]  [<ffffffffa015da9e>] btrfs_cleanup_one_transaction+0x35e/0x710 [btrfs]
      [ 4723.443321]  [<ffffffffa015df54>] btrfs_cleanup_transaction+0x104/0x570 [btrfs]
      [ 4723.444692]  [<ffffffff810c1b5d>] ? trace_hardirqs_on_caller+0xfd/0x1c0
      [ 4723.450336]  [<ffffffff810c1c2d>] ? trace_hardirqs_on+0xd/0x10
      [ 4723.451332]  [<ffffffffa015e5ee>] transaction_kthread+0x22e/0x270 [btrfs]
      [ 4723.452543]  [<ffffffffa015e3c0>] ? btrfs_cleanup_transaction+0x570/0x570 [btrfs]
      [ 4723.457833]  [<ffffffff81079efa>] kthread+0xea/0xf0
      [ 4723.458990]  [<ffffffff81079e10>] ? kthread_create_on_node+0x140/0x140
      [ 4723.460133]  [<ffffffff81692aac>] ret_from_fork+0x7c/0xb0
      [ 4723.460865]  [<ffffffff81079e10>] ? 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: default avatarLiu Bo <bo.li.liu@oracle.com>
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      a9d2d4ad
    • Chris Mason's avatar
      Revert "btrfs: add ioctl to export size of global metadata reservation" · 11bcac89
      Chris Mason authored
      This reverts commit 01e219e8.
      
      David Sterba found a different way to provide these features without adding a new
      ioctl.  We haven't released any progs with this ioctl yet, so I'm taking this out
      for now until we finalize things.
      Signed-off-by: default avatarChris Mason <clm@fb.com>
      Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
      CC: Jeff Mahoney <jeffm@suse.com>
      11bcac89
    • Linus Torvalds's avatar
      Merge branch 'for-3.14' of git://linux-nfs.org/~bfields/linux · 8ba74517
      Linus Torvalds authored
      Pull two nfsd bugfixes from Bruce Fields.
      
      * 'for-3.14' of git://linux-nfs.org/~bfields/linux:
        lockd: send correct lock when granting a delayed lock.
        nfsd4: fix acl buffer overrun
      8ba74517
    • Linus Torvalds's avatar
      Merge tag 'md/3.14-fixes' of git://neil.brown.name/md · bd3813d5
      Linus Torvalds authored
      Pull md fixes from Neil Brown:
       "Two bugfixes for md
      
        both tagged for -stable"
      
      * tag 'md/3.14-fixes' of git://neil.brown.name/md:
        md/raid5: Fix CPU hotplug callback registration
        md/raid1: restore ability for check and repair to fix read errors.
      bd3813d5
    • Kevin Hao's avatar
      Revert "OF: base: match each node compatible against all given matches first" · 4e8ca6ee
      Kevin Hao authored
      This reverts commit 10535314.
      Stephen Chivers reported this is broken as we will get a match
      entry '.type = "serial"' instead of the '.compatible = "ns16550"'
      in the following scenario:
      	serial0: serial@4500 {
      		compatible = "fsl,ns16550", "ns16550";
      	}
      
      	struct of_device_id of_platform_serial_table[] = {
      		{ .compatible = "ns8250",   .data = (void *)PORT_8250, },
      		{ .compatible = "ns16450",  .data = (void *)PORT_16450, },
      		{ .compatible = "ns16550a", .data = (void *)PORT_16550A, },
      		{ .compatible = "ns16550",  .data = (void *)PORT_16550, },
      		{ .compatible = "ns16750",  .data = (void *)PORT_16750, },
      		{ .compatible = "ns16850",  .data = (void *)PORT_16850, },
      		...
      		{ .type = "serial",         .data = (void *)PORT_UNKNOWN, },
      		{ /* end of list */ },
      	};
      
      So just revert this patch, we will use another implementation to find
      the best compatible match in a follow-on patch.
      Reported-by: default avatarStephen N Chivers <schivers@csc.com.au>
      Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
      Signed-off-by: default avatarKevin Hao <haokexin@gmail.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      4e8ca6ee
    • Greg Kroah-Hartman's avatar
      Revert "misc: eeprom: sunxi: Add new compatibles" · bf747103
      Greg Kroah-Hartman authored
      This reverts commit f0de8e04, it is
      incorrect, a future patch will fix this up properly.
      
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bf747103