21 Mar, 2014

3 commits

  • Add remove_linear_migration_ptes_from_nonlinear(), to fix an interesting
    little include/linux/swapops.h:131 BUG_ON(!PageLocked) found by trinity:
    indicating that remove_migration_ptes() failed to find one of the
    migration entries that was temporarily inserted.

    The problem comes from remap_file_pages()'s switch from vma_interval_tree
    (good for inserting the migration entry) to i_mmap_nonlinear list (no good
    for locating it again); but can only be a problem if the remap_file_pages()
    range does not cover the whole of the vma (zap_pte() clears the range).

    remove_migration_ptes() needs a file_nonlinear method to go down the
    i_mmap_nonlinear list, applying linear location to look for migration
    entries in those vmas too, just in case there was this race.

    The file_nonlinear method does need rmap_walk_control.arg to do this;
    but it never needed vma passed in - vma comes from its own iteration.

    Reported-and-tested-by: Dave Jones
    Reported-and-tested-by: Sasha Levin
    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Pull MIPS fixes from Ralf Baechle:
    "Another set of five fixes. The most interesting one is a fix for race
    condition in the local_irq_disable() implementation used by .S code
    for pre-MIPS R2 processors only. It leaves a race that's hard but not
    impossible to hit; the others fairly obvious"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: Make local_irq_disable macro safe for non-Mipsr2
    MIPS: Octeon: Fix warning in of_device_alloc on cn3xxx
    MIPS: ftrace: Tweak safe_load()/safe_store() macros
    MIPS: BCM47XX: Check all (32) GPIOs when looking for a pin
    MIPS: Fix possible build error with transparent hugepages enabled

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "Just two minor bug fixes: a fix for a regression in oxygen driver that
    was introduced in 3.14-rc1, and a stable fix for the return value of
    compress offload open callback"

    * tag 'sound-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: compress: Pass through return value of open ops callback
    ALSA: oxygen: Xonar DG(X): fix Stereo Upmixing regression

    Linus Torvalds
     

20 Mar, 2014

7 commits

  • For non-mipsr2 processors, the local_irq_disable contains an mfc0-mtc0
    pair with instructions inbetween. With preemption enabled, this sequence
    may get preempted and effect a stale value of CP0_STATUS when executing
    the mtc0 instruction. This commit avoids this scenario by incrementing
    the preempt count before the mfc0 and decrementing it after the mtc9.

    [ralf@linux-mips.org: This patch is sorting out the part that were missed
    by e97c5b6098 [MIPS: Make irqflags.h functions preempt-safe for non-mipsr2
    cpus.] I also re-enabled the inclusion of at the top
    of ].

    Signed-off-by: Jim Quinlan
    Cc: linux-mips@linux-mips.org
    Cc: cernekee@gmail.com
    Patchwork: https://patchwork.linux-mips.org/patch/6164/
    Signed-off-by: Ralf Baechle

    Jim Quinlan
     
  • Fix some "Bad rss-counter state" reports on exit, arising from the
    interaction between page migration and remap_file_pages(): zap_pte()
    must count a migration entry when zapping it.

    And yes, it is possible (though very unusual) to find an anon page or
    swap entry in a VM_SHARED nonlinear mapping: coming from that horrid
    get_user_pages(write, force) case which COWs even in a shared mapping.

    Signed-off-by: Hugh Dickins
    Tested-by: Sasha Levin sasha.levin@oracle.com>
    Tested-by: Dave Jones davej@redhat.com>
    Cc: Cyrill Gorcunov
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • Pull PCI resource management fix from Bjorn Helgaas:
    "This is a fix for an AGP regression exposed by e501b3d87f00 ("agp:
    Support 64-bit APBASE"), which we merged in v3.14-rc1.

    We've warned about the conflict between the GART and PCI resources and
    cleared out the PCI resource for a long time, but after e501b3d87f00,
    we still *use* that cleared-out PCI resource. I think the GART
    resource is incorrect, so this patch removes it"

    * tag 'pci-v3.14-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    Revert "[PATCH] Insert GART region into resource map"

    Linus Torvalds
     
  • Pull cgroup fix from Tejun Heo:
    "One really late cgroup patch to fix error path in create_css().
    Hitting this bug would be pretty rare but still possible and it gets
    delayed we'd need to backport it through -stable anyway. It only
    updates error path in create_css() and has low chance of new
    breakages"

    * 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: fix a failure path in create_css()

    Linus Torvalds
     
  • Starting with commit 3da5278727a895d49a601f67fd49dffa0b80f9a5 (of/irq:
    Rework of_irq_count()) the following warning is triggered on octeon
    cn3xxx:

    [ 0.887281] WARNING: CPU: 0 PID: 1 at drivers/of/platform.c:171 of_device_alloc+0x228/0x230()
    [ 0.895642] Modules linked in:
    [ 0.898689] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0-rc7-00012-g9ae51f2-dirty #41
    [ 0.906860] Stack : c8b439581166d96e ffffffff816b0000 0000000040808000 ffffffff81185ddc
    [ 0.906860] 0000000000000000 0000000000000000 0000000000000000 000000000000000b
    [ 0.906860] 000000000000000a 000000000000000a 0000000000000000 0000000000000000
    [ 0.906860] ffffffff81740000 ffffffff81720000 ffffffff81615900 ffffffff816b0177
    [ 0.906860] ffffffff81727d10 800000041f868fb0 0000000000000001 0000000000000000
    [ 0.906860] 0000000000000000 0000000000000038 0000000000000001 ffffffff81568484
    [ 0.906860] 800000041f86faa8 ffffffff81145ddc 0000000000000000 ffffffff811873f4
    [ 0.906860] 800000041f868b88 800000041f86f9c0 0000000000000000 ffffffff81569c9c
    [ 0.906860] 0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [ 0.906860] 0000000000000000 ffffffff811205e0 0000000000000000 0000000000000000
    [ 0.906860] ...
    [ 0.971695] Call Trace:
    [ 0.974139] [] show_stack+0x68/0x80
    [ 0.979183] [] dump_stack+0x8c/0xe0
    [ 0.984196] [] warn_slowpath_common+0x84/0xb8
    [ 0.990110] [] of_device_alloc+0x228/0x230
    [ 0.995726] [] of_platform_device_create_pdata+0x48/0xd0
    [ 1.002593] [] of_platform_bus_create+0x134/0x1e8
    [ 1.008837] [] of_platform_bus_create+0x198/0x1e8
    [ 1.015064] [] of_platform_bus_probe+0xa4/0x100
    [ 1.021149] [] do_one_initcall+0xd8/0x128
    [ 1.026701] [] kernel_init_freeable+0x144/0x210
    [ 1.032753] [] kernel_init+0x14/0x110
    [ 1.037973] [] ret_from_kernel_thread+0x14/0x1c

    With this commit the kernel starts mapping the interrupts listed for
    gpio-controller node. irq_domain_ops for CIU (octeon_irq_ciu_map and
    octeon_irq_ciu_xlat) refuse to handle the GPIO lines (returning -EINVAL)
    and this is causing above warning in of_device_alloc().

    Modify irq_domain_ops for CIU and CIU2 to "gracefully handle" GPIO
    lines (neither return error code nor call octeon_irq_set_ciu_mapping
    for it). This should avoid the warning.

    (As before the real setup for GPIO lines will happen using
    irq_domain_ops of gpio-controller.)

    This patch is based on Wei's patch v2 (see
    http://marc.info/?l=linux-mips&m=139511814813247).

    Signed-off-by: Andreas Herrmann
    Reported-by: Yang Wei
    Acked-by: David Daney
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6624/
    Signed-off-by: Ralf Baechle

    Andreas Herrmann
     
  • Due to name collision in ftrace safe_load and safe_store macros,
    these macros cannot take expressions as operands.

    For example, compiler will complain for a macro call like the following:
    safe_store_code(new_code2, ip + 4, faulted);

    arch/mips/include/asm/ftrace.h:61:6: note: in definition of macro 'safe_store'
    : [dst] "r" (dst), [src] "r" (src)\
    ^
    arch/mips/kernel/ftrace.c:118:2: note: in expansion of macro 'safe_store_code'
    safe_store_code(new_code2, ip + 4, faulted);
    ^
    arch/mips/kernel/ftrace.c:118:32: error: undefined named operand 'ip + 4'
    safe_store_code(new_code2, ip + 4, faulted);
    ^
    arch/mips/include/asm/ftrace.h:61:6: note: in definition of macro 'safe_store'
    : [dst] "r" (dst), [src] "r" (src)\
    ^
    arch/mips/kernel/ftrace.c:118:2: note: in expansion of macro 'safe_store_code'
    safe_store_code(new_code2, ip + 4, faulted);
    ^

    This build error is triggered by a4671094 [MIPS: ftrace: Fix icache flush
    range error]. Tweak variable naming in those macros to allow flexible
    operands.

    Signed-off-by: Viller Hsiao
    Cc: linux-mips@linux-mips.org
    Cc: rostedt@goodmis.org
    Cc: fweisbec@gmail.com
    Cc: mingo@redhat.com
    Cc: Qais.Yousef@imgtec.com
    Patchwork: https://patchwork.linux-mips.org/patch/6622/
    Signed-off-by: Ralf Baechle

    Viller Hsiao
     
  • Pull timer fix from Thomas Gleixner:
    "A single bugfix: make the scheduler clock on Vybrid SoCs count
    forward"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clocksource: vf_pit_timer: use complement for sched_clock reading

    Linus Torvalds
     

19 Mar, 2014

5 commits

  • The snd_compr_open function would always return 0 even if the compressed
    ops open function failed, obviously this is incorrect. Looks like this
    was introduced by a small typo in:

    commit a0830dbd4e42b38aefdf3fb61ba5019a1a99ea85
    ALSA: Add a reference counter to card instance

    This patch returns the value from the compressed op as it should.

    Signed-off-by: Charles Keepax
    Acked-by: Vinod Koul
    Cc:
    Signed-off-by: Takashi Iwai

    Charles Keepax
     
  • Broadcom boards support 32 GPIOs and NVRAM may have entires for higher
    ones too. Example:
    gpio23=wombo_reset

    Signed-off-by: Rafa? Mi?ecki
    Acked-by: Hauke Mehrtens
    Cc: linux-mips@linux-mips.org
    Cc: Rafał Miłecki
    Patchwork: https://patchwork.linux-mips.org/patch/6547/
    Signed-off-by: Ralf Baechle

    Rafał Miłecki
     
  • If online_css() fails, we should remove cgroup files belonging
    to css->ss.

    Signed-off-by: Li Zefan
    Signed-off-by: Tejun Heo

    Li Zefan
     
  • This reverts commit 56dd669a138c, which makes the GART visible in
    /proc/iomem. This fixes a regression: e501b3d87f00 ("agp: Support 64-bit
    APBASE") exposed an existing problem with a conflict between the GART
    region and a PCI BAR region.

    The GART addresses are bus addresses, not CPU addresses, and therefore
    should not be inserted in iomem_resource.

    On many machines, the GART region is addressable by the CPU as well as by
    an AGP master, but CPU addressability is not required by the spec. On some
    of these machines, the GART is mapped by a PCI BAR, and in that case, the
    PCI core automatically inserts it into iomem_resource, just as it does for
    all BARs.

    Inserting it here means we'll have a conflict if the PCI core later tries
    to claim the GART region, so let's drop the insertion here.

    The conflict indirectly causes X failures, as reported by Jouni in the
    bugzilla below. We detected the conflict even before e501b3d87f00, but
    after it the AGP code (fix_northbridge()) uses the PCI resource (which is
    zeroed because of the conflict) instead of reading the BAR again.

    Conflicts:
    arch/x86_64/kernel/aperture.c

    Fixes: e501b3d87f00 agp: Support 64-bit APBASE
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=72201
    Reported-and-tested-by: Jouni Mettälä
    Signed-off-by: Bjorn Helgaas

    Bjorn Helgaas
     
  • Pull another kvm fix from Paolo Bonzini:
    "A fix for a PowerPC bug that was introduced during the 3.14 merge
    window"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: PPC: Book3S HV: Fix register usage when loading/saving VRSAVE
    KVM: PPC: Book3S HV: Remove bogus duplicate code

    Linus Torvalds
     

18 Mar, 2014

4 commits

  • The code introduced in commit 1f91ecc14dee ("ALSA: oxygen: modify
    adjust_dg_dac_routing function") accidentally disregarded the old value
    of the playback routing register, so it broke the "Stereo Upmixing"
    mixer control.

    The unmuted parts of the channel routing are the same for all settings
    of the output destination, so it suffices to revert that part of the
    patch.

    Fixes: 1f91ecc14dee ('ALSA: oxygen: modify adjust_dg_dac_routing function')
    Tested-by: Roman Volkov
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • If CONFIG_TRANSPARENT_HUGEPAGE is enabled, but CONFIG_HUGETLB_PAGE is not,
    it is possible to end up with a configuration that fails to build with the
    following error:

    include/linux/huge_mm.h:125:2: error: #error "hugepages can't be allocated by the buddy allocator"

    This is due to CONFIG_FORCE_MAX_ZONEORDER defaulting to 11. It already has
    ranges that change the valid values when HUGETLB_PAGE is enabled, but this
    is not done for TRANSPARENT_HUGEPAGE. Fix by changing the HUGETLB_PAGE
    dependencies to MIPS_HUGE_TLB_SUPPORT, which includes both
    TRANSPARENT_HUGEPAGE and HUGETLB_PAGE.

    Signed-off-by: Alex Smith
    Reviewed-by: Markos Chandras
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6391/
    Signed-off-by: Ralf Baechle

    Alex Smith
     
  • Pull final final block IO fixes from Jens Axboe:
    "Yes, the last round was final. This one is final final.

    The mtip32xx fix could have waited, but it's so simple and gets rid of
    two warning spewages on load. The two block flush fixes are critical
    for blk-mq, and are the primary reason for this late pull request"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    mtip32xx: fix bad use of smp_processor_id()
    block: change flush sequence list addition back to front add
    block: fix q->flush_rq NULL pointer crash on dm-mpath flush

    Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:
    "A fair number of fixes all across arch/mips. Nothing really stands
    out though APRP, the FPU code and syscall tracing code received
    multiple patches those all were small"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: mark O32+FP64 experimental for now
    MIPS: ftrace: Fix icache flush range error
    MIPS: Fix syscall tracing interface
    MIPS: asm: syscall: Fix copying system call arguments
    MIPS: Octeon: Fix fall through on bar type OCTEON_DMA_BAR_TYPE_SMALL
    MIPS: FPU: Fix conflict of register usage
    MIPS: Replace CONFIG_MIPS64 and CONFIG_MIPS32_R2
    MIPS: math-emu: Fix prefx detection and COP1X function field definition
    MIPS: APRP: Choose the correct VPE loader by fixing the linking
    MIPS: APRP: Unregister rtlx interrupt hook at module exit
    MIPS: APRP: Fix the linking of rtlx interrupt hook
    MIPS: bcm47xx: Include missing errno.h for ENXIO
    MIPS: Alchemy: Fix unchecked kstrtoul return value
    MIPS: Fix randconfig build error.

    Linus Torvalds
     

17 Mar, 2014

9 commits

  • Commit 597ce1723e0f "MIPS: Support for 64-bit FP with O32 binaries"
    introduced support for setting Status.FR=1 for O32 binaries with the
    EF_MIPS_FP64 ELF header flag set. Whilst this flag is currently
    supported by binutils it does introduce an ABI break within userland.
    Objects built with EF_MIPS_FP64 cannot be safely linked with those built
    without it since code in either object may assume behaviour specific to
    a value of FR.

    More recently there has been discussion around avoiding further
    fragmentation of the O32 ABI whilst still allowing the use of FR=1 and
    features such as MSA which depend upon it. Details of the plan to allow
    this are still being worked on, and whilst the kernel will need the
    ability to handle FR=1 with O32 tasks it is unclear what else it may
    need to provide to a userland which seeks to avoid another ABI break. In
    order to prevent the proliferation of userland which may rely upon the
    current EF_MIPS_FP64 behaviour this patch marks the kernel support for
    it experimental & disables it by default. Under current proposals it is
    likely that this support can simply be enabled again later, but possibly
    after the introduction of further interfaces with userland and support
    for the MIPS R5 UFR feature.

    Signed-off-by: Paul Burton
    Cc: Matthew Fortune
    Cc: linux-mips@linux-mips.org
    Cc: Paul Burton
    Patchwork: https://patchwork.linux-mips.org/patch/6549/
    Signed-off-by: Ralf Baechle

    Paul Burton
     
  • Pull HID fixes from Jiri Kosina:

    - fix for ordering of device removal actions in hidraw, by Fernando
    Luis Vázquez Cao

    - fix for uninitialized workqueue usage in hid-sony, by Frank Praznik

    - device ID addition for new variant of Logitech G27, from Simon Wood

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: hid-lg4ff: Support new version of G27
    HID: hidraw: fix warning destroying hidraw device files after parent
    HID: sony: Fix work queue issues.

    Linus Torvalds
     
  • In 32-bit mode, the start address passed to flush_icache_range is
    shifted by 4 bytes before the second safe_store_code() call.

    This causes system crash from time to time because the first 4 bytes
    might not be flushed properly. This bug exists since linux-3.8.

    Also remove obsoleted comment while at it.

    Signed-off-by: Viller Hsiao
    Cc: linux-mips@linux-mips.org
    Cc: rostedt@goodmis.org
    Cc: fweisbec@gmail.com
    Cc: mingo@redhat.com
    Cc: Qais.Yousef@imgtec.com
    Patchwork: https://patchwork.linux-mips.org/patch/6586/
    Signed-off-by: Ralf Baechle

    Viller Hsiao
     
  • Fix pointer computation for stack-based arguments.

    Signed-off-by: Lars Persson
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6620/
    Signed-off-by: Ralf Baechle

    Lars Persson
     
  • The syscall_get_arguments function expects the arguments to be copied
    to the '*args' argument but instead a local variable was used to hold
    the system call argument. As a result of which, this variable was
    never passed to the filter and any filter testing the system call
    arguments would fail. This is fixed by passing the '*args' variable
    as the destination memory for the system call arguments.

    Signed-off-by: Markos Chandras
    Reviewed-by: Paul Burton
    Reviewed-by: James Hogan
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/6402/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     
  • Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Three small fixes"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/clock: Prevent tracing recursion in sched_clock_cpu()
    stop_machine: Fix^2 race between stop_two_cpus() and stop_cpus()
    sched/deadline: Deny unprivileged users to set/change SCHED_DEADLINE policy

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Misc smaller fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86: Fix leak in uncore_type_init failure paths
    perf machine: Use map as success in ip__resolve_ams
    perf symbols: Fix crash in elf_section_by_name
    perf trace: Decode architecture-specific signal numbers

    Linus Torvalds
     
  • While testing and documenting the msgrcv() MSG_COPY flag that Stanislav
    Kinsbursky added in commit 4a674f34ba04 ("ipc: introduce message queue
    copy feature" => kernel 3.8), I discovered a couple of bugs in the
    implementation. The two bugs concern MSG_COPY interactions with other
    msgrcv() flags, namely:

    (A) MSG_COPY + MSG_EXCEPT
    (B) MSG_COPY + !IPC_NOWAIT

    The bugs are distinct (and the fix for the first one is obvious),
    however my fix for both is a single-line patch, which is why I'm
    combining them in a single mail, rather than writing two mails+patches.

    ===== (A) MSG_COPY + MSG_EXCEPT =====

    With the addition of the MSG_COPY flag, there are now two msgrcv()
    flags--MSG_COPY and MSG_EXCEPT--that modify the meaning of the 'msgtyp'
    argument in unrelated ways. Specifying both in the same call is a
    logical error that is currently permitted, with the effect that MSG_COPY
    has priority and MSG_EXCEPT is ignored. The call should give an error
    if both flags are specified. The patch below implements that behavior.

    ===== (B) (B) MSG_COPY + !IPC_NOWAIT =====

    The test code that was submitted in commit 3a665531a3b7 ("selftests: IPC
    message queue copy feature test") shows MSG_COPY being used in
    conjunction with IPC_NOWAIT. In other words, if there is no message at
    the position 'msgtyp'. return immediately with the error in ENOMSG.

    What was not (fully) tested is the behavior if MSG_COPY is specified
    *without* IPC_NOWAIT, and there is an odd behavior. If the queue
    contains less than 'msgtyp' messages, then the call blocks until the
    next message is written to the queue. At that point, the msgrcv() call
    returns a copy of the newly added message, regardless of whether that
    message is at the ordinal position 'msgtyp'. This is clearly bogus, and
    problematic for applications that might want to make use of the MSG_COPY
    flag.

    I considered the following possible solutions to this problem:

    (1) Force the call to block until a message *does* appear at the
    position 'msgtyp'.

    (2) If the MSG_COPY flag is specified, the kernel should implicitly add
    IPC_NOWAIT, so that the call fails with ENOMSG for this case.

    (3) If the MSG_COPY flag is specified, but IPC_NOWAIT is not, generate
    an error (probably, EINVAL is the right one).

    I do not know if any application would really want to have the
    functionality of solution (1), especially since an application can
    determine in advance the number of messages in the queue using msgctl()
    IPC_STAT. Obviously, this solution would be the most work to implement.

    Solution (2) would have the effect of silently fixing any applications
    that tried to employ broken behavior. However, it would mean that if we
    later decided to implement solution (1), then user-space could not
    easily detect what the kernel supports (but, since I'm somewhat doubtful
    that solution (1) is needed, I'm not sure that this is much of a
    problem).

    Solution (3) would have the effect of informing broken applications that
    they are doing something broken. The downside is that this would cause
    a ABI breakage for any applications that are currently employing the
    broken behavior. However:

    a) Those applications are almost certainly not getting the results they
    expect.
    b) Possibly, those applications don't even exist, because MSG_COPY is
    currently hidden behind CONFIG_CHECKPOINT_RESTORE.

    The upside of solution (3) is that if we later decided to implement
    solution (1), user-space could determine what the kernel supports, via
    the error return.

    In my view, solution (3) is mildly preferable to solution (2), and
    solution (1) could still be done later if anyone really cares. The
    patch below implements solution (3).

    PS. For anyone out there still listening, it's the usual story:
    documenting an API (and the thinking about, and the testing of the API,
    that documentation entails) is the one of the single best ways of
    finding bugs in the API, as I've learned from a lot of experience. Best
    to do that documentation before releasing the API.

    Signed-off-by: Michael Kerrisk
    Acked-by: Stanislav Kinsbursky
    Cc: Stanislav Kinsbursky
    Cc: stable@vger.kernel.org
    Cc: Serge Hallyn
    Cc: "Eric W. Biederman"
    Cc: Pavel Emelyanov
    Cc: Al Viro
    Cc: KOSAKI Motohiro
    Signed-off-by: Linus Torvalds

    Michael Kerrisk
     

16 Mar, 2014

1 commit

  • Pull SCSI fixes from James Bottomley:
    "This is a set of six fixes. Two are instant crash/null deref types
    (storvsc and isci). The two qla2xxx are initialisation problems that
    cause MSI-X failures and card misdetection, the isci erroneous macro
    is actually illegal C that's causing a miscompile with certain gcc
    versions and the be2iscsi bad if expression is a static checker fix"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    [SCSI] storvsc: NULL pointer dereference fix
    [SCSI] qla2xxx: Poll during initialization for ISP25xx and ISP83xx
    [SCSI] isci: correct erroneous for_each_isci_host macro
    [SCSI] isci: fix reset timeout handling
    [SCSI] be2iscsi: fix bad if expression
    [SCSI] qla2xxx: Fix multiqueue MSI-X registration.

    Linus Torvalds
     

15 Mar, 2014

6 commits

  • Pull x86 fixes from Peter Anvin:
    "Two x86 fixes: Suresh's eager FPU fix, and a fix to the NUMA quirk for
    AMD northbridges.

    This only includes Suresh's fix patch, not the "mostly a cleanup"
    patch which had __init issues"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/amd/numa: Fix northbridge quirk to assign correct NUMA node
    x86, fpu: Check tsk_used_math() in kernel_fpu_end() for eager FPU

    Linus Torvalds
     
  • Pull ACPI and power management fixes from Rafael Wysocki:
    "Three of these are regression fixes, for two recent regressions and
    one introduced during the 3.13 cycle, and the fourth one is a working
    version of the fix that had to be reverted last time.

    Specifics:

    - A recent ACPI resources handling fix overlooked the fact that it
    had to update the ACPI PNP subsystem's resources parsing too and
    caused confusing warning messages to be printed during system
    intialization on some systems (with arguably buggy ACPI tables).
    Fix from Zhang Rui.

    - Moving the early ACPI initialization before timekeeping_init()
    earlier in this cycle broke fast TSC calibration on at least one
    system, so it needs to be done later, but still before
    efi_enter_virtual_mode() to allow the EFI initialization to refer
    to ACPI.

    - A change related to code duplication reduction in the cpufreq core
    inadvertently caused cpufreq intialization to fail for some CPUs
    handled by intel_pstate by adding checks that may fail for that
    driver, but aren't even necessary when it is used. The issue is
    addressed by preventing those checks from run in the configurations
    in which they aren't needed.

    - If the Hardware Reduced ACPI flag is set in the ACPI tables, system
    suspend, hibernation and ACPI power off will only work when special
    sleep control and sleep status registeres are provided (their
    addresses in the ACPI tables are not zero). If those registers are
    not available, the features in question have no chances to work, so
    they shouldn't even be regarded as supported. That helps with
    power off in particular, because alternative power off methods may
    be used then and they may actually work"

    * tag 'pm+acpi-3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / sleep: Add extra checks for HW Reduced ACPI mode sleep states
    ACPI / init: Invoke early ACPI initialization later
    cpufreq: Skip current frequency initialization for ->setpolicy drivers
    PNP / ACPI: proper handling of ACPI IO/Memory resource parsing failures

    Linus Torvalds
     
  • Pull device-mapper fixes form Mike Snitzer:
    "Two small fixes for the DM cache target:

    - fix corruption with >2TB fast device due to truncation bug
    - fix access beyond end of origin device due to a partial block"

    * tag 'dm-3.14-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm cache: fix access beyond end of origin device
    dm cache: fix truncation bug when copying a block to/from >2TB fast device

    Linus Torvalds
     
  • Bar type OCTEON_DMA_BAR_TYPE_SMALL assigns lo and hi addresses and
    then falls through to OCTEON_DMA_BAR_TYPE_BIG that re-assignes lo and
    hi addresses with totally different values. Add a break so we don't
    fall through.

    Signed-off-by: Colin Ian King
    Acked-by: David Daney
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/6529/
    Signed-off-by: Ralf Baechle

    Colin Ian King
     
  • In _restore_fp_context/_restore_fp_context32, t0 is used for both
    CP0_Status and CP1_FCSR. This is a mistake and cause FP exeception on
    boot, so fix it.

    Signed-off-by: Huacai Chen
    Tested-by: Aaro Koskinen
    Tested-by: Andreas Barth
    Cc: John Crispin
    Cc: Steven J. Hill
    Cc: Aurelien Jarno
    Cc: linux-mips@linux-mips.org
    Cc: Fuxin Zhang
    Cc: Zhangjin Wu
    Patchwork: https://patchwork.linux-mips.org/patch/6507/
    Signed-off-by: Ralf Baechle

    Huacai Chen
     
  • Commit 597ce1723e0f ("MIPS: Support for 64-bit FP with O32 binaries")
    introduced references to two undefined Kconfig macros. CONFIG_MIPS32_R2
    should clearly be replaced with CONFIG_CPU_MIPS32_R2. And CONFIG_MIPS64
    should be replaced with CONFIG_64BIT.

    Signed-off-by: Paul Bolle
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/6522/
    Tested-by: Aaro Koskinen
    Signed-off-by: Ralf Baechle

    Paul Bolle
     

14 Mar, 2014

5 commits

  • It has been reported that there is a new hardware version of the G27
    in the 'wild'. This patch add's this new revision so that it can be
    sent the command to switch to native mode.

    Reported-by: "Ivan Baldo"
    Tested-by: "evilcow"
    Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Simon Wood
     
  • For systems with multiple servers and routed fabric, all
    northbridges get assigned to the first server. Fix this by also
    using the node reported from the PCI bus. For single-fabric
    systems, the northbriges are on PCI bus 0 by definition, which
    are on NUMA node 0 by definition, so this is invarient on most
    systems.

    Tested on fam10h and fam15h single and multi-fabric systems and
    candidate for stable.

    Signed-off-by: Daniel J Blueman
    Acked-by: Steffen Persvold
    Acked-by: Borislav Petkov
    Cc:
    Link: http://lkml.kernel.org/r/1394710981-3596-1-git-send-email-daniel@numascale.com
    Signed-off-by: Ingo Molnar

    Daniel J Blueman
     
  • Pull drm fixes from Dave Airlie:
    "Pretty minor set of fixes for radeon, ttm and vmwgfx. The ttm ones
    are a regression and an oops seen on server chipsets"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/vmwgfx: Fix a surface reference corner-case in legacy emulation mode
    drm/radeon/cik: properly set compute ring status on disable
    drm/radeon/cik: stop the sdma engines in the enable() function
    drm/radeon/cik: properly set sdma ring status on disable
    drm/radeon: fix runpm disabling on non-PX harder
    drm/ttm: don't oops if no invalidate_caches()
    drm/ttm: Work around performance regression with VM_PFNMAP

    Linus Torvalds
     
  • Pull i2c Kconfig fix from Wolfram Sang.

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: Remove usage of orphaned symbol OF_I2C

    Linus Torvalds
     
  • Pull networking fixes from David Miller:
    "I know this is a bit more than you want to see, and I've told the
    wireless folks under no uncertain terms that they must severely scale
    back the extent of the fixes they are submitting this late in the
    game.

    Anyways:

    1) vmxnet3's netpoll doesn't perform the equivalent of an ISR, which
    is the correct implementation, like it should. Instead it does
    something like a NAPI poll operation. This leads to crashes.

    From Neil Horman and Arnd Bergmann.

    2) Segmentation of SKBs requires proper socket orphaning of the
    fragments, otherwise we might access stale state released by the
    release callbacks.

    This is a 5 patch fix, but the initial patches are giving
    variables and such significantly clearer names such that the
    actual fix itself at the end looks trivial.

    From Michael S. Tsirkin.

    3) TCP control block release can deadlock if invoked from a timer on
    an already "owned" socket. Fix from Eric Dumazet.

    4) In the bridge multicast code, we must validate that the
    destination address of general queries is the link local all-nodes
    multicast address. From Linus Lüssing.

    5) The x86 BPF JIT support for negative offsets puts the parameter
    for the helper function call in the wrong register. Fix from
    Alexei Starovoitov.

    6) The descriptor type used for RTL_GIGA_MAC_VER_17 chips in the
    r8169 driver is incorrect. Fix from Hayes Wang.

    7) The xen-netback driver tests skb_shinfo(skb)->gso_type bits to see
    if a packet is a GSO frame, but that's not the correct test. It
    should use skb_is_gso(skb) instead. Fix from Wei Liu.

    8) Negative msg->msg_namelen values should generate an error, from
    Matthew Leach.

    9) at86rf230 can deadlock because it takes the same lock from it's
    ISR and it's hard_start_xmit method, without disabling interrupts
    in the latter. Fix from Alexander Aring.

    10) The FEC driver's restart doesn't perform operations in the correct
    order, so promiscuous settings can get lost. Fix from Stefan
    Wahren.

    11) Fix SKB leak in SCTP cookie handling, from Daniel Borkmann.

    12) Reference count and memory leak fixes in TIPC from Ying Xue and
    Erik Hugne.

    13) Forced eviction in inet_frag_evictor() must strictly make sure all
    frags are deleted, otherwise module unload (f.e. 6lowpan) can
    crash. Fix from Florian Westphal.

    14) Remove assumptions in AF_UNIX's use of csum_partial() (which it
    uses as a hash function), which breaks on PowerPC. From Anton
    Blanchard.

    The main gist of the issue is that csum_partial() is defined only
    as a value that, once folded (f.e. via csum_fold()) produces a
    correct 16-bit checksum. It is legitimate, therefore, for
    csum_partial() to produce two different 32-bit values over the
    same data if their respective alignments are different.

    15) Fix endiannes bug in MAC address handling of ibmveth driver, also
    from Anton Blanchard.

    16) Error checks for ipv6 exthdrs offload registration are reversed,
    from Anton Nayshtut.

    17) Externally triggered ipv6 addrconf routes should count against the
    garbage collection threshold. Fix from Sabrina Dubroca.

    18) The PCI shutdown handler added to the bnx2 driver can wedge the
    chip if it was not brought up earlier already, which in particular
    causes the firmware to shut down the PHY. Fix from Michael Chan.

    19) Adjust the sanity WARN_ON_ONCE() in qdisc_list_add() because as
    currently coded it can and does trigger in legitimate situations.
    From Eric Dumazet.

    20) BNA driver fails to build on ARM because of a too large udelay()
    call, fix from Ben Hutchings.

    21) Fair-Queue qdisc holds locks during GFP_KERNEL allocations, fix
    from Eric Dumazet.

    22) The vlan passthrough ops added in the previous release causes a
    regression in source MAC address setting of outgoing headers in
    some circumstances. Fix from Peter Boström"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (70 commits)
    ipv6: Avoid unnecessary temporary addresses being generated
    eth: fec: Fix lost promiscuous mode after reconnecting cable
    bonding: set correct vlan id for alb xmit path
    at86rf230: fix lockdep splats
    net/mlx4_en: Deregister multicast vxlan steering rules when going down
    vmxnet3: fix building without CONFIG_PCI_MSI
    MAINTAINERS: add networking selftests to NETWORKING
    net: socket: error on a negative msg_namelen
    MAINTAINERS: Add tools/net to NETWORKING [GENERAL]
    packet: doc: Spelling s/than/that/
    net/mlx4_core: Load the IB driver when the device supports IBoE
    net/mlx4_en: Handle vxlan steering rules for mac address changes
    net/mlx4_core: Fix wrong dump of the vxlan offloads device capability
    xen-netback: use skb_is_gso in xenvif_start_xmit
    r8169: fix the incorrect tx descriptor version
    tools/net/Makefile: Define PACKAGE to fix build problems
    x86: bpf_jit: support negative offsets
    bridge: multicast: enable snooping on general queries only
    bridge: multicast: add sanity check for general query destination
    tcp: tcp_release_cb() should release socket ownership
    ...

    Linus Torvalds