1. 01 Jul, 2014 1 commit
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Optimize function graph to be called directly · 79922b80
      Steven Rostedt (Red Hat) authored
      
      
      Function graph tracing is a bit different than the function tracers, as
      it is processed after either the ftrace_caller or ftrace_regs_caller
      and we only have one place to modify the jump to ftrace_graph_caller,
      the jump needs to happen after the restore of registeres.
      
      The function graph tracer is dependent on the function tracer, where
      even if the function graph tracing is going on by itself, the save and
      restore of registers is still done for function tracing regardless of
      if function tracing is happening, before it calls the function graph
      code.
      
      If there's no function tracing happening, it is possible to just call
      the function graph tracer directly, and avoid the wasted effort to save
      and restore regs for function tracing.
      
      This requires adding new flags to the dyn_ftrace records:
      
        FTRACE_FL_TRAMP
        FTRACE_FL_TRAMP_EN
      
      The first is set if the count for the record is one, and the ftrace_ops
      associated to that record has its own trampoline. That way the mcount code
      can call that trampoline directly.
      
      In the future, trampolines can be added to arbitrary ftrace_ops, where you
      can have two or more ftrace_ops registered to ftrace (like kprobes and perf)
      and if they are not tracing the same functions, then instead of doing a
      loop to check all registered ftrace_ops against their hashes, just call the
      ftrace_ops trampoline directly, which would call the registered ftrace_ops
      function directly.
      
      Without this patch perf showed:
      
        0.05%  hackbench  [kernel.kallsyms]  [k] ftrace_caller
        0.05%  hackbench  [kernel.kallsyms]  [k] arch_local_irq_save
        0.05%  hackbench  [kernel.kallsyms]  [k] native_sched_clock
        0.04%  hackbench  [kernel.kallsyms]  [k] __buffer_unlock_commit
        0.04%  hackbench  [kernel.kallsyms]  [k] preempt_trace
        0.04%  hackbench  [kernel.kallsyms]  [k] prepare_ftrace_return
        0.04%  hackbench  [kernel.kallsyms]  [k] __this_cpu_preempt_check
        0.04%  hackbench  [kernel.kallsyms]  [k] ftrace_graph_caller
      
      See that the ftrace_caller took up more time than the ftrace_graph_caller
      did.
      
      With this patch:
      
        0.05%  hackbench  [kernel.kallsyms]  [k] __buffer_unlock_commit
        0.04%  hackbench  [kernel.kallsyms]  [k] call_filter_check_discard
        0.04%  hackbench  [kernel.kallsyms]  [k] ftrace_graph_caller
        0.04%  hackbench  [kernel.kallsyms]  [k] sched_clock
      
      The ftrace_caller is no where to be found and ftrace_graph_caller still
      takes up the same percentage.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      79922b80
  2. 30 Jun, 2014 3 commits
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Add ftrace_rec_counter() macro to simplify the code · 0376bde1
      Steven Rostedt (Red Hat) authored
      
      
      The ftrace dynamic record has a flags element that also has a counter.
      Instead of hard coding "rec->flags & ~FTRACE_FL_MASK" all over the
      place. Use a macro instead.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      0376bde1
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Use macros for numbers in ftrace rec shift bits · cf2cb0b2
      Steven Rostedt (Red Hat) authored
      
      
      As new flags will be added to the ftrace dynamic record, and since
      the flags field is also a counter, converting the numbers used to
      do the shifting and masking into a set of macros where we only need
      to deal with the max bit count of the counter and the number of bits
      for the flags will prevent mistakes in the future.
      
      Dealing with only two numbers is much easier than updating all the
      macros that deal with shifting and masking.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      cf2cb0b2
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Allow no regs if no more callbacks require it · 4fbb48cb
      Steven Rostedt (Red Hat) authored
      
      
      When registering a function callback for the function tracer, the ops
      can specify if it wants to save full regs (like an interrupt would)
      for each function that it traces, or if it does not care about regs
      and just wants to have the fastest return possible.
      
      Once a ops has registered a function, if other ops register that
      function they all will receive the regs too. That's because it does
      the work once, it does it for everyone.
      
      Now if the ops wanting regs unregisters the function so that there's
      only ops left that do not care about regs, those ops will still
      continue getting regs and going through the work for it on that
      function. This is because the disabling of the rec counter only
      sees the ops registered, and does not see the ops that are still
      attached, and does not know if the current ops that are still attached
      want regs or not. To play it safe, it just keeps regs being processed
      until no function is registered anymore.
      
      Instead of doing that, check the ops that are still registered for that
      function and if none want regs for it anymore, then disable the
      processing of regs.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      4fbb48cb
  3. 29 Jun, 2014 10 commits
  4. 28 Jun, 2014 15 commits
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 24b414d5
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A few driver specific fixes, the biggest one being a fix for the newly
        added Qualcomm SPI controller driver to make it not use its internal
        chip select due to hardware bugs, replacing it with GPIOs"
      
      * tag 'spi-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: qup: Remove chip select function
        spi: qup: Fix order of spi_register_master
        spi: sh-sci: fix use-after-free in sh_sci_spi_remove()
        spi/pxa2xx: fix incorrect SW mode chipselect setting for BayTrail LPSS SPI
      24b414d5
    • Linus Torvalds's avatar
      Merge tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 4194976b
      Linus Torvalds authored
      Pull regulator fixes from Mark Brown:
       "Several driver specific fixes here, the palmas fixes being especially
        important for a range of boards - the recent updates to support new
        devices have introduced several regressions"
      
      * tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: tps65218: Correct the the config register for LDO1
        regulator: tps65218: Add the missing of_node assignment in probe
        regulator: palmas: fix typo in enable_reg calculation
        regulator: bcm590xx: fix vbus name
        regulator: palmas: Fix SMPS enable/disable/is_enabled
      4194976b
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · eb477e03
      Linus Torvalds authored
      Pull SCSI target fixes from Nicholas Bellinger:
       "Mostly minor fixes this time around.  The highlights include:
      
         - iscsi-target CHAP authentication fixes to enforce explicit key
           values (Tejas Vaykole + rahul.rane)
         - fix a long-standing OOPs in target-core when a alua configfs
           attribute is accessed after port symlink has been removed.
           (Sebastian Herbszt)
         - fix a v3.10.y iscsi-target regression causing the login reject
           status class/detail to be ignored (Christoph Vu-Brugier)
         - fix a v3.10.y iscsi-target regression to avoid rejecting an
           existing ITT during Data-Out when data-direction is wrong (Santosh
           Kulkarni + Arshad Hussain)
         - fix a iscsi-target related shutdown deadlock on UP kernels (Mikulas
           Patocka)
         - fix a v3.16-rc1 build issue with vhost-scsi + !CONFIG_NET (MST)"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        iscsi-target: fix iscsit_del_np deadlock on unload
        iovec: move memcpy_from/toiovecend to lib/iovec.c
        iscsi-target: Avoid rejecting incorrect ITT for Data-Out
        tcm_loop: Fix memory leak in tcm_loop_submission_work error path
        iscsi-target: Explicily clear login response PDU in exception path
        target: Fix left-over se_lun->lun_sep pointer OOPs
        iscsi-target; Enforce 1024 byte maximum for CHAP_C key value
        iscsi-target: Convert chap_server_compute_md5 to use kstrtoul
      eb477e03
    • Mark Brown's avatar
    • Mark Brown's avatar
      Merge remote-tracking branches 'regulator/fix/bcm590xx',... · 11767484
      Mark Brown authored
      Merge remote-tracking branches 'regulator/fix/bcm590xx', 'regulator/fix/palmas' and 'regulator/fix/tps65218' into regulator-linus
      11767484
    • Mikulas Patocka's avatar
      iscsi-target: fix iscsit_del_np deadlock on unload · 81a9c5e7
      Mikulas Patocka authored
      On uniprocessor preemptible kernel, target core deadlocks on unload. The
      following events happen:
      * iscsit_del_np is called
      * it calls send_sig(SIGINT, np->np_thread, 1);
      * the scheduler switches to the np_thread
      * the np_thread is woken up, it sees that kthread_should_stop() returns
        false, so it doesn't terminate
      * the np_thread clears signals with flush_signals(current); and goes back
        to sleep in iscsit_accept_np
      * the scheduler switches back to iscsit_del_np
      * iscsit_del_np calls kthread_stop(np->np_thread);
      * the np_thread is waiting in iscsit_accept_np and it doesn't respond to
        kthread_stop
      
      The deadlock could be resolved if the administrator sends SIGINT signal to
      the np_thread with killall -INT iscsi_np
      
      The reproducible deadlock was introduced in commit
      db6077fd
      
      , but the thread-stopping code was
      racy even before.
      
      This patch fixes the problem. Using kthread_should_stop to stop the
      np_thread is unreliable, so we test np_thread_state instead. If
      np_thread_state equals ISCSI_NP_THREAD_SHUTDOWN, the thread exits.
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      81a9c5e7
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 3e7b256c
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
      
       - fix VT-d regression with handling multiple RMRR entries per device
      
       - fix a small race that was left in the mmu_notifier handling in the
         AMD IOMMUv2 driver
      
      * tag 'iommu-fixes-v3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Fix small race between invalidate_range_end/start
        iommu/vt-d: fix bug in handling multiple RMRRs for the same PCI device
      3e7b256c
    • Linus Torvalds's avatar
      Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d1fc98ba
      Linus Torvalds authored
      Pull x86 fixes from Peter Anvin:
       "A pile of fixes related to the VDSO, EFI and 32-bit badsys handling.
      
        It turns out that removing the section headers from the VDSO breaks
        gdb, so this puts back most of them.  A very simple typo broke
        rt_sigreturn on some versions of glibc, with obviously disastrous
        results.  The rest is pretty much fixes for the corresponding fallout.
      
        The EFI fixes fixes an arithmetic overflow on 32-bit systems and
        quiets some build warnings.
      
        Finally, when invoking an invalid system call number on x86-32, we
        bypass a bunch of handling, which can make the audit code oops"
      
      * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi-pstore: Fix an overflow on 32-bit builds
        x86/vdso: Error out in vdso2c if DT_RELA is present
        x86/vdso: Move DISABLE_BRANCH_PROFILING into the vdso makefile
        x86_32, signal: Fix vdso rt_sigreturn
        x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508)
        x86/vdso: Create .build-id links for unstripped vdso files
        x86/vdso: Remove some redundant in-memory section headers
        x86/vdso: Improve the fake section headers
        x86/vdso2c: Use better macros for ELF bitness
        x86/vdso: Discard the __bug_table section
        efi: Fix compiler warnings (unused, const, type)
      d1fc98ba
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · c9a60666
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "This is dominated by a large number of changes necessary for the MIPS
        BPF code.  code.  Aside of that there are
      
         - a fix for the MSC system controller support code.
         - a Turbochannel fix.
         - a recordmcount fix that's MIPS-specific.
         - barrier fixes to smp-cps / pm-cps after unrelated changes elsewhere
           in the kernel.
         - revert support for MSA registers in the signal frames.  The
           reverted patch did modify the signal stack frame which of course is
           inacceptable.
         - fix math-emu build breakage with older compilers.
         - some related cleanup.
         - fix Lasat build error if CONFIG_CRC32 isn't set to y by the user"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (27 commits)
        MIPS: Lasat: Fix build error if CRC32 is not enabled.
        TC: Handle device_register() errors.
        MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region
        MIPS: bpf: Fix stack space allocation for BPF memwords on MIPS64
        MIPS: BPF: Use 32 or 64-bit load instruction to load an address to register
        MIPS: bpf: Fix PKT_TYPE case for big-endian cores
        MIPS: BPF: Prevent kernel fall over for >=32bit shifts
        MIPS: bpf: Drop update_on_xread and always initialize the X register
        MIPS: bpf: Fix is_range() semantics
        MIPS: bpf: Use pr_debug instead of pr_warn for unhandled opcodes
        MIPS: bpf: Fix return values for VLAN_TAG_PRESENT case
        MIPS: bpf: Use correct mask for VLAN_TAG case
        MIPS: bpf: Fix branch conditional for BPF_J{GT/GE} cases
        MIPS: bpf: Add SEEN_SKB to flags when looking for the PKT_TYPE
        MIPS: bpf: Use 'andi' instead of 'and' for the VLAN cases
        MIPS: bpf: Return error code if the offset is a negative number
        MIPS: bpf: Use the LO register to get division's quotient
        MIPS: mm: uasm: Fix lh micro-assembler instruction
        MIPS: uasm: Add SLT uasm instruction
        MIPS: uasm: Add s3s1s2 instruction builder
        ...
      c9a60666
    • Linus Torvalds's avatar
      Merge tag 'arc-fixes-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 1857a5b6
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
       "Some SMP changes, a ptrace request for NPTL debugging, bunch of build
        breakages/warnings"
      
      * tag 'arc-fixes-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: [SMP] Enable icache coherency
        ARC: [SMP] Fix IPI IRQ registration
        ARC: Implement ptrace(PTRACE_GET_THREAD_AREA)
        ARC: optimize kernel bss clearing in early boot code
        ARC: Fix build breakage for !CONFIG_ARC_DW2_UNWIND
        ARC: fix build warning in devtree
        ARC: remove checks for CONFIG_ARC_MMU_V4
      1857a5b6
    • Linus Torvalds's avatar
      Merge tag 'compress-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 8dd68eb3
      Linus Torvalds authored
      Pull compress bugfix from Greg KH:
       "Here is another lz4 bugfix for 3.16-rc3 that resolves a reported issue
        with that compression algorithm"
      
      * tag 'compress-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        lz4: fix another possible overrun
      8dd68eb3
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.16-rc1-tag' of... · 772205d8
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb
      
      Pull swiotlb bugfix from Konrad Rzeszutek Wilk:
       "One bug-fix that had been in tree for quite some time.  We had assumed
        that the physical address zero was invalid and would fail it.  But
        that is not true and on some architectures it is not reserved and
        valid.  This fixes it"
      
      * tag 'stable/for-linus-3.16-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb: don't assume PA 0 is invalid
      772205d8
    • Linus Torvalds's avatar
      Merge tag 'sound-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · cf0d1356
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here includes a few patchset for fixing mostly HD-audio issues in
        addition to a patch assuring the compress API bytes alignment and a
        fix for the die-hard existing race condition at USB-audio
        disconnection.  The volume looks big in Realtek HD-audio code, but
        it's just a translation of the fixup tables, and the actual changes
        are rather trivial"
      
      * tag 'sound-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display controller
        ALSA: usb-audio: Fix races at disconnection and PCM closing
        ALSA: hda - Adjust speaker HPF and add LED support for HP Spectre 13
        ALSA: hda - Make the pin quirk tables use the SND_HDA_PIN_QUIRK macro
        ALSA: hda - Make a SND_HDA_PIN_QUIRK macro
        ALSA: hda - Add pin quirk for Dell XPS 15
        ALSA: hda - hdmi: call overridden init on resume
        ALSA: hda - Fix usage of "model" module parameter
        ALSA: compress: fix the struct alignment to 4 bytes
      cf0d1356
    • Linus Torvalds's avatar
      Merge tag 'mfd-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 5ded6ea4
      Linus Torvalds authored
      Pull MFD fixes from Lee Jones:
       "Couple of simple fixes due for the v3.16 -rcs"
      
      * tag 'mfd-fixes-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
        mfd: ab8500: Fix dt irq mapping
        mfd: davinci: Voicecodec needs regmap_mmio
        mfd: STw481x: Allow modular build
        mfd: UCB1x00: Enable modular build
      5ded6ea4
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · c163b524
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Exynos, i915 and msm fixes and one core fix.
      
        exynos:
           hdmi power off and mixer issues
      
        msm:
           iommu, build fixes,
      
        i915:
           regression races and warning fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (22 commits)
        drm/i915: vlv_prepare_pll is only needed in case of non DSI interfaces
        drm: fix NULL pointer access by wrong ioctl
        drm/exynos: enable vsync interrupt while waiting for vblank
        drm/exynos: soft reset mixer before reconfigure after power-on
        drm/exynos: allow multiple layer updates per vsync for mixer
        drm/i915: Hold the table lock whilst walking the file's idr and counting the objects in debugfs
        drm/i915: BDW: Adding Reserved PCI IDs.
        drm/i915: Only mark the ctx as initialised after a SET_CONTEXT operation
        drm/exynos: stop mixer before gating clocks during poweroff
        drm/exynos: set power state variable after enabling clocks and power
        drm/exynos: disable unused windows on apply
        drm/exynos: Fix de-registration ordering
        drm/exynos: change zero to NULL for sparse
        drm/exynos: dpi: Fix NULL pointer dereference with legacy bindings
        drm/exynos: hdmi: fix power order issue
        drm/i915: default to having backlight if VBT not available
        drm/i915: cache hw power well enabled state
        drm/msm: fix IOMMU cleanup for -EPROBE_DEFER
        drm/msm: use PAGE_ALIGNED instead of IS_ALIGNED(PAGE_SIZE)
        drm/msm/hdmi: set hdp clock rate before prepare_enable
        ...
      c163b524
  5. 27 Jun, 2014 11 commits