23 Dec, 2013

6 commits

  • Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "Much smaller batch of fixes this week.

    Biggest one is a revert of an OMAP display change that removed some
    non-DT pinmux code that was still needed for 3.13 to get DSI displays
    to work.

    There's also a fix that resolves some misdescribed GPIO controller
    resources on shmobile. The rest are mostly smaller fixes, a couple of
    MAINTAINERS updates, etc"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    Revert "ARM: OMAP2+: Remove legacy mux code for display.c"
    MAINTAINERS: Add keystone clock drivers
    MAINTAINERS: Add keystone git tree information
    ARM: s3c64xx: dt: Fix boot failure due to double clock initialization
    ARM: shmobile: r8a7790: Fix GPIO resources in DTS
    irqchip: renesas-intc-irqpin: Fix register bitfield shift calculation
    ARM: shmobile: lager: phy fixup needs CONFIG_PHYLIB

    Linus Torvalds
     
  • Pull firewire fixlet from Stefan Richter:
    "A one-liner to reenable WRITE SAME over SBP-2 like in v3.8...v3.12.
    Buggy targets which could malfunction when being subjected to this
    command are already sufficiently protected by a scsi_level check in sd
    + SCSI core"

    * tag 'firewire-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
    firewire: sbp2: bring back WRITE SAME support

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "Mostly minor items this time around, the most notable being a FILEIO
    backend change to enforce hw_max_sectors based upon the current
    block_size to address a bug where large sized I/Os (> 1M) where being
    rejected"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    qla2xxx: Fix scsi_host leak on qlt_lport_register callback failure
    target: Remove extra percpu_ref_init
    target/file: Update hw_max_sectors based on current block_size
    iser-target: Move INIT_WORK setup into isert_create_device_ib_res
    iscsi-target: Fix incorrect np->np_thread NULL assignment
    qla2xxx: Fix schedule_delayed_work() for target timeout calculations
    iser-target: fix error return code in isert_create_device_ib_res()
    iscsi-target: Fix-up all zero data-length CDBs with R/W_BIT set
    target: Remove write-only stats fields and lock from struct se_node_acl
    iscsi-target: return -EINVAL on oversized configfs parameter

    Linus Torvalds
     
  • Pull AIO leak fixes from Ben LaHaise:
    "I've put these two patches plus Linus's change through a round of
    tests, and it passes millions of iterations of the aio numa
    migratepage test, as well as a number of repetitions of a few simple
    read and write tests.

    The first patch fixes the memory leak Kent introduced, while the
    second patch makes aio_migratepage() much more paranoid and robust"

    * git://git.kvack.org/~bcrl/aio-next:
    aio/migratepages: make aio migrate pages sane
    aio: fix kioctx leak introduced by "aio: Fix a trinity splat"

    Linus Torvalds
     
  • Since commit 36bc08cc01709 ("fs/aio: Add support to aio ring pages
    migration") the aio ring setup code has used a special per-ring backing
    inode for the page allocations, rather than just using random anonymous
    pages.

    However, rather than remembering the pages as it allocated them, it
    would allocate the pages, insert them into the file mapping (dirty, so
    that they couldn't be free'd), and then forget about them. And then to
    look them up again, it would mmap the mapping, and then use
    "get_user_pages()" to get back an array of the pages we just created.

    Now, not only is that incredibly inefficient, it also leaked all the
    pages if the mmap failed (which could happen due to excessive number of
    mappings, for example).

    So clean it all up, making it much more straightforward. Also remove
    some left-overs of the previous (broken) mm_populate() usage that was
    removed in commit d6c355c7dabc ("aio: fix race in ring buffer page
    lookup introduced by page migration support") but left the pointless and
    now misleading MAP_POPULATE flag around.

    Tested-and-acked-by: Benjamin LaHaise
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

22 Dec, 2013

2 commits

  • The arbitrary restriction on page counts offered by the core
    migrate_page_move_mapping() code results in rather suspicious looking
    fiddling with page reference counts in the aio_migratepage() operation.
    To fix this, make migrate_page_move_mapping() take an extra_count parameter
    that allows aio to tell the code about its own reference count on the page
    being migrated.

    While cleaning up aio_migratepage(), make it validate that the old page
    being passed in is actually what aio_migratepage() expects to prevent
    misbehaviour in the case of races.

    Signed-off-by: Benjamin LaHaise

    Benjamin LaHaise
     
  • e34ecee2ae791df674dfb466ce40692ca6218e43 reworked the percpu reference
    counting to correct a bug trinity found. Unfortunately, the change lead
    to kioctxes being leaked because there was no final reference count to
    put. Add that reference count back in to fix things.

    Signed-off-by: Benjamin LaHaise
    Cc: stable@vger.kernel.org

    Benjamin LaHaise
     

21 Dec, 2013

17 commits

  • Commit 1bf49dd4be0b ("./Makefile: export initial ramdisk compression
    config option") started setting the INITRD_COMPRESS environment variable
    depending on which decompression models the kernel had available.

    That is completely broken.

    For example, we by default have CONFIG_RD_LZ4 enabled, and are able to
    decompress such an initrd, but the user tools to *create* such an initrd
    may not be availble. So trying to tell dracut to generate an
    lz4-compressed image just because we can decode such an image is
    completely inappropriate.

    Cc: J P
    Cc: Andrew Morton
    Cc: Jan Beulich
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull xfs bugfixes from Ben Myers:
    "This contains fixes for some asserts
    related to project quotas, a memory leak, a hang when disabling group or
    project quotas before disabling user quotas, Dave's email address, several
    fixes for the alignment of file allocation to stripe unit/width geometry, a
    fix for an assertion with xfs_zero_remaining_bytes, and the behavior of
    metadata writeback in the face of IO errors.

    Details:
    - fix memory leak in xfs_dir2_node_removename
    - fix quota assertion in xfs_setattr_size
    - fix quota assertions in xfs_qm_vop_create_dqattach
    - fix for hang when disabling group and project quotas before
    disabling user quotas
    - fix Dave Chinner's email address in MAINTAINERS
    - fix for file allocation alignment
    - fix for assertion in xfs_buf_stale by removing xfsbdstrat
    - fix for alignment with swalloc mount option
    - fix for "retry forever" semantics on IO errors"

    * tag 'xfs-for-linus-v3.13-rc5' of git://oss.sgi.com/xfs/xfs:
    xfs: abort metadata writeback on permanent errors
    xfs: swalloc doesn't align allocations properly
    xfs: remove xfsbdstrat error
    xfs: align initial file allocations correctly
    MAINTAINERS: fix incorrect mail address of XFS maintainer
    xfs: fix infinite loop by detaching the group/project hints from user dquot
    xfs: fix assertion failure at xfs_setattr_nonsize
    xfs: fix false assertion at xfs_qm_vop_create_dqattach
    xfs: fix memory leak in xfs_dir2_node_removename

    Linus Torvalds
     
  • Commit 597d795a2a78 ('mm: do not allocate page->ptl dynamically, if
    spinlock_t fits to long') restructures some allocators that are compiled
    even if USE_SPLIT_PTLOCKS arn't used. It results in compilation
    failure:

    mm/memory.c:4282:6: error: 'struct page' has no member named 'ptl'
    mm/memory.c:4288:12: error: 'struct page' has no member named 'ptl'

    Add in the missing ifdef.

    Fixes: 597d795a2a78 ('mm: do not allocate page->ptl dynamically, if spinlock_t fits to long')
    Signed-off-by: Olof Johansson
    Cc: Kirill A. Shutemov
    Cc: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Olof Johansson
     
  • Pull ARC fix from Vineet Gupta:
    "Fix busted syscall table due to unistd header inclusion issue"

    * tag 'arc-fixes-for-3.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: Allow conditional multiple inclusion of uapi/asm/unistd.h

    Linus Torvalds
     
  • Pull arm64 ptrace fix from Catalin Marinas.

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64: ptrace: avoid using HW_BREAKPOINT_EMPTY for disabled events

    Linus Torvalds
     
  • Some pstore backing devices use on board flash as persistent
    storage. These have limited numbers of write cycles so it
    is a poor idea to use them from high frequency operations.

    Signed-off-by: Tony Luck
    Signed-off-by: Linus Torvalds

    Luck, Tony
     
  • Pull dmaengine fixes from Dan Williams:

    - deprecation of net_dma to be removed in 3.14

    - crash regression fix in pl330 from the dmaengine_unmap rework

    - crash regression fix for any channel running raid ops without
    CONFIG_ASYNC_TX_DMA from dmaengine_unmap

    - memory leak regression in mv_xor from dmaengine_unmap

    - build warning regressions in mv_xor, fsldma, ppc4xx, txx9, and
    at_hdmac from dmaengine_unmap

    - sleep in atomic regression in dma_async_memcpy_pg_to_pg

    - new fix in mv_xor for handling channel initialization failures

    * tag 'dmaengine-fixes-3.13-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine:
    net_dma: mark broken
    dma: pl330: ensure DMA descriptors are zero-initialised
    dmaengine: fix sleep in atomic
    dmaengine: mv_xor: fix oops when channels fail to initialise
    dma: mv_xor: Use dmaengine_unmap_data for the self-tests
    dmaengine: fix enable for high order unmap pools
    dma: fix build warnings in txx9
    dmatest: fix build warning on mips
    dma: fix fsldma build warnings
    dma: fix build warnings in ppc4xx
    dmaengine: at_hdmac: remove unused function
    dma: mv_xor: remove mv_desc_get_dest_addr()

    Linus Torvalds
     
  • Pull KVM fixes from Paolo Bonzini:
    "The PPC folks had a large amount of changes queued for 3.13, and now
    they are fixing the bugs"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: PPC: Book3S HV: Don't drop low-order page address bits
    powerpc: book3s: kvm: Don't abuse host r2 in exit path
    powerpc/kvm/booke: Fix build break due to stack frame size warning
    KVM: PPC: Book3S: PR: Enable interrupts earlier
    KVM: PPC: Book3S: PR: Make svcpu -> vcpu store preempt savvy
    KVM: PPC: Book3S: PR: Export kvmppc_copy_to|from_svcpu
    KVM: PPC: Book3S: PR: Don't clobber our exit handler id
    powerpc: kvm: fix rare but potential deadlock scene
    KVM: PPC: Book3S HV: Take SRCU read lock around kvm_read_guest() call
    KVM: PPC: Book3S HV: Make tbacct_lock irq-safe
    KVM: PPC: Book3S HV: Refine barriers in guest entry/exit
    KVM: PPC: Book3S HV: Fix physical address calculations

    Linus Torvalds
     
  • In struct page we have enough space to fit long-size page->ptl there,
    but we use dynamically-allocated page->ptl if size(spinlock_t) is larger
    than sizeof(int).

    It hurts 64-bit architectures with CONFIG_GENERIC_LOCKBREAK, where
    sizeof(spinlock_t) == 8, but it easily fits into struct page.

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Commit 81c0a2bb515f ("mm: page_alloc: fair zone allocator policy") meant
    to bring aging fairness among zones in system, but it was overzealous
    and badly regressed basic workloads on NUMA systems.

    Due to the way kswapd and page allocator interacts, we still want to
    make sure that all zones in any given node are used equally for all
    allocations to maximize memory utilization and prevent thrashing on the
    highest zone in the node.

    While the same principle applies to NUMA nodes - memory utilization is
    obviously improved by spreading allocations throughout all nodes -
    remote references can be costly and so many workloads prefer locality
    over memory utilization. The original change assumed that
    zone_reclaim_mode would be a good enough predictor for that, but it
    turned out to be as indicative as a coin flip.

    Revert the NUMA aspect of the fairness until we can find a proper way to
    make it configurable and agree on a sane default.

    Signed-off-by: Johannes Weiner
    Reviewed-by: Michal Hocko
    Signed-off-by: Mel Gorman
    Cc: # 3.12
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • This reverts commit 73f038b863df. The NUMA behaviour of this patch is
    less than ideal. An alternative approch is to interleave allocations
    only within local zones which is implemented in the next patch.

    Cc: stable@vger.kernel.org
    Signed-off-by: Mel Gorman
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Sasha Levin found a NULL pointer dereference that is due to a missing
    page table lock, which in turn is due to the pmd entry in question being
    a transparent huge-table entry.

    The code - introduced in commit 1998cc048901 ("mm: make
    madvise(MADV_WILLNEED) support swap file prefetch") - correctly checks
    for this situation using pmd_none_or_trans_huge_or_clear_bad(), but it
    turns out that that function doesn't work correctly.

    pmd_none_or_trans_huge_or_clear_bad() expected that pmd_bad() would
    trigger if the transparent hugepage bit was set, but it doesn't do that
    if pmd_numa() is also set. Note that the NUMA bit only gets set on real
    NUMA machines, so people trying to reproduce this on most normal
    development systems would never actually trigger this.

    Fix it by removing the very subtle (and subtly incorrect) expectation,
    and instead just checking pmd_trans_huge() explicitly.

    Reported-by: Sasha Levin
    Acked-by: Andrea Arcangeli
    [ Additionally remove the now stale test for pmd_trans_huge() inside the
    pmd_bad() case - Linus ]
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • …/git/horms/renesas into fixes

    From Simon Horman:
    Renesas ARM based SoC fixes for v3.13

    * r8a7790 (R-Car H1) SoC
    - Correct GPIO resources in DT.

    This problem has been present since GPIOs were added to the r8a7790 SoC
    by f98e10c88aa95bf7 ("ARM: shmobile: r8a7790: Add GPIO controller
    devices to device tree") in v3.12-rc1.

    * irqchip renesas-intc-irqpin
    - Correct register bitfield shift calculation

    This bug has been present since the renesas-intc-irqpin driver was
    introduced by 443580486e3b9657 ("irqchip: Renesas INTC External IRQ pin
    driver") in v3.10-rc1

    * Lager board
    - Do not build the phy fixup unless CONFIG_PHYLIB is enabled

    This problem was introduced by 48c8b96f21817aad

    * tag 'renesas-fixes-for-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
    ARM: shmobile: r8a7790: Fix GPIO resources in DTS
    irqchip: renesas-intc-irqpin: Fix register bitfield shift calculation
    ARM: shmobile: lager: phy fixup needs CONFIG_PHYLIB

    Signed-off-by: Kevin Hilman <khilman@linaro.org>

    Kevin Hilman
     
  • Patch queue for 3.13 - 2013-12-18

    This fixes some grave issues we've only found after 3.13-rc1:

    - Make the modularized HV/PR book3s kvm work well as modules
    - Fix some race conditions
    - Fix compilation with certain compilers (booke)
    - Fix THP for book3s_hv
    - Fix preemption for book3s_pr

    Alexander Graf (4):
    KVM: PPC: Book3S: PR: Don't clobber our exit handler id
    KVM: PPC: Book3S: PR: Export kvmppc_copy_to|from_svcpu
    KVM: PPC: Book3S: PR: Make svcpu -> vcpu store preempt savvy
    KVM: PPC: Book3S: PR: Enable interrupts earlier

    Aneesh Kumar K.V (1):
    powerpc: book3s: kvm: Don't abuse host r2 in exit path

    Paul Mackerras (5):
    KVM: PPC: Book3S HV: Fix physical address calculations
    KVM: PPC: Book3S HV: Refine barriers in guest entry/exit
    KVM: PPC: Book3S HV: Make tbacct_lock irq-safe
    KVM: PPC: Book3S HV: Take SRCU read lock around kvm_read_guest() call
    KVM: PPC: Book3S HV: Don't drop low-order page address bits

    Scott Wood (1):
    powerpc/kvm/booke: Fix build break due to stack frame size warning

    pingfan liu (1):
    powerpc: kvm: fix rare but potential deadlock scene

    Paolo Bonzini
     
  • Pull Xen bugfixes from Konrad Rzeszutek Wilk:
    - Fix balloon driver for auto-translate guests (PVHVM, ARM) to not use
    scratch pages.
    - Fix block API header for ARM32 and ARM64 to have proper layout
    - On ARM when mapping guests, stick on PTE_SPECIAL
    - When using SWIOTLB under ARM, don't call swiotlb functions twice
    - When unmapping guests memory and if we fail, don't return pages which
    failed to be unmapped.
    - Grant driver was using the wrong address on ARM.

    * tag 'stable/for-linus-3.13-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/balloon: Seperate the auto-translate logic properly (v2)
    xen/block: Correctly define structures in public headers on ARM32 and ARM64
    arm: xen: foreign mapping PTEs are special.
    xen/arm64: do not call the swiotlb functions twice
    xen: privcmd: do not return pages which we have failed to unmap
    XEN: Grant table address, xen_hvm_resume_frames, is a phys_addr not a pfn

    Linus Torvalds
     
  • …it/rostedt/linux-trace

    Pull ftrace fix from Steven Rostedt:
    "This fixes a long standing bug in the ftrace profiler. The problem is
    that the profiler only initializes the online CPUs, and not possible
    CPUs. This causes issues if the user takes CPUs online or offline
    while the profiler is running.

    If we online a CPU after starting the profiler, we lose all the trace
    information on the CPU going online.

    If we offline a CPU after running a test and start a new test, it will
    not clear the old data from that CPU.

    This bug causes incorrect data to be reported to the user if they
    online or offline CPUs during the profiling"

    * tag 'trace-fixes-v3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftrace: Initialize the ftrace profiler for each possible cpu

    Linus Torvalds
     
  • …nel/git/tmlind/linux-omap into fixes

    I accidentally removed some mux code for omap4 that I thought was
    dead code as omap4 has been booting with device tree only since
    v3.10. Turns out I also removed some display related mux code,
    so let's revert that except for the dead code parts.

    * tag 'omap-for-v3.13/display-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (439 commits)
    Revert "ARM: OMAP2+: Remove legacy mux code for display.c"
    +Linux 3.13-rc4

    Kevin Hilman
     

20 Dec, 2013

7 commits

  • …l/git/ssantosh/linux-keystone into fixes

    From Santosh Shilimkar:
    Couple of updates to MAINTAINERS file for Keystone

    - Add git tree information
    - Add clock drivers entry

    * tag 'keystone/maintainer-file' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
    MAINTAINERS: Add keystone clock drivers
    MAINTAINERS: Add keystone git tree information

    Signed-off-by: Kevin Hilman <khilman@linaro.org>

    Kevin Hilman
     
  • This patch fixes a possible scsi_host reference leak in qlt_lport_register(),
    when a non zero return from the passed (*callback) does not call drop the
    local reference via scsi_host_put() before returning.

    This currently does not effect existing tcm_qla2xxx code as the passed callback
    will never fail, but fix this up regardless for future code.

    Cc: Chad Dupuis
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • lun->lun_ref is also initialized in core_tpg_post_addlun, so it doesn't
    need to be done in core_tpg_setup_virtual_lun0.

    (nab: Drop left-over percpu_ref_cancel_init in failure path)

    Signed-off-by: Andy Grover
    Signed-off-by: Nicholas Bellinger

    Andy Grover
     
  • Commit 8f34a1da35ae ("arm64: ptrace: use HW_BREAKPOINT_EMPTY type for
    disabled breakpoints") fixed an issue with GDB trying to zero breakpoint
    control registers. The problem there is that the arch hw_breakpoint code
    will attempt to create a (disabled), execute breakpoint of length 0.

    This will fail validation and report unexpected failure to GDB. To avoid
    this, we treated disabled breakpoints as HW_BREAKPOINT_EMPTY, but that
    seems to have broken with recent kernels, causing watchpoints to be
    treated as TYPE_INST in the core code and returning ENOSPC for any
    further breakpoints.

    This patch fixes the problem by prioritising the `enable' field of the
    breakpoint: if it is cleared, we simply update the perf_event_attr to
    indicate that the thing is disabled and don't bother changing either the
    type or the length. This reinforces the behaviour that the breakpoint
    control register is essentially read-only apart from the enable bit
    when disabling a breakpoint.

    Cc:
    Reported-by: Aaron Liu
    Signed-off-by: Will Deacon
    Signed-off-by: Catalin Marinas

    Will Deacon
     
  • Pull scheduler fixes from Ingo Molnar:
    "An RT group-scheduling fix and the sched-domains topology setup fix
    from Mel"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities
    sched: Assign correct scheduling domain to 'sd_llc'

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "An ABI documentation fix, and a mixed-PMU perf-info-corruption fix"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf: Document the new transaction sample type
    perf: Disable all pmus on unthrottling and rescheduling

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "We have a bit more changes than usual in ASoC here, as it was slipped
    from the previous update. There are one minr ASoC PCM code fix and
    ASoC dmaengine fix, in addition of a collection of small ASoC driver
    fixes. The rest are a couple of HD-audio stable fixups, and a
    long-standing fix for the paused stream handling.

    So, all commits look not scary (and hopefully won't give you
    disastrous holiday season)"

    * tag 'sound-3.13-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Add Dell headset detection quirk for one more laptop model
    ASoC: wm8904: fix DSP mode B configuration
    ASoC: wm_adsp: Add small delay while polling DSP RAM start
    ALSA: Add SNDRV_PCM_STATE_PAUSED case in wait_for_avail function
    ASoC: kirkwood: Fix the CPU DAI rates
    ASoC: wm5110: Correct HPOUT3 DAPM route typo
    ALSA: hda - Add Dell headset detection quirk for three laptop models
    ALSA: hda - Add enable_msi=0 workaround for four HP machines
    ASoC: don't leak on error in snd_dmaengine_pcm_register
    ASoC: fsl: imx-wm8962: Don't update bias_level in machine driver
    ASoC: tegra: fix uninitialized variables in set_fmt
    ASoC: wm8962: Enable SYSCLK provisonally before fetching generated DSPCLK_DIV
    ASoC: sam9x5_wm8731: change to work in DSP A mode
    ASoC: atmel_ssc_dai: add dai trigger ops
    ASoC: soc-pcm: Use valid condition for snd_soc_dai_digital_mute() in hw_free()

    Linus Torvalds
     

19 Dec, 2013

8 commits