Skip to content
  1. Mar 21, 2014
    • Linus Torvalds's avatar
      futex: revert back to the explicit waiter counting code · 11d4616b
      Linus Torvalds authored
      Srikar Dronamraju reports that commit b0c29f79
      
       ("futexes: Avoid
      taking the hb->lock if there's nothing to wake up") causes java threads
      getting stuck on futexes when runing specjbb on a power7 numa box.
      
      The cause appears to be that the powerpc spinlocks aren't using the same
      ticket lock model that we use on x86 (and other) architectures, which in
      turn result in the "spin_is_locked()" test in hb_waiters_pending()
      occasionally reporting an unlocked spinlock even when there are pending
      waiters.
      
      So this reinstates Davidlohr Bueso's original explicit waiter counting
      code, which I had convinced Davidlohr to drop in favor of figuring out
      the pending waiters by just using the existing state of the spinlock and
      the wait queue.
      
      Reported-and-tested-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
      Original-code-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      11d4616b
    • Linus Torvalds's avatar
      Merge tag 'trace-fixes-v3.14-rc7' of... · 477cc484
      Linus Torvalds authored
      Merge tag 'trace-fixes-v3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull trace fix from Steven Rostedt:
       "Vaibhav Nagarnaik discovered that since 3.10 a clean-up patch made the
        array index in the trace event format bogus.
      
        He supplied an elegant solution that uses __stringify() and also
        removes the need for the event_storage and event_storage_mutex and
        also cuts off a few K of overhead from the trace events"
      
      * tag 'trace-fixes-v3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Fix array size mismatch in format string
      477cc484
    • Hugh Dickins's avatar
      mm: fix swapops.h:131 bug if remap_file_pages raced migration · 7e09e738
      Hugh Dickins authored
      
      
      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: default avatarDave Jones <davej@redhat.com>
      Reported-and-tested-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7e09e738
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 3fb725c4
      Linus Torvalds authored
      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
      3fb725c4
    • Linus Torvalds's avatar
      Merge tag 'sound-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 92f99731
      Linus Torvalds authored
      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
      92f99731
    • Vaibhav Nagarnaik's avatar
      tracing: Fix array size mismatch in format string · 87291347
      Vaibhav Nagarnaik authored
      In event format strings, the array size is reported in two locations.
      One in array subscript and then via the "size:" attribute. The values
      reported there have a mismatch.
      
      For e.g., in sched:sched_switch the prev_comm and next_comm character
      arrays have subscript values as [32] where as the actual field size is
      16.
      
      name: sched_switch
      ID: 301
      format:
              field:unsigned short common_type;       offset:0;       size:2; signed:0;
              field:unsigned char common_flags;       offset:2;       size:1; signed:0;
              field:unsigned char common_preempt_count;       offset:3;       size:1;signed:0;
              field:int common_pid;   offset:4;       size:4; signed:1;
      
              field:char prev_comm[32];       offset:8;       size:16;        signed:1;
              field:pid_t prev_pid;   offset:24;      size:4; signed:1;
              field:int prev_prio;    offset:28;      size:4; signed:1;
              field:long prev_state;  offset:32;      size:8; signed:1;
              field:char next_comm[32];       offset:40;      size:16;        signed:1;
              field:pid_t next_pid;   offset:56;      size:4; signed:1;
              field:int next_prio;    offset:60;      size:4; signed:1;
      
      After bisection, the following commit was blamed:
      92edca07 tracing: Use direct field, type and system names
      
      This commit removes the duplication of strings for field->name and
      field->type assuming that all the strings passed in
      __trace_define_field() are immutable. This is not true for arrays, where
      the type string is created in event_storage variable and field->type for
      all array fields points to event_storage.
      
      Use __stringify() to create a string constant for the type string.
      
      Also, get rid of event_storage and event_storage_mutex that are not
      needed anymore.
      
      also, an added benefit is that this reduces the overhead of events a bit more:
      
         text    data     bss     dec     hex filename
      8424787 2036472 1302528 11763787         b3804b vmlinux
      8420814 2036408 1302528 11759750         b37086 vmlinux.patched
      
      Link: http://lkml.kernel.org/r/1392349908-29685-1-git-send-email-vnagarnaik@google.com
      
      
      
      Cc: Laurent Chavey <chavey@google.com>
      Cc: stable@vger.kernel.org # 3.10+
      Signed-off-by: default avatarVaibhav Nagarnaik <vnagarnaik@google.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      87291347
  2. Mar 20, 2014
    • Jim Quinlan's avatar
      MIPS: Make local_irq_disable macro safe for non-Mipsr2 · 71ca7588
      Jim Quinlan authored
      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 e97c5b60
      
       [MIPS: Make irqflags.h functions preempt-safe for non-mipsr2
      cpus.]  I also re-enabled the inclusion of <asm/asm-offsets.h> at the top
      of <asm/asmmacro.h>].
      
      Signed-off-by: default avatarJim Quinlan <jim2101024@gmail.com>
      Cc: linux-mips@linux-mips.org
      Cc: cernekee@gmail.com
      Patchwork: https://patchwork.linux-mips.org/patch/6164/
      
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      71ca7588
    • Hugh Dickins's avatar
      mm: fix bad rss-counter if remap_file_pages raced migration · 88784396
      Hugh Dickins authored
      
      
      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: default avatarHugh Dickins <hughd@google.com>
      Tested-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Tested-by: default avatarDave Jones <davej@redhat.com>
      Cc: Cyrill Gorcunov <gorcunov@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      88784396
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.14-fixes-3' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 7c1cfacc
      Linus Torvalds authored
      Pull PCI resource management fix from Bjorn Helgaas:
       "This is a fix for an AGP regression exposed by e501b3d8 ("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 e501b3d8,
        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"
      7c1cfacc
    • Linus Torvalds's avatar
      Merge branch 'for-3.14-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 7c389538
      Linus Torvalds authored
      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()
      7c389538
    • Andreas Herrmann's avatar
      MIPS: Octeon: Fix warning in of_device_alloc on cn3xxx · 2eddb708
      Andreas Herrmann authored
      Starting with commit 3da52787 (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] [<ffffffff811205e0>] show_stack+0x68/0x80
      [    0.979183] [<ffffffff81569c9c>] dump_stack+0x8c/0xe0
      [    0.984196] [<ffffffff81145efc>] warn_slowpath_common+0x84/0xb8
      [    0.990110] [<ffffffff81436888>] of_device_alloc+0x228/0x230
      [    0.995726] [<ffffffff814368d8>] of_platform_device_create_pdata+0x48/0xd0
      [    1.002593] [<ffffffff81436a94>] of_platform_bus_create+0x134/0x1e8
      [    1.008837] [<ffffffff81436af8>] of_platform_bus_create+0x198/0x1e8
      [    1.015064] [<ffffffff81436cc4>] of_platform_bus_probe+0xa4/0x100
      [    1.021149] [<ffffffff81100570>] do_one_initcall+0xd8/0x128
      [    1.026701] [<ffffffff816e2a10>] kernel_init_freeable+0x144/0x210
      [    1.032753] [<ffffffff81564bc4>] kernel_init+0x14/0x110
      [    1.037973] [<ffffffff8111bb44>] 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: default avatarAndreas Herrmann <andreas.herrmann@caviumnetworks.com>
      Reported-by: default avatarYang Wei <wei.yang@windriver.com>
      Acked-by: default avatarDavid Daney <david.daney@cavium.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6624/
      
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      2eddb708
    • Viller Hsiao's avatar
      MIPS: ftrace: Tweak safe_load()/safe_store() macros · b08ac66b
      Viller Hsiao authored
      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: default avatarViller Hsiao <villerhsiao@gmail.com>
      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: default avatarRalf Baechle <ralf@linux-mips.org>
      b08ac66b
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ea1cd65a
      Linus Torvalds authored
      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
      ea1cd65a
  3. Mar 19, 2014
  4. Mar 18, 2014
    • Clemens Ladisch's avatar
      ALSA: oxygen: Xonar DG(X): fix Stereo Upmixing regression · 30556441
      Clemens Ladisch authored
      The code introduced in commit 1f91ecc1 ("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: 1f91ecc1
      
       ('ALSA: oxygen: modify adjust_dg_dac_routing function')
      Tested-by: default avatarRoman Volkov <v1ron@mail.ru>
      Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      30556441
    • Alex Smith's avatar
      MIPS: Fix possible build error with transparent hugepages enabled · e4362d1e
      Alex Smith authored
      
      
      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: default avatarAlex Smith <alex.smith@imgtec.com>
      Reviewed-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6391/
      
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      e4362d1e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 9a15c944
      Linus Torvalds authored
      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
      9a15c944
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 8a21d9f6
      Linus Torvalds authored
      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.
      8a21d9f6
  5. Mar 17, 2014
    • Paul Burton's avatar
      MIPS: mark O32+FP64 experimental for now · 06e2e882
      Paul Burton authored
      Commit 597ce172
      
       "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: default avatarPaul Burton <paul.burton@imgtec.com>
      Cc: Matthew Fortune <matthew.fortune@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Cc: Paul Burton <paul.burton@imgtec.com>
      Patchwork: https://patchwork.linux-mips.org/patch/6549/
      
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      06e2e882
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 9f8b483c
      Linus Torvalds authored
      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.
      9f8b483c
    • Viller Hsiao's avatar
      MIPS: ftrace: Fix icache flush range error · a4671094
      Viller Hsiao authored
      
      
      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: default avatarViller Hsiao <villerhsiao@gmail.com>
      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: default avatarRalf Baechle <ralf@linux-mips.org>
      a4671094
    • Lars Persson's avatar
      MIPS: Fix syscall tracing interface · 86ca57b5
      Lars Persson authored
      
      
      Fix pointer computation for stack-based arguments.
      
      Signed-off-by: default avatarLars Persson <larper@axis.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6620/
      
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      86ca57b5
    • Markos Chandras's avatar
      MIPS: asm: syscall: Fix copying system call arguments · a8031d2c
      Markos Chandras authored
      
      
      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: default avatarMarkos Chandras <markos.chandras@imgtec.com>
      Reviewed-by: default avatarPaul Burton <paul.burton@imgtec.com>
      Reviewed-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/6402/
      
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a8031d2c
    • Linus Torvalds's avatar
      Linux 3.14-rc7 · dcb99fd9
      Linus Torvalds authored
      v3.14-rc7
      dcb99fd9
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 59bf6c3c
      Linus Torvalds authored
      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
      59bf6c3c
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b44eeb4d
      Linus Torvalds authored
      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
      b44eeb4d
    • Michael Kerrisk's avatar
      ipc: Fix 2 bugs in msgrcv() MSG_COPY implementation · 4f87dac3
      Michael Kerrisk authored
      While testing and documenting the msgrcv() MSG_COPY flag that Stanislav
      Kinsbursky added in commit 4a674f34 ("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 3a665531
      
       ("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: default avatarMichael Kerrisk <mtk.manpages@gmail.com>
      Acked-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
      Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
      Cc: stable@vger.kernel.org
      Cc: Serge Hallyn <serge.hallyn@canonical.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Cc: Pavel Emelyanov <xemul@parallels.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4f87dac3
  6. Mar 16, 2014
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 3b4df68d
      Linus Torvalds authored
      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.
      3b4df68d
  7. Mar 15, 2014
  8. Mar 14, 2014