29 Apr, 2014

2 commits

  • Pull powerpc fixes from Ben Herrenschmidt:
    "Here is a bunch of post-merge window fixes that have been accumulating
    in patchwork while I was on vacation or buried under other stuff last
    week.

    We have the now usual batch of LE fixes from Anton (sadly some new
    stuff that went into this merge window had endian issues, we'll try to
    make sure we do better next time)

    Some fixes and cleanups to the new 24x7 performance monitoring stuff
    (mostly typos and cleaning up printk's)

    A series of fixes for an issue with our runlatch bit, which wasn't set
    properly for offlined threads/cores and under KVM, causing potentially
    some counters to misbehave along with possible power management
    issues.

    A fix for kexec nasty race where the new kernel wouldn't "see" the
    secondary processors having reached back into firmware in time.

    And finally a few other misc (and pretty simple) bug fixes"

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (33 commits)
    powerpc/4xx: Fix section mismatch in ppc4xx_pci.c
    ppc/kvm: Clear the runlatch bit of a vcpu before napping
    ppc/kvm: Set the runlatch bit of a CPU just before starting guest
    ppc/powernv: Set the runlatch bits correctly for offline cpus
    powerpc/pseries: Protect remove_memory() with device hotplug lock
    powerpc: Fix error return in rtas_flash module init
    powerpc: Bump BOOT_COMMAND_LINE_SIZE to 2048
    powerpc: Bump COMMAND_LINE_SIZE to 2048
    powerpc: Rename duplicate COMMAND_LINE_SIZE define
    powerpc/perf/hv-24x7: Catalog version number is be64, not be32
    powerpc/perf/hv-24x7: Remove [static 4096], sparse chokes on it
    powerpc/perf/hv-24x7: Use (unsigned long) not (u32) values when calling plpar_hcall_norets()
    powerpc/perf/hv-gpci: Make device attr static
    powerpc/perf/hv_gpci: Probe failures use pr_debug(), and padding reduced
    powerpc/perf/hv_24x7: Probe errors changed to pr_debug(), padding fixed
    powerpc/mm: Fix tlbie to add AVAL fields for 64K pages
    powerpc/powernv: Fix little endian issues in OPAL dump code
    powerpc/powernv: Create OPAL sglist helper functions and fix endian issues
    powerpc/powernv: Fix little endian issues in OPAL error log code
    powerpc/powernv: Fix little endian issues with opal_do_notifier calls
    ...

    Linus Torvalds
     
  • BUG_ON() is a big hammer, and should be used _only_ if there is some
    major corruption that you cannot possibly recover from, making it
    imperative that the current process (and possibly the whole machine) be
    terminated with extreme prejudice.

    The trivial sanity check in the vmacache code is *not* such a fatal
    error. Recovering from it is absolutely trivial, and using BUG_ON()
    just makes it harder to debug for no actual advantage.

    To make matters worse, the placement of the BUG_ON() (only if the range
    check matched) actually makes it harder to hit the sanity check to begin
    with, so _if_ there is a bug (and we just got a report from Srivatsa
    Bhat that this can indeed trigger), it is harder to debug not just
    because the machine is possibly dead, but because we don't have better
    coverage.

    BUG_ON() must *die*. Maybe we should add a checkpatch warning for it,
    because it is simply just about the worst thing you can ever do if you
    hit some "this cannot happen" situation.

    Reported-by: Srivatsa S. Bhat
    Cc: Davidlohr Bueso
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

28 Apr, 2014

38 commits

  • This patch fixes this section mismatch:

    WARNING: vmlinux.o(.text+0x1efc4): Section mismatch in reference from
    the function apm821xx_pciex_init_port_hw() to the function
    .init.text:ppc4xx_pciex_wait_on_sdr.isra.9()

    The function apm821xx_pciex_init_port_hw() references the function
    __init ppc4xx_pciex_wait_on_sdr.isra.9(). This is often because
    apm821xx_pciex_init_port_hw lacks a __init annotation or the
    annotation of ppc4xx_pciex_wait_on_sdr.isra.9 is wrong.

    apm821xx_pciex_init_port_hw is only referenced by a struct in
    __initdata, so it should be safe to add __init to
    apm821xx_pciex_init_port_hw.

    Signed-off-by: Alistair Popple
    Signed-off-by: Benjamin Herrenschmidt

    Alistair Popple
     
  • When the guest cedes the vcpu or the vcpu has no guest to
    run it naps. Clear the runlatch bit of the vcpu before
    napping to indicate an idle cpu.

    Signed-off-by: Preeti U Murthy
    Acked-by: Paul Mackerras
    Reviewed-by: Srivatsa S. Bhat
    Signed-off-by: Benjamin Herrenschmidt

    Preeti U Murthy
     
  • The secondary threads in the core are kept offline before launching guests
    in kvm on powerpc: "371fefd6f2dc4666:KVM: PPC: Allow book3s_hv guests to use
    SMT processor modes."

    Hence their runlatch bits are cleared. When the secondary threads are called
    in to start a guest, their runlatch bits need to be set to indicate that they
    are busy. The primary thread has its runlatch bit set though, but there is no
    harm in setting this bit once again. Hence set the runlatch bit for all
    threads before they start guest.

    Signed-off-by: Preeti U Murthy
    Acked-by: Paul Mackerras
    Reviewed-by: Srivatsa S. Bhat
    Signed-off-by: Benjamin Herrenschmidt

    Preeti U Murthy
     
  • Up until now we have been setting the runlatch bits for a busy CPU and
    clearing it when a CPU enters idle state. The runlatch bit has thus
    been consistent with the utilization of a CPU as long as the CPU is online.

    However when a CPU is hotplugged out the runlatch bit is not cleared. It
    needs to be cleared to indicate an unused CPU. Hence this patch has the
    runlatch bit cleared for an offline CPU just before entering an idle state
    and sets it immediately after it exits the idle state.

    Signed-off-by: Preeti U Murthy
    Acked-by: Paul Mackerras
    Reviewed-by: Srivatsa S. Bhat
    Signed-off-by: Benjamin Herrenschmidt

    Preeti U Murthy
     
  • While testing memory hot-remove, I found following dead lock:

    Process #1141 is drmgr, trying to remove some memory, i.e. memory499.
    It holds the memory_hotplug_mutex, and blocks when trying to remove file
    "online" under dir memory499, in kernfs_drain(), at
    wait_event(root->deactivate_waitq,
    atomic_read(&kn->active) == KN_DEACTIVATED_BIAS);

    Process #1120 is trying to online memory499 by
    echo 1 > memory499/online

    In .kernfs_fop_write, it uses kernfs_get_active() to increase
    &kn->active, thus blocking process #1141. While itself is blocked later
    when trying to acquire memory_hotplug_mutex, which is held by process

    The backtrace of both processes are shown below:

    [] 0xc000000001b18600
    [] .__switch_to+0x144/0x200
    [] .online_pages+0x74/0x7b0
    [] .memory_subsys_online+0x9c/0x150
    [] .device_online+0xb8/0x120
    [] .online_store+0xb4/0xc0
    [] .dev_attr_store+0x64/0xa0
    [] .sysfs_kf_write+0x7c/0xb0
    [] .kernfs_fop_write+0x154/0x1e0
    [] .vfs_write+0xe0/0x260
    [] .SyS_write+0x64/0x110
    [] syscall_exit+0x0/0x7c

    [] 0xc000000001b18600
    [] .__switch_to+0x144/0x200
    [] .__kernfs_remove+0x204/0x300
    [] .kernfs_remove_by_name_ns+0x68/0xf0
    [] .sysfs_remove_file_ns+0x38/0x60
    [] .device_remove_attrs+0x54/0xc0
    [] .device_del+0x158/0x250
    [] .device_unregister+0x34/0xa0
    [] .unregister_memory_section+0x164/0x170
    [] .__remove_pages+0x108/0x4c0
    [] .arch_remove_memory+0x60/0xc0
    [] .remove_memory+0x8c/0xe0
    [] .pseries_remove_memblock+0xd4/0x160
    [] .pseries_memory_notifier+0x27c/0x290
    [] .notifier_call_chain+0x8c/0x100
    [] .__blocking_notifier_call_chain+0x6c/0xe0
    [] .of_property_notify+0x7c/0xc0
    [] .of_update_property+0x3c/0x1b0
    [] .ofdt_write+0x3dc/0x740
    [] .proc_reg_write+0xac/0x110
    [] .vfs_write+0xe0/0x260
    [] .SyS_write+0x64/0x110
    [] syscall_exit+0x0/0x7c

    This patch uses lock_device_hotplug() to protect remove_memory() called
    in pseries_remove_memblock(), which is also stated before function
    remove_memory():

    * NOTE: The caller must call lock_device_hotplug() to serialize hotplug
    * and online/offline operations before this call, as required by
    * try_offline_node().
    */
    void __ref remove_memory(int nid, u64 start, u64 size)

    With this lock held, the other process(#1120 above) trying to online the
    memory block will retry the system call when calling
    lock_device_hotplug_sysfs(), and finally find No such device error.

    Signed-off-by: Li Zhong
    Signed-off-by: Benjamin Herrenschmidt

    Li Zhong
     
  • module_init should return 0 or a negative errno.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • Bump the boot wrapper BOOT_COMMAND_LINE_SIZE to match the
    kernel.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • I've had a report that the current limit is too small for
    an automated network based installer. Bump it.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • We have two definitions of COMMAND_LINE_SIZE, one for the kernel
    and one for the boot wrapper. I assume this is so the boot
    wrapper can be self sufficient and not rely on kernel headers.

    Having two defines with the same name is confusing, I just
    updated the wrong one when trying to bump it.

    Make the boot wrapper define unique by calling it
    BOOT_COMMAND_LINE_SIZE.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • The catalog version number was changed from a be32 (with proceeding
    32bits of padding) to a be64, update the code to treat it as a be64

    Signed-off-by: Cody P Schafer
    Signed-off-by: Benjamin Herrenschmidt

    Cody P Schafer
     
  • Signed-off-by: Cody P Schafer
    Signed-off-by: Benjamin Herrenschmidt

    Cody P Schafer
     
  • Signed-off-by: Cody P Schafer
    Signed-off-by: Benjamin Herrenschmidt

    Cody P Schafer
     
  • Signed-off-by: Cody P Schafer
    Signed-off-by: Benjamin Herrenschmidt

    Cody P Schafer
     
  • fixup for "powerpc/perf: Add support for the hv gpci (get performance
    counter info) interface".

    Makes the "not enabled" message less awful (and hidden unless
    debugging).

    Signed-off-by: Cody P Schafer
    Signed-off-by: Benjamin Herrenschmidt

    Cody P Schafer
     
  • fixup for "powerpc/perf: Add support for the hv 24x7 interface"

    Makes the "not enabled" message less awful (and hides it in most cases).

    Signed-off-by: Cody P Schafer
    Signed-off-by: Benjamin Herrenschmidt

    Cody P Schafer
     
  • The if condition check was based on a draft ISA doc. Remove the same.

    Signed-off-by: Aneesh Kumar K.V
    Signed-off-by: Benjamin Herrenschmidt

    Aneesh Kumar K.V
     
  • Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • We have two copies of code that creates an OPAL sg list. Consolidate
    these into a common set of helpers and fix the endian issues.

    The flash interface embedded a version number in the num_entries
    field, whereas the dump interface did did not. Since versioning
    wasn't added to the flash interface and it is impossible to add
    this in a backwards compatible way, just remove it.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • Fix little endian issues with the OPAL error log code.

    Signed-off-by: Anton Blanchard
    Reviewed-by: Stewart Smith
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • The bitmap in opal_poll_events and opal_handle_interrupt is
    big endian, so we need to byteswap it on little endian builds.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • We had some duplication of the internal OPAL functions.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • Using size_t in our APIs is asking for trouble, especially
    when some OPAL calls use size_t pointers.

    Signed-off-by: Anton Blanchard
    Reviewed-by: Stewart Smith
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • On PowerNV platform, we are holding an unnecessary refcount on a pci_dev, which
    leads to the pci_dev is not destroyed when hotplugging a pci device.

    This patch release the unnecessary refcount.

    Signed-off-by: Wei Yang
    Signed-off-by: Benjamin Herrenschmidt

    Wei Yang
     
  • During the EEH hotplug event, iommu_add_device() will be invoked three times
    and two of them will trigger warning or error.

    The three times to invoke the iommu_add_device() are:

    pci_device_add
    ...
    set_iommu_table_base_and_group kobj->sd is not initialized. The
    dev->kobj->sd is initialized in device_add().
    The third time's warning is triggered by the re-attach of the iommu_group.

    After applying this patch, the error

    iommu_tce: 0003:05:00.0 has not been added, ret=-14

    and the warning

    [ 204.123609] ------------[ cut here ]------------
    [ 204.123645] WARNING: at arch/powerpc/kernel/iommu.c:1125
    [ 204.123680] Modules linked in: xt_CHECKSUM nf_conntrack_netbios_ns nf_conntrack_broadcast ipt_MASQUERADE ip6t_REJECT bnep bluetooth 6lowpan_iphc rfkill xt_conntrack ebtable_nat ebtable_broute bridge stp llc mlx4_ib ib_sa ib_mad ib_core ib_addr ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw bnx2x tg3 mlx4_core nfsd ptp mdio ses libcrc32c nfs_acl enclosure be2net pps_core shpchp lockd kvm uinput sunrpc binfmt_misc lpfc scsi_transport_fc ipr scsi_tgt
    [ 204.124356] CPU: 18 PID: 650 Comm: eehd Not tainted 3.14.0-rc5yw+ #102
    [ 204.124400] task: c0000027ed485670 ti: c0000027ed50c000 task.ti: c0000027ed50c000
    [ 204.124453] NIP: c00000000003cf80 LR: c00000000006c648 CTR: c00000000006c5c0
    [ 204.124506] REGS: c0000027ed50f440 TRAP: 0700 Not tainted (3.14.0-rc5yw+)
    [ 204.124558] MSR: 9000000000029032 CR: 88008084 XER: 20000000
    [ 204.124682] CFAR: c00000000006c644 SOFTE: 1
    GPR00: c00000000006c648 c0000027ed50f6c0 c000000001398380 c0000027ec260300
    GPR04: c0000027ea92c000 c00000000006ad00 c0000000016e41b0 0000000000000110
    GPR08: c0000000012cd4c0 0000000000000001 c0000027ec2602ff 0000000000000062
    GPR12: 0000000028008084 c00000000fdca200 c0000000000d1d90 c0000027ec281a80
    GPR16: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    GPR20: 0000000000000000 0000000000000000 0000000000000000 0000000000000001
    GPR24: 000000005342697b 0000000000002906 c000001fe6ac9800 c000001fe6ac9800
    GPR28: 0000000000000000 c0000000016e3a80 c0000027ea92c090 c0000027ea92c000
    [ 204.125353] NIP [c00000000003cf80] .iommu_add_device+0x30/0x1f0
    [ 204.125399] LR [c00000000006c648] .pnv_pci_ioda_dma_dev_setup+0x88/0xb0
    [ 204.125443] Call Trace:
    [ 204.125464] [c0000027ed50f6c0] [c0000027ed50f750] 0xc0000027ed50f750 (unreliable)
    [ 204.125526] [c0000027ed50f750] [c00000000006c648] .pnv_pci_ioda_dma_dev_setup+0x88/0xb0
    [ 204.125588] [c0000027ed50f7d0] [c000000000069cc8] .pnv_pci_dma_dev_setup+0x78/0x340
    [ 204.125650] [c0000027ed50f870] [c000000000044408] .pcibios_setup_device+0x88/0x2f0
    [ 204.125712] [c0000027ed50f940] [c000000000046040] .pcibios_setup_bus_devices+0x60/0xd0
    [ 204.125774] [c0000027ed50f9c0] [c000000000043acc] .pcibios_add_pci_devices+0xdc/0x1c0
    [ 204.125837] [c0000027ed50fa50] [c00000000086f970] .eeh_reset_device+0x36c/0x4f0
    [ 204.125939] [c0000027ed50fb20] [c00000000003a2d8] .eeh_handle_normal_event+0x448/0x480
    [ 204.126068] [c0000027ed50fbc0] [c00000000003a35c] .eeh_handle_event+0x4c/0x340
    [ 204.126192] [c0000027ed50fc80] [c00000000003a74c] .eeh_event_handler+0xfc/0x1b0
    [ 204.126319] [c0000027ed50fd30] [c0000000000d1ea0] .kthread+0x110/0x130
    [ 204.126430] [c0000027ed50fe30] [c00000000000a460] .ret_from_kernel_thread+0x5c/0x7c
    [ 204.126556] Instruction dump:
    [ 204.126610] 7c0802a6 fba1ffe8 fbc1fff0 fbe1fff8 f8010010 f821ff71 7c7e1b78 60000000
    [ 204.126787] 60000000 e87e0298 3143ffff 7d2a1910 2fa90000 40de00c8 ebfe0218
    [ 204.126966] ---[ end trace 6e7aefd80add2973 ]---

    are cleared.

    This patch removes iommu_add_device() in pnv_pci_ioda_dma_dev_setup(), which
    revert part of the change in commit d905c5df(PPC: POWERNV: move
    iommu_add_device earlier).

    Signed-off-by: Wei Yang
    Signed-off-by: Benjamin Herrenschmidt

    Wei Yang
     
  • With this patch I was able to update firmware on an LE kernel.

    Signed-off-by: Anton Blanchard
    Signed-off-by: Benjamin Herrenschmidt

    Anton Blanchard
     
  • We have a subtle race when sending CPUs back to OPAL on kexec.

    We mark them as "in real mode" right before we send them down. Once
    we've booted the new kernel, it might try to call opal_reinit_cpus()
    to change endianness, and that requires all CPUs to be spinning inside
    OPAL.

    However there is no synchronization here and we've observed cases
    where the returning CPUs hadn't established their new state inside
    OPAL before opal_reinit_cpus() is called, causing it to fail.

    The proper fix is to actually wait for them to go down all the way
    from the kexec'ing kernel.

    Signed-off-by: Benjamin Herrenschmidt

    Benjamin Herrenschmidt
     
  • The size of the sysparam sysfs files is determined from the device tree
    at boot. However the buffer is hard coded to 64 bytes. If we encounter a
    parameter that is larger than 64, or miss-parse the device tree, the
    buffer will overflow when reading or writing to the parameter.

    Check it at discovery time, and if the parameter is too large, do not
    create a sysfs entry for it.

    Signed-off-by: Joel Stanley
    Signed-off-by: Benjamin Herrenschmidt

    Joel Stanley
     
  • Signed-off-by: Benjamin Herrenschmidt

    Joel Stanley
     
  • The sysparam code currently uses the userspace supplied number of
    bytes when memcpy()ing in to a local 64-byte buffer.

    Limit the maximum number of bytes by the size of the buffer.

    Signed-off-by: Benjamin Herrenschmidt

    Joel Stanley
     
  • The OPAL calls are returning int64_t values, which the sysparam code
    stores in an int, and the sysfs callback returns ssize_t. Make code a
    easier to read by consistently using ssize_t.

    Signed-off-by: Joel Stanley
    Signed-off-by: Benjamin Herrenschmidt

    Joel Stanley
     
  • When a sysparam query in OPAL returned a negative value (error code),
    sysfs would spew out a decent chunk of memory; almost 64K more than
    expected. This was traced to a sign/unsigned mix up in the OPAL sysparam
    sysfs code at sys_param_show.

    The return value of sys_param_show is a ssize_t, calculated using

    return ret ? ret : attr->param_size;

    Alan Modra explains:

    "attr->param_size" is an unsigned int, "ret" an int, so the overall
    expression has type unsigned int. Result is that ret is cast to
    unsigned int before being cast to ssize_t.

    Instead of using the ternary operator, set ret to the param_size if an
    error is not detected. The same bug exists in the sysfs write callback;
    this patch fixes it in the same way.

    A note on debugging this next time: on my system gcc will warn about
    this if compiled with -Wsign-compare, which is not enabled by -Wall,
    only -Wextra.

    Signed-off-by: Joel Stanley
    Signed-off-by: Benjamin Herrenschmidt

    Joel Stanley
     
  • commit 41dd03a9 may cause Oops in rtas_stop_self().

    The reason is that the rtas_args was moved into stack space. For a box
    with more that 4GB RAM, the stack could easily be outside 32bit range,
    but RTAS is 32bit.

    So the patch moves rtas_args away from stack by adding static before
    it.

    Signed-off-by: Li Zhong
    Signed-off-by: Anton Blanchard
    Cc: stable@vger.kernel.org # 3.14+
    Signed-off-by: Benjamin Herrenschmidt

    Li Zhong
     
  • Commit aac416fc38c (lkdtm: flush icache and report actions) calls
    flush_icache_range from a module. It's exported on most architectures
    that implement it, but not on powerpc. This patch exports it to fix
    the module link failure.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Benjamin Herrenschmidt

    Jeff Mahoney
     
  • Linus Torvalds
     
  • The asm-generic, big-endian version of zero_bytemask creates a mask of
    bytes preceding the first zero-byte by left shifting ~0ul based on the
    position of the first zero byte.

    Unfortunately, if the first (top) byte is zero, the output of
    prep_zero_mask has only the top bit set, resulting in undefined C
    behaviour as we shift left by an amount equal to the width of the type.
    As it happens, GCC doesn't manage to spot this through the call to fls(),
    but the issue remains if architectures choose to implement their shift
    instructions differently.

    An example would be arch/arm/ (AArch32), where LSL Rd, Rn, #32 results
    in Rd == 0x0, whilst on arch/arm64 (AArch64) LSL Xd, Xn, #64 results in
    Xd == Xn.

    Rather than check explicitly for the problematic shift, this patch adds
    an extra shift by 1, replacing fls with __fls. Since zero_bytemask is
    never called with a zero argument (has_zero() is used to check the data
    first), we don't need to worry about calling __fls(0), which is
    undefined.

    Cc:
    Cc: Victor Kamensky
    Signed-off-by: Will Deacon
    Signed-off-by: Linus Torvalds

    Will Deacon
     
  • This merges the patch to fix possible loss of dirty bit on munmap() or
    madvice(DONTNEED). If there are concurrent writers on other CPU's that
    have the unmapped/unneeded page in their TLBs, their writes to the page
    could possibly get lost if a third CPU raced with the TLB flush and did
    a page_mkclean() before the page was fully written.

    Admittedly, if you unmap() or madvice(DONTNEED) an area _while_ another
    thread is still busy writing to it, you deserve all the lost writes you
    could get. But we kernel people hold ourselves to higher quality
    standards than "crazy people deserve to lose", because, well, we've seen
    people do all kinds of crazy things.

    So let's get it right, just because we can, and we don't have to worry
    about it.

    * safe-dirty-tlb-flush:
    mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts

    Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: limit the path size in send to PATH_MAX
    Btrfs: correctly set profile flags on seqlock retry
    Btrfs: use correct key when repeating search for extent item
    Btrfs: fix inode caching vs tree log
    Btrfs: fix possible memory leaks in open_ctree()
    Btrfs: avoid triggering bug_on() when we fail to start inode caching task
    Btrfs: move btrfs_{set,clear}_and_info() to ctree.h
    btrfs: replace error code from btrfs_drop_extents
    btrfs: Change the hole range to a more accurate value.
    btrfs: fix use-after-free in mount_subvol()

    Linus Torvalds
     
  • Pull arm fixes from Russell King:
    "A number of fixes for the PJ4/iwmmxt changes which arm-soc forced me
    to take during the merge window. This stuff should have been better
    tested and sorted out *before* the merge window"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8042/1: iwmmxt: allow to build iWMMXt on Marvell PJ4B
    ARM: 8041/1: pj4: fix cpu_is_pj4 check
    ARM: 8040/1: pj4: properly detect existence of iWMMXt coprocessor
    ARM: 8039/1: pj4: enable iWMMXt only if CONFIG_IWMMXT is set
    ARM: 8038/1: iwmmxt: explicitly check for supported architectures

    Linus Torvalds