1. 14 Nov, 2014 7 commits
    • Rasmus Villemoes's avatar
      trace: Replace single-character seq_puts with seq_putc · 1177e436
      Rasmus Villemoes authored
      Printing a single character to a seqfile might as well be done with
      seq_putc instead of seq_puts; this avoids a strlen() call and a memory
      access. It also shaves another few bytes off the generated code.
      
      Link: http://lkml.kernel.org/r/1415479332-25944-4-git-send-email-linux@rasmusvillemoes.dkSigned-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      1177e436
    • Rasmus Villemoes's avatar
      tracing: Merge consecutive seq_puts calls · d79ac28f
      Rasmus Villemoes authored
      Consecutive seq_puts calls with literal strings can be merged to a
      single call. This reduces the size of the generated code, and can also
      lead to slight .rodata reduction (because of fewer nul and padding
      bytes). It should also shave a off a few clock cycles.
      
      Link: http://lkml.kernel.org/r/1415479332-25944-3-git-send-email-linux@rasmusvillemoes.dkSigned-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      d79ac28f
    • Rasmus Villemoes's avatar
      tracing: Replace seq_printf by simpler equivalents · fa6f0cc7
      Rasmus Villemoes authored
      Using seq_printf to print a simple string or a single character is a
      lot more expensive than it needs to be, since seq_puts and seq_putc
      exist.
      
      These patches do
      
        seq_printf(m, s) -> seq_puts(m, s)
        seq_printf(m, "%s", s) -> seq_puts(m, s)
        seq_printf(m, "%c", c) -> seq_putc(m, c)
      
      Subsequent patches will simplify further.
      
      Link: http://lkml.kernel.org/r/1415479332-25944-2-git-send-email-linux@rasmusvillemoes.dkSigned-off-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      fa6f0cc7
    • Daniel Thompson's avatar
      tracing: kdb: Fix kernel livelock with empty buffers · 8520dedb
      Daniel Thompson authored
      Currently kdb's ftdump command will livelock by constantly printk'ing
      the empty string at KERN_EMERG level if it run when the ftrace system is
      not in use. This occurs because trace_empty() never returns false when
      the ring buffers are left at the start of a non-consuming read [launched
      by ring_buffer_read_start()].
      
      This patch changes the loop exit condition to use the result of
      trace_find_next_entry_inc(). Effectively this switches the non-consuming
      kdb dumper to follow the approach of the non-consuming userspace
      interface [s_next()] rather than the consuming ftrace_dump().
      
      Link: http://lkml.kernel.org/r/1415277716-19419-3-git-send-email-daniel.thompson@linaro.org
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: John Stultz <john.stultz@linaro.org>
      Cc: Sumit Semwal <sumit.semwal@linaro.org>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      8520dedb
    • Daniel Thompson's avatar
      tracing: kdb: Fix kernel panic during ftdump · c270cc75
      Daniel Thompson authored
      Currently kdb's ftdump command unconditionally crashes due to a null
      pointer de-reference whenever the command is run. This in turn causes
      the kernel to panic.
      
      The abridged stacktrace (gathered with ARCH=arm) is:
      
      --- cut here ---
      [<c09535ac>] (panic) from [<c02132dc>] (die+0x264/0x440)
      [<c02132dc>] (die) from [<c0952eb8>]
      (__do_kernel_fault.part.11+0x74/0x84)
      [<c0952eb8>] (__do_kernel_fault.part.11) from [<c021f954>]
      (do_page_fault+0x1d0/0x3c4)
      [<c021f954>] (do_page_fault) from [<c020846c>] (do_DataAbort+0x48/0xac)
      
      [<c020846c>] (do_DataAbort) from [<c0213c58>] (__dabt_svc+0x38/0x60)
      Exception stack(0xc0deba88 to 0xc0debad0)
      ba80:                   e8c29180 00000001 e9854304 e9854300 c0f567d8
      c0df2580
      baa0: 00000000 00000000 00000000 c0f117b8 c0e3a3c0 c0debb0c 00000000
      c0debad0
      bac0: 0000672e c02f4d60 60000193 ffffffff
      [<c0213c58>] (__dabt_svc) from [<c02f4d60>] (kdb_ftdump+0x1e4/0x3d8)
      [<c02f4d60>] (kdb_ftdump) from [<c02ce328>] (kdb_parse+0x2b8/0x698)
      [<c02ce328>] (kdb_parse) from [<c02ceef0>] (kdb_main_loop+0x52c/0x784)
      [<c02ceef0>] (kdb_main_loop) from [<c02d1b0c>] (kdb_stub+0x238/0x490)
      --- cut here ---
      
      The NULL deref occurs due to the initialized use of struct trace_iter's
      buffer_iter member.
      
      This is a regression, albeit a fairly elderly one. It was introduced
      by commit 6d158a81 ("tracing: Remove NR_CPUS array from
      trace_iterator").
      
      This patch solves this by providing a collection of ring_buffer_iter(s)
      and using this to initialize buffer_iter. Note that static allocation
      is used solely because the trace_iter itself is also static allocated.
      Static allocation also means that we have to NULL-ify the pointer during
      cleanup to avoid use-after-free problems.
      
      Link: http://lkml.kernel.org/r/1415277716-19419-2-git-send-email-daniel.thompson@linaro.org
      
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      c270cc75
    • Luis Claudio R. Goncalves's avatar
      tracing: Fix traceoff_on_warning handling on boot command line · 933ff9f2
      Luis Claudio R. Goncalves authored
      According to the documentation, adding "traceoff_on_warning" to the boot
      command line should be enough to enable the feature. But right now it is
      necessary to specify "traceoff_on_warning=". Along with fixing that, also
      verify if the value passed, if any, is either "0" or "off".
      
      Link: http://lkml.kernel.org/r/20141112231400.GL12281@uudg.orgSigned-off-by: default avatarLuis Claudio R. Goncalves <lgoncalv@redhat.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      933ff9f2
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Have the control_ops get a trampoline · fe578ba3
      Steven Rostedt (Red Hat) authored
      With the new logic, if only a single user of ftrace function hooks is
      used, it will get its own trampoline assigned to it.
      
      The problem is that the control_ops is an indirect ops that perf ops
      uses. What that means is that when perf registers its ops with
      register_ftrace_function(), it has the CONTROL flag set and gets added
      to the control list instead of the global ftrace list. The control_ops
      gets added to that instead and the mcount trampoline calls the control_ops
      function. The control_ops function will iterate the control list and
      call the ops functions that are attached to it.
      
      But currently the trampoline is added to the perf ops and not the
      control ops, and when ftrace tries to find a trampoline hook for it,
      it fails to find one and gives the following splat:
      
       ------------[ cut here ]------------
       WARNING: CPU: 0 PID: 10133 at kernel/trace/ftrace.c:2033 ftrace_get_addr_new+0x6f/0xc0()
       Modules linked in: [...]
       CPU: 0 PID: 10133 Comm: perf Tainted: P               3.18.0-rc1-test+ #388
       Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v02.05 05/07/2012
        00000000000007f1 ffff8800c2643bc8 ffffffff814fca6e ffff88011ea0ed01
        0000000000000000 ffff8800c2643c08 ffffffff81041ffd 0000000000000000
        ffffffff810c388c ffffffff81a5a350 ffff880119b00000 ffffffff810001c8
       Call Trace:
        [<ffffffff814fca6e>] dump_stack+0x46/0x58
        [<ffffffff81041ffd>] warn_slowpath_common+0x81/0x9b
        [<ffffffff810c388c>] ? ftrace_get_addr_new+0x6f/0xc0
        [<ffffffff810001c8>] ? 0xffffffff810001c8
        [<ffffffff81042031>] warn_slowpath_null+0x1a/0x1c
        [<ffffffff810c388c>] ftrace_get_addr_new+0x6f/0xc0
        [<ffffffff8102e938>] ftrace_replace_code+0xd6/0x334
        [<ffffffff810c4116>] ftrace_modify_all_code+0x41/0xc5
        [<ffffffff8102eba6>] arch_ftrace_update_code+0x10/0x19
        [<ffffffff810c293c>] ftrace_run_update_code+0x21/0x42
        [<ffffffff810c298f>] ftrace_startup_enable+0x32/0x34
        [<ffffffff810c3049>] ftrace_startup+0x14e/0x15a
        [<ffffffff810c307c>] register_ftrace_function+0x27/0x40
        [<ffffffff810dc118>] perf_ftrace_event_register+0x3e/0xee
        [<ffffffff810dbfbe>] perf_trace_init+0x29d/0x2a9
        [<ffffffff810eb422>] perf_tp_event_init+0x27/0x3a
        [<ffffffff810f18bc>] perf_init_event+0x9e/0xed
        [<ffffffff810f1ba4>] perf_event_alloc+0x299/0x330
        [<ffffffff810f236b>] SYSC_perf_event_open+0x3ee/0x816
        [<ffffffff8115a066>] ? mntput+0x2d/0x2f
        [<ffffffff81142b00>] ? __fput+0xa7/0x1b2
        [<ffffffff81091300>] ? do_gettimeofday+0x22/0x3a
        [<ffffffff810f279c>] SyS_perf_event_open+0x9/0xb
        [<ffffffff81502a92>] system_call_fastpath+0x12/0x17
       ---[ end trace 81a53565150e4982 ]---
       Bad trampoline accounting at: ffffffff810001c8 (run_init_process+0x0/0x2d) (10000001)
      
      Update the control_ops trampoline instead of the perf ops one.
      
      Reported-by: lkp@01.org
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      fe578ba3
  2. 11 Nov, 2014 6 commits
  3. 31 Oct, 2014 2 commits
    • Steven Rostedt (Red Hat)'s avatar
      ftrace/x86: Show trampoline call function in enabled_functions · 15d5b02c
      Steven Rostedt (Red Hat) authored
      The file /sys/kernel/debug/tracing/eneabled_functions is used to debug
      ftrace function hooks. Add to the output what function is being called
      by the trampoline if the arch supports it.
      
      Add support for this feature in x86_64.
      
      Cc: H. Peter Anvin <hpa@linux.intel.com>
      Tested-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Tested-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      15d5b02c
    • Steven Rostedt (Red Hat)'s avatar
      ftrace/x86: Add dynamic allocated trampoline for ftrace_ops · f3bea491
      Steven Rostedt (Red Hat) authored
      The current method of handling multiple function callbacks is to register
      a list function callback that calls all the other callbacks based on
      their hash tables and compare it to the function that the callback was
      called on. But this is very inefficient.
      
      For example, if you are tracing all functions in the kernel and then
      add a kprobe to a function such that the kprobe uses ftrace, the
      mcount trampoline will switch from calling the function trace callback
      to calling the list callback that will iterate over all registered
      ftrace_ops (in this case, the function tracer and the kprobes callback).
      That means for every function being traced it checks the hash of the
      ftrace_ops for function tracing and kprobes, even though the kprobes
      is only set at a single function. The kprobes ftrace_ops is checked
      for every function being traced!
      
      Instead of calling the list function for functions that are only being
      traced by a single callback, we can call a dynamically allocated
      trampoline that calls the callback directly. The function graph tracer
      already uses a direct call trampoline when it is being traced by itself
      but it is not dynamically allocated. It's trampoline is static in the
      kernel core. The infrastructure that called the function graph trampoline
      can also be used to call a dynamically allocated one.
      
      For now, only ftrace_ops that are not dynamically allocated can have
      a trampoline. That is, users such as function tracer or stack tracer.
      kprobes and perf allocate their ftrace_ops, and until there's a safe
      way to free the trampoline, it can not be used. The dynamically allocated
      ftrace_ops may, although, use the trampoline if the kernel is not
      compiled with CONFIG_PREEMPT. But that will come later.
      Tested-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Tested-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      f3bea491
  4. 24 Oct, 2014 2 commits
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Fix checking of trampoline ftrace_ops in finding trampoline · 4fc40904
      Steven Rostedt (Red Hat) authored
      When modifying code, ftrace has several checks to make sure things
      are being done correctly. One of them is to make sure any code it
      modifies is exactly what it expects it to be before it modifies it.
      In order to do so with the new trampoline logic, it must be able
      to find out what trampoline a function is hooked to in order to
      see if the code that hooks to it is what's expected.
      
      The logic to find the trampoline from a record (accounting descriptor
      for a function that is hooked) needs to only look at the "old_hash"
      of an ops that is being modified. The old_hash is the list of function
      an ops is hooked to before its update. Since a record would only be
      pointing to an ops that is being modified if it was already hooked
      before.
      
      Currently, it can pick a modified ops based on its new functions it
      will be hooked to, and this picks the wrong trampoline and causes
      the check to fail, disabling ftrace.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      
      ftrace: squash into ordering of ops for modification
      4fc40904
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Set ops->old_hash on modifying what an ops hooks to · 8252ecf3
      Steven Rostedt (Red Hat) authored
      The code that checks for trampolines when modifying function hooks
      tests against a modified ops "old_hash". But the ops old_hash pointer
      is not being updated before the changes are made, making it possible
      to not find the right hash to the callback and possibly causing
      ftrace to break in accounting and disable itself.
      
      Have the ops set its old_hash before the modifying takes place.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      8252ecf3
  5. 20 Oct, 2014 2 commits
    • Linus Torvalds's avatar
      Linux 3.18-rc1 · f114040e
      Linus Torvalds authored
      f114040e
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 4d3639ac
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A batch of fixes that have come in during the merge window.
      
        Some of them are defconfig updates for things that have now landed,
        some errata additions and a few general scattered fixes.
      
        There's also a qcom DT update that adds support for SATA on AP148, and
        basic support for Sony Xperia Z1 and CM-QS600 platforms that seemed
        isolated enough that we could merge it even if it's late"
      
      * tag 'arm-soc-fixes-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        MAINTAINERS: corrected bcm2835 search
        ARM: dts: Explicitly set dr_mode on exynos5420-arndale-octa
        ARM: dts: Explicitly set dr_mode on exynos Peach boards
        ARM: dts: qcom: add CM-QS600 board
        ARM: dts: qcom: Add initial DTS file for Sony Xperia Z1 phone
        ARM: dts: qcom: Add SATA support on IPQ8064/AP148
        MAINTAINERS: Update Santosh Shilimkar's email id
        ARM: sunxi_defconfig: enable CONFIG_REGULATOR
        ARM: dts: Disable smc91x on n900 until bootloader dependency is removed
        ARM: omap2plus_defconfig: Enable ARM erratum 430973 for omap3
        ARM: exynos_defconfig: enable USB gadget support
        ARM: exynos_defconfig: Enable Maxim 77693 and I2C GPIO drivers
        ARM: mm: Fix ifdef around cpu_*_do_[suspend, resume] ops
        ARM: EXYNOS: Fix build with PM_SLEEP=n and ARM_EXYNOS_CPUIDLE=n
        ARM: SAMSUNG: Restore Samsung PM Debug functionality
        ARM: dts: Fix pull setting in sd4_width8 pin group for exynos4x12
        ARM: exynos_defconfig: Enable SBS battery support
        ARM: exynos_defconfig: Enable Control Groups support
        ARM: exynos_defconfig: Enable Atmel maXTouch support
        ARM: exynos_defconfig: Enable MAX77802
      4d3639ac
  6. 19 Oct, 2014 17 commits
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/eparis/audit · ab074ade
      Linus Torvalds authored
      Pull audit updates from Eric Paris:
       "So this change across a whole bunch of arches really solves one basic
        problem.  We want to audit when seccomp is killing a process.  seccomp
        hooks in before the audit syscall entry code.  audit_syscall_entry
        took as an argument the arch of the given syscall.  Since the arch is
        part of what makes a syscall number meaningful it's an important part
        of the record, but it isn't available when seccomp shoots the
        syscall...
      
        For most arch's we have a better way to get the arch (syscall_get_arch)
        So the solution was two fold: Implement syscall_get_arch() everywhere
        there is audit which didn't have it.  Use syscall_get_arch() in the
        seccomp audit code.  Having syscall_get_arch() everywhere meant it was
        a useless flag on the stack and we could get rid of it for the typical
        syscall entry.
      
        The other changes inside the audit system aren't grand, fixed some
        records that had invalid spaces.  Better locking around the task comm
        field.  Removing some dead functions and structs.  Make some things
        static.  Really minor stuff"
      
      * git://git.infradead.org/users/eparis/audit: (31 commits)
        audit: rename audit_log_remove_rule to disambiguate for trees
        audit: cull redundancy in audit_rule_change
        audit: WARN if audit_rule_change called illegally
        audit: put rule existence check in canonical order
        next: openrisc: Fix build
        audit: get comm using lock to avoid race in string printing
        audit: remove open_arg() function that is never used
        audit: correct AUDIT_GET_FEATURE return message type
        audit: set nlmsg_len for multicast messages.
        audit: use union for audit_field values since they are mutually exclusive
        audit: invalid op= values for rules
        audit: use atomic_t to simplify audit_serial()
        kernel/audit.c: use ARRAY_SIZE instead of sizeof/sizeof[0]
        audit: reduce scope of audit_log_fcaps
        audit: reduce scope of audit_net_id
        audit: arm64: Remove the audit arch argument to audit_syscall_entry
        arm64: audit: Add audit hook in syscall_trace_enter/exit()
        audit: x86: drop arch from __audit_syscall_entry() interface
        sparc: implement is_32bit_task
        sparc: properly conditionalize use of TIF_32BIT
        ...
      ab074ade
    • Olof Johansson's avatar
      Merge tag 'qcom-dt-for-3.18-3' of... · 57764512
      Olof Johansson authored
      Merge tag 'qcom-dt-for-3.18-3' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom into fixes
      
      Merge "qcom DT changes for v3.18-3" from Kumar Gala:
      
      Qualcomm ARM Based Device Tree Updates for v3.18-3
      
      * Added Board support for CM-QS600 and Sony Xperia Z1 phone
      * Added SATA support on IPQ8064/AP148
      
      * tag 'qcom-dt-for-3.18-3' of git://git.kernel.org/pub/scm/linux/kernel/git/galak/linux-qcom:
        ARM: dts: qcom: add CM-QS600 board
        ARM: dts: qcom: Add initial DTS file for Sony Xperia Z1 phone
        ARM: dts: qcom: Add SATA support on IPQ8064/AP148
      57764512
    • Olof Johansson's avatar
      Merge tag 'samsung-fixes-2' of... · e29c6486
      Olof Johansson authored
      Merge tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
      
      Pull more fixes from Kukjin Kim:
      
      2nd Samsung fixes for v3.18
      - Explicitly set dr_mode on exynos5800-peach-pi, exynos5420-peach-pit
        and exynos5420-arndale-octa boards, because the USB dwc3 controller
        will not work properly without dr_mode as host on above boards if
        the USB host and gadget are enabled in kernel configuration both.
      
      * tag 'samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        ARM: dts: Explicitly set dr_mode on exynos5420-arndale-octa
        ARM: dts: Explicitly set dr_mode on exynos Peach boards
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      e29c6486
    • Scott Branden's avatar
      MAINTAINERS: corrected bcm2835 search · 9209bec4
      Scott Branden authored
      Corrected bcm2835 maintainer info by using N: to specify any files with
      bcm2835 in are directed to the proper maintainer.
      Also corrected minor mispelling of ARCHITECTURE in 2 comment locations.
      Signed-off-by: default avatarScott Branden <sbranden@broadcom.com>
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      9209bec4
    • Linus Torvalds's avatar
      Merge tag 'ntb-3.18' of git://github.com/jonmason/ntb · 61ed53de
      Linus Torvalds authored
      Pull ntb (non-transparent bridge) updates from Jon Mason:
       "Add support for Haswell NTB split BARs, a debugfs entry for basic
        debugging info, and some code clean-ups"
      
      * tag 'ntb-3.18' of git://github.com/jonmason/ntb:
        ntb: Adding split BAR support for Haswell platforms
        ntb: use errata flag set via DID to implement workaround
        ntb: conslidate reading of PPD to move platform detection earlier
        ntb: move platform detection to separate function
        NTB: debugfs device entry
      61ed53de
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 278f1d07
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Highlights from the I2C subsystem for 3.18:
      
         - new drivers for Axxia AM55xx, and Hisilicon hix5hd2 SoC.
      
         - designware driver gained AMD support, exynos gained exynos7 support
      
        The rest is usual driver stuff.  Hopefully no lowlights this time"
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: i801: Add Device IDs for Intel Sunrise Point PCH
        i2c: hix5hd2: add i2c controller driver
        i2c-imx: Disable the clock on probe failure
        i2c: designware: Add support for AMD I2C controller
        i2c: designware: Rework probe() to get clock a bit later
        i2c: designware: Default to fast mode in case of ACPI
        i2c: axxia: Add I2C driver for AXM55xx
        i2c: exynos: add support for HSI2C module on Exynos7
        i2c: mxs: detect No Slave Ack on SELECT in PIO mode
        i2c: cros_ec: Remove EC_I2C_FLAG_10BIT
        i2c: cros-ec-tunnel: Add of match table
        i2c: rcar: remove sign-compare flaw
        i2c: ismt: Use minimum descriptor size
        i2c: imx: Add arbitration lost check
        i2c: rk3x: Remove unlikely() annotations
        i2c: rcar: check for no IRQ in rcar_i2c_irq()
        i2c: rcar: make rcar_i2c_prepare_msg() *void*
        i2c: rcar: simplify check for last message
        i2c: designware: add support of platform data to set I2C mode
        i2c: designware: add support of I2C standard mode
      278f1d07
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · d590c6cd
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here are a collection of small fixes after 3.18 merge.
      
        The urgent one is the fix for kernel panics with linked PCM substream
        triggered by the recent nonatomic PCM ops support.  Other two fixes
        (emu10k1 and bebob) are stable fixes, and one easy PCI ID addition for
        a new Intel HD-audio controller"
      
      * tag 'sound-fix-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda_intel: Add Device IDs for Intel Sunrise Point PCH
        ALSA: emu10k1: Fix deadlock in synth voice lookup
        ALSA: pcm: Fix referred substream in snd_pcm_action_group() unlock loop
        ALSA: bebob: Fix failure to detect source of clock for Terratec Phase 88
      d590c6cd
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · fb378df5
      Linus Torvalds authored
      Pull second round of input updates from Dmitry Torokhov:
       "Mostly simple bug fixes, although we do have one brand new driver for
        Microchip AR1021 i2c touchscreen.
      
        Also there is the change to stop trying to use i8042 active
        multiplexing by default (it is still possible to activate it via
        i8042.nomux=0 on boxes that implement it)"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: xpad - add Thrustmaster as Xbox 360 controller vendor
        Input: xpad - add USB ID for Thrustmaster Ferrari 458 Racing Wheel
        Input: max77693-haptic - fix state check in imax77693_haptic_disable()
        Input: xen-kbdfront - free grant table entry in xenkbd_disconnect_backend
        Input: alps - fix v4 button press recognition
        Input: i8042 - disable active multiplexing by default
        Input: i8042 - add noloop quirk for Asus X750LN
        Input: synaptics - gate forcepad support by DMI check
        Input: Add Microchip AR1021 i2c touchscreen
        Input: cros_ec_keyb - add of match table
        Input: serio - avoid negative serio device numbers
        Input: avoid negative input device numbers
        Input: automatically set EV_ABS bit in input_set_abs_params
        Input: adp5588-keys - cancel workqueue in failure path
        Input: opencores-kbd - switch to using managed resources
        Input: evdev - fix EVIOCG{type} ioctl
      fb378df5
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · 2eb7f910
      Linus Torvalds authored
      Pull infiniband/RDMA updates from Roland Dreier:
       - large set of iSER initiator improvements
       - hardware driver fixes for cxgb4, mlx5 and ocrdma
       - small fixes to core midlayer
      
      * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (47 commits)
        RDMA/cxgb4: Fix ntuple calculation for ipv6 and remove duplicate line
        RDMA/cxgb4: Add missing neigh_release in find_route
        RDMA/cxgb4: Take IPv6 into account for best_mtu and set_emss
        RDMA/cxgb4: Make c4iw_wr_log_size_order static
        IB/core: Fix XRC race condition in ib_uverbs_open_qp
        IB/core: Clear AH attr variable to prevent garbage data
        RDMA/ocrdma: Save the bit environment, spare unncessary parenthesis
        RDMA/ocrdma: The kernel has a perfectly good BIT() macro - use it
        RDMA/ocrdma: Don't memset() buffers we just allocated with kzalloc()
        RDMA/ocrdma: Remove a unused-label warning
        RDMA/ocrdma: Convert kernel VA to PA for mmap in user
        RDMA/ocrdma: Get vlan tag from ib_qp_attrs
        RDMA/ocrdma: Add default GID at index 0
        IB/mlx5, iser, isert: Add Signature API additions
        Target/iser: Centralize ib_sig_domain setting
        IB/iser: Centralize ib_sig_domain settings
        IB/mlx5: Use extended internal signature layout
        IB/iser: Set IP_CSUM as default guard type
        IB/iser: Remove redundant assignment
        IB/mlx5: Use enumerations for PI copy mask
        ...
      2eb7f910
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1f6075f9
      Linus Torvalds authored
      Pull more perf updates from Ingo Molnar:
       "A second (and last) round of late coming fixes and changes, almost all
        of them in perf tooling:
      
        User visible tooling changes:
      
         - Add period data column and make it default in 'perf script' (Jiri
           Olsa)
      
         - Add a visual cue for toggle zeroing of samples in 'perf top'
           (Taeung Song)
      
         - Improve callchains when using libunwind (Namhyung Kim)
      
        Tooling fixes and infrastructure changes:
      
         - Fix for double free in 'perf stat' when using some specific invalid
           command line combo (Yasser Shalabi)
      
         - Fix off-by-one bugs in map->end handling (Stephane Eranian)
      
         - Fix off-by-one bug in maps__find(), also related to map->end
           handling (Namhyung Kim)
      
         - Make struct symbol->end be the first addr after the symbol range,
           to make it match the convention used for struct map->end.  (Arnaldo
           Carvalho de Melo)
      
         - Fix perf_evlist__add_pollfd() error handling in 'perf kvm stat
           live' (Jiri Olsa)
      
         - Fix python test build by moving callchain_param to an object linked
           into the python binding (Jiri Olsa)
      
         - Document sysfs events/ interfaces (Cody P Schafer)
      
         - Fix typos in perf/Documentation (Masanari Iida)
      
         - Add missing 'struct option' forward declaration (Arnaldo Carvalho
           de Melo)
      
         - Add option to copy events when queuing for sorting across cpu
           buffers and enable it for 'perf kvm stat live', to avoid having
           events left in the queue pointing to the ring buffer be rewritten
           in high volume sessions.  (Alexander Yarygin, improving work done
           by David Ahern):
      
         - Do not include a struct hists per perf_evsel, untangling the
           histogram code from perf_evsel, to pave the way for exporting a
           minimalistic tools/lib/api/perf/ library usable by tools/perf and
           initially by the rasd daemon being developed by Borislav Petkov,
           Robert Richter and Jean Pihet.  (Arnaldo Carvalho de Melo)
      
         - Make perf_evlist__open(evlist, NULL, NULL), i.e. without cpu and
           thread maps mean syswide monitoring, reducing the boilerplate for
           tools that only want system wide mode.  (Arnaldo Carvalho de Melo)
      
         - Move exit stuff from perf_evsel__delete to perf_evsel__exit, delete
           should be just a front end for exit + free (Arnaldo Carvalho de
           Melo)
      
         - Add support to new style format of kernel PMU event.  (Kan Liang)
      
        and other misc fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)
        perf script: Add period as a default output column
        perf script: Add period data column
        perf evsel: No need to drag util/cgroup.h
        perf evlist: Add missing 'struct option' forward declaration
        perf evsel: Move exit stuff from __delete to __exit
        kprobes/x86: Remove stale ARCH_SUPPORTS_KPROBES_ON_FTRACE define
        perf kvm stat live: Enable events copying
        perf session: Add option to copy events when queueing
        perf Documentation: Fix typos in perf/Documentation
        perf trace: Use thread_{,_set}_priv helpers
        perf kvm: Use thread_{,_set}_priv helpers
        perf callchain: Create an address space per thread
        perf report: Set callchain_param.record_mode for future use
        perf evlist: Fix for double free in tools/perf stat
        perf test: Add test case for pmu event new style format
        perf tools: Add support to new style format of kernel PMU event
        perf tools: Parse the pmu event prefix and suffix
        Revert "perf tools: Default to cpu// for events v5"
        perf Documentation: Remove Ruplicated docs for powerpc cpu specific events
        perf Documentation: sysfs events/ interfaces
        ...
      1f6075f9
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 5e2ee7cd
      Linus Torvalds authored
      Pull sparc fixes from David Miller:
       "Here we have two bug fixes:
      
        1) The current thread's fault_code is not setup properly upon entry to
           do_sparc64_fault() in some paths, leading to spurious SIGBUS.
      
        2) Don't use a zero length array at the end of thread_info on sparc64,
           otherwise end_of_stack() isn't right"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Do not define thread fpregs save area as zero-length array.
        sparc64: Fix corrupted thread fault code.
      5e2ee7cd
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · e25b4927
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "A quick batch of bug fixes:
      
        1) Fix build with IPV6 disabled, from Eric Dumazet.
      
        2) Several more cases of caching SKB data pointers across calls to
           pskb_may_pull(), thus referencing potentially free'd memory.  From
           Li RongQing.
      
        3) DSA phy code tests operation presence improperly, instead of going:
      
              if (x->ops->foo)
                      r = x->ops->foo(args);
      
           it was going:
      
              if (x->ops->foo(args))
                      r = x->ops->foo(args);
      
         Fix from Andew Lunn"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
        Net: DSA: Fix checking for get_phy_flags function
        ipv6: fix a potential use after free in sit.c
        ipv6: fix a potential use after free in ip6_offload.c
        ipv4: fix a potential use after free in gre_offload.c
        tcp: fix build error if IPv6 is not enabled
      e25b4927
    • Andrew Lunn's avatar
      Net: DSA: Fix checking for get_phy_flags function · 228b16cb
      Andrew Lunn authored
      The check for the presence or not of the optional switch function
      get_phy_flags() called the function, rather than checked to see if it
      is a NULL pointer. This causes a derefernce of a NULL pointer on all
      switch chips except the sf2, the only switch to implement this call.
      Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Fixes: 6819563e ("net: dsa: allow switch drivers to specify phy_device::dev_flags")
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      228b16cb
    • David S. Miller's avatar
      sparc64: Do not define thread fpregs save area as zero-length array. · e2653143
      David S. Miller authored
      This breaks the stack end corruption detection facility.
      
      What that facility does it write a magic value to "end_of_stack()"
      and checking to see if it gets overwritten.
      
      "end_of_stack()" is "task_thread_info(p) + 1", which for sparc64 is
      the beginning of the FPU register save area.
      
      So once the user uses the FPU, the magic value is overwritten and the
      debug checks trigger.
      
      Fix this by making the size explicit.
      
      Due to the size we use for the fpsaved[], gsr[], and xfsr[] arrays we
      are limited to 7 levels of FPU state saves.  So each FPU register set
      is 256 bytes, allocate 256 * 7 for the fpregs area.
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e2653143
    • David S. Miller's avatar
      sparc64: Fix corrupted thread fault code. · 84bd6d8b
      David S. Miller authored
      Every path that ends up at do_sparc64_fault() must install a valid
      FAULT_CODE_* bitmask in the per-thread fault code byte.
      
      Two paths leading to the label winfix_trampoline (which expects the
      FAULT_CODE_* mask in register %g4) were not doing so:
      
      1) For pre-hypervisor TLB protection violation traps, if we took
         the 'winfix_trampoline' path we wouldn't have %g4 initialized
         with the FAULT_CODE_* value yet.  Resulting in using the
         TLB_TAG_ACCESS register address value instead.
      
      2) In the TSB miss path, when we notice that we are going to use a
         hugepage mapping, but we haven't allocated the hugepage TSB yet, we
         still have to take the window fixup case into consideration and
         in that particular path we leave %g4 not setup properly.
      
      Errors on this sort were largely invisible previously, but after
      commit 4ccb9272 ("sparc64: sun4v TLB
      error power off events") we now have a fault_code mask bit
      (FAULT_CODE_BAD_RA) that triggers due to this bug.
      
      FAULT_CODE_BAD_RA triggers because this bit is set in TLB_TAG_ACCESS
      (see #1 above) and thus we get seemingly random bus errors triggered
      for user processes.
      
      Fixes: 4ccb9272 ("sparc64: sun4v TLB error power off events")
      Reported-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      84bd6d8b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma · 52d589a0
      Linus Torvalds authored
      Pull slave-dmaengine updates from Vinod Koul:
       "For dmaengine contributions we have:
         - designware cleanup by Andy
         - my series moving device_control users to dmanegine_xxx APIs for
           later removal of device_control API
         - minor fixes spread over drivers mainly mv_xor, pl330, mmp, imx-sdma
           etc"
      
      * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (60 commits)
        serial: atmel: add missing dmaengine header
        dmaengine: remove FSLDMA_EXTERNAL_START
        dmaengine: freescale: remove FSLDMA_EXTERNAL_START control method
        carma-fpga: move to fsl_dma_external_start()
        carma-fpga: use dmaengine_xxx() API
        dmaengine: freescale: add and export fsl_dma_external_start()
        dmaengine: add dmaengine_prep_dma_sg() helper
        video: mx3fb: use dmaengine_terminate_all() API
        serial: sh-sci: use dmaengine_terminate_all() API
        net: ks8842: use dmaengine_terminate_all() API
        mtd: sh_flctl: use dmaengine_terminate_all() API
        mtd: fsmc_nand: use dmaengine_terminate_all() API
        V4L2: mx3_camer: use dmaengine_pause() API
        dmaengine: coh901318: use dmaengine_terminate_all() API
        pata_arasan_cf: use dmaengine_terminate_all() API
        dmaengine: edma: check for echan->edesc => NULL in edma_dma_pause()
        dmaengine: dw: export probe()/remove() and Co to users
        dmaengine: dw: enable and disable controller when needed
        dmaengine: dw: always export dw_dma_{en,dis}able
        dmaengine: dw: introduce dw_dma_on() helper
        ...
      52d589a0
    • Linus Torvalds's avatar
      Merge tag 'fbdev-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · 0a582821
      Linus Torvalds authored
      Pull fbdev updates from Tomi Valkeinen:
       - new 6x10 font
       - various small fixes and cleanups
      
      * tag 'fbdev-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (30 commits)
        fonts: Add 6x10 font
        videomode: provide dummy inline functions for !CONFIG_OF
        video/atmel_lcdfb: Introduce regulator support
        fbdev: sh_mobile_hdmi: Re-init regs before irq re-enable on resume
        framebuffer: fix screen corruption when copying
        framebuffer: fix border color
        arm, fbdev, omap2, LLVMLinux: Remove nested function from omapfb
        arm, fbdev, omap2, LLVMLinux: Remove nested function from omap2 dss
        video: fbdev: valkyriefb.c: use container_of to resolve fb_info_valkyrie from fb_info
        video: fbdev: pxafb.c: use container_of to resolve pxafb_info/layer from fb_info
        video: fbdev: cyber2000fb.c: use container_of to resolve cfb_info from fb_info
        video: fbdev: controlfb.c: use container_of to resolve fb_info_control from fb_info
        video: fbdev: sa1100fb.c: use container_of to resolve sa1100fb_info from fb_info
        video: fbdev: stifb.c: use container_of to resolve stifb_info from fb_info
        video: fbdev: sis: sis_main.c: Cleaning up missing null-terminate in conjunction with strncpy
        video: valkyriefb: Fix unused variable warning in set_valkyrie_clock()
        video: fbdev: use %*ph specifier to dump small buffers
        video: mx3fb: always enable BACKLIGHT_LCD_SUPPORT
        video: fbdev: au1200fb: delete double assignment
        video: fbdev: sis: delete double assignment
        ...
      0a582821
  7. 18 Oct, 2014 4 commits
    • Linus Torvalds's avatar
      Merge tag 'kvm-arm-for-3.18-take-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm · 8a5de182
      Linus Torvalds authored
      Pull second batch of changes for KVM/{arm,arm64} from Marc Zyngier:
       "The most obvious thing is the sizeable MMU changes to support 48bit
        VAs on arm64.
      
        Summary:
      
         - support for 48bit IPA and VA (EL2)
         - a number of fixes for devices mapped into guests
         - yet another VGIC fix for BE
         - a fix for CPU hotplug
         - a few compile fixes (disabled VGIC, strict mm checks)"
      
      [ I'm pulling directly from Marc at the request of Paolo Bonzini, whose
        backpack was stolen at Düsseldorf airport and will do new keys and
        rebuild his web of trust.    - Linus ]
      
      * tag 'kvm-arm-for-3.18-take-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm:
        arm/arm64: KVM: Fix BE accesses to GICv2 EISR and ELRSR regs
        arm: kvm: STRICT_MM_TYPECHECKS fix for user_mem_abort
        arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE
        arm64: KVM: Implement 48 VA support for KVM EL2 and Stage-2
        arm/arm64: KVM: map MMIO regions at creation time
        arm64: kvm: define PAGE_S2_DEVICE as read-only by default
        ARM: kvm: define PAGE_S2_DEVICE as read-only by default
        arm/arm64: KVM: add 'writable' parameter to kvm_phys_addr_ioremap
        arm/arm64: KVM: fix potential NULL dereference in user_mem_abort()
        arm/arm64: KVM: use __GFP_ZERO not memset() to get zeroed pages
        ARM: KVM: fix vgic-disabled build
        arm: kvm: fix CPU hotplug
      8a5de182
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 857b50f5
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "This is the MIPS pull request for the next kernel:
      
         - Zubair's patch series adds CMA support for MIPS.  Doing so it also
           touches ARM64 and x86.
         - remove the last instance of IRQF_DISABLED from arch/mips
         - updates to two of the MIPS defconfig files.
         - cleanup of how cache coherency bits are handled on MIPS and
           implement support for write-combining.
         - platform upgrades for Alchemy
         - move MIPS DTS files to arch/mips/boot/dts/"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (24 commits)
        MIPS: ralink: remove deprecated IRQF_DISABLED
        MIPS: pgtable.h: Implement the pgprot_writecombine function for MIPS
        MIPS: cpu-probe: Set the write-combine CCA value on per core basis
        MIPS: pgtable-bits: Define the CCA bit for WC writes on Ingenic cores
        MIPS: pgtable-bits: Move the CCA bits out of the core's ifdef blocks
        MIPS: DMA: Add cma support
        x86: use generic dma-contiguous.h
        arm64: use generic dma-contiguous.h
        asm-generic: Add dma-contiguous.h
        MIPS: BPF: Add new emit_long_instr macro
        MIPS: ralink: Move device-trees to arch/mips/boot/dts/
        MIPS: Netlogic: Move device-trees to arch/mips/boot/dts/
        MIPS: sead3: Move device-trees to arch/mips/boot/dts/
        MIPS: Lantiq: Move device-trees to arch/mips/boot/dts/
        MIPS: Octeon: Move device-trees to arch/mips/boot/dts/
        MIPS: Add support for building device-tree binaries
        MIPS: Create common infrastructure for building built-in device-trees
        MIPS: SEAD3: Enable DEVTMPFS
        MIPS: SEAD3: Regenerate defconfigs
        MIPS: Alchemy: DB1300: Add touch penirq support
        ...
      857b50f5
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux · 168f07a1
      Linus Torvalds authored
      Pull powerpc fix from Michael Ellerman:
       "There was a bit of a misunderstanding between us and the ARM guys in
        the device tree PCI code, which is breaking virtio on powerpc.
      
        This is the minimal fix until we can sort it out properly"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
        powerpc/pci: Fix IO space breakage after of_pci_range_to_resource() change
      168f07a1
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6 · 9272f2dc
      Linus Torvalds authored
      Pull cifs/smb3 updates from Steve French:
       "Improved SMB3 support (symlink and device emulation, and remapping by
        default the 7 reserved posix characters) and a workaround for cifs
        mounts to Mac (working around a commonly encountered Mac server bug)"
      
      * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
        [CIFS] Remove obsolete comment
        Check minimum response length on query_network_interface
        Workaround Mac server problem
        Remap reserved posix characters by default (part 3/3)
        Allow conversion of characters in Mac remap range (part 2)
        Allow conversion of characters in Mac remap range. Part 1
        mfsymlinks support for SMB2.1/SMB3. Part 2 query symlink
        Add mfsymlinks support for SMB2.1/SMB3. Part 1 create symlink
        Allow mknod and mkfifo on SMB2/SMB3 mounts
        add defines for two new file attributes
      9272f2dc