1. 15 Jan, 2015 3 commits
    • Steven Rostedt (Red Hat)'s avatar
      ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing · 237d28db
      Steven Rostedt (Red Hat) authored
      If the function graph tracer traces a jprobe callback, the system will
      crash. This can easily be demonstrated by compiling the jprobe
      sample module that is in the kernel tree, loading it and running the
      function graph tracer.
      
       # modprobe jprobe_example.ko
       # echo function_graph > /sys/kernel/debug/tracing/current_tracer
       # ls
      
      The first two commands end up in a nice crash after the first fork.
      (do_fork has a jprobe attached to it, so "ls" just triggers that fork)
      
      The problem is caused by the jprobe_return() that all jprobe callbacks
      must end with. The way jprobes works is that the function a jprobe
      is attached to has a breakpoint placed at the start of it (or it uses
      ftrace if fentry is supported). The breakpoint handler (or ftrace callback)
      will copy the stack frame and change the ip address to return to the
      jprobe handler instead of the function. The jprobe handler must end
      with jprobe_return() which swaps the stack and does an int3 (breakpoint).
      This breakpoint handler will then put back the saved stack frame,
      simulate the instruction at the beginning of the function it added
      a breakpoint to, and then continue on.
      
      For function tracing to work, it hijakes the return address from the
      stack frame, and replaces it with a hook function that will trace
      the end of the call. This hook function will restore the return
      address of the function call.
      
      If the function tracer traces the jprobe handler, the hook function
      for that handler will not be called, and its saved return address
      will be used for the next function. This will result in a kernel crash.
      
      To solve this, pause function tracing before the jprobe handler is called
      and unpause it before it returns back to the function it probed.
      
      Some other updates:
      
      Used a variable "saved_sp" to hold kcb->jprobe_saved_sp. This makes the
      code look a bit cleaner and easier to understand (various tries to fix
      this bug required this change).
      
      Note, if fentry is being used, jprobes will change the ip address before
      the function graph tracer runs and it will not be able to trace the
      function that the jprobe is probing.
      
      Link: http://lkml.kernel.org/r/20150114154329.552437962@goodmis.org
      
      Cc: stable@vger.kernel.org # 2.6.30+
      Acked-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      237d28db
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Check both notrace and filter for old hash · 7485058e
      Steven Rostedt (Red Hat) authored
      Using just the filter for checking for trampolines or regs is not enough
      when updating the code against the records that represent all functions.
      Both the filter hash and the notrace hash need to be checked.
      
      To trigger this bug (using trace-cmd and perf):
      
       # perf probe -a do_fork
       # trace-cmd start -B foo -e probe
       # trace-cmd record -p function_graph -n do_fork sleep 1
      
      The trace-cmd record at the end clears the filter before it disables
      function_graph tracing and then that causes the accounting of the
      ftrace function records to become incorrect and causes ftrace to bug.
      
      Link: http://lkml.kernel.org/r/20150114154329.358378039@goodmis.org
      
      Cc: stable@vger.kernel.org
      [ still need to switch old_hash_ops to old_ops_hash ]
      Reviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      7485058e
    • Steven Rostedt (Red Hat)'s avatar
      ftrace: Fix updating of filters for shared global_ops filters · 8f86f837
      Steven Rostedt (Red Hat) authored
      As the set_ftrace_filter affects both the function tracer as well as the
      function graph tracer, the ops that represent each have a shared
      ftrace_ops_hash structure. This allows both to be updated when the filter
      files are updated.
      
      But if function graph is enabled and the global_ops (function tracing) ops
      is not, then it is possible that the filter could be changed without the
      update happening for the function graph ops. This will cause the changes
      to not take place and may even cause a ftrace_bug to occur as it could mess
      with the trampoline accounting.
      
      The solution is to check if the ops uses the shared global_ops filter and
      if the ops itself is not enabled, to check if there's another ops that is
      enabled and also shares the global_ops filter. In that case, the
      modification still needs to be executed.
      
      Link: http://lkml.kernel.org/r/20150114154329.055980438@goodmis.org
      
      Cc: stable@vger.kernel.org # 3.17+
      Reviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      8f86f837
  2. 06 Jan, 2015 1 commit
  3. 05 Jan, 2015 3 commits
  4. 04 Jan, 2015 4 commits
  5. 02 Jan, 2015 3 commits
  6. 31 Dec, 2014 10 commits
  7. 30 Dec, 2014 15 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 2c90331c
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Fix double SKB free in bluetooth 6lowpan layer, from Jukka Rissanen.
      
       2) Fix receive checksum handling in enic driver, from Govindarajulu
          Varadarajan.
      
       3) Fix NAPI poll list corruption in virtio_net and caif_virtio, from
          Herbert Xu.  Also, add code to detect drivers that have this mistake
          in the future.
      
       4) Fix doorbell endianness handling in mlx4 driver, from Amir Vadai.
      
       5) Don't clobber IP6CB() before xfrm6_policy_check() is called in TCP
          input path,f rom Nicolas Dichtel.
      
       6) Fix MPLS action validation in openvswitch, from Pravin B Shelar.
      
       7) Fix double SKB free in vxlan driver, also from Pravin.
      
       8) When we scrub a packet, which happens when we are switching the
          context of the packet (namespace, etc.), we should reset the
          secmark.  From Thomas Graf.
      
       9) ->ndo_gso_check() needs to do more than return true/false, it also
          has to allow the driver to clear netdev feature bits in order for
          the caller to be able to proceed properly.  From Jesse Gross.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (62 commits)
        genetlink: A genl_bind() to an out-of-range multicast group should not WARN().
        netlink/genetlink: pass network namespace to bind/unbind
        ne2k-pci: Add pci_disable_device in error handling
        bonding: change error message to debug message in __bond_release_one()
        genetlink: pass multicast bind/unbind to families
        netlink: call unbind when releasing socket
        netlink: update listeners directly when removing socket
        genetlink: pass only network namespace to genl_has_listeners()
        netlink: rename netlink_unbind() to netlink_undo_bind()
        net: Generalize ndo_gso_check to ndo_features_check
        net: incorrect use of init_completion fixup
        neigh: remove next ptr from struct neigh_table
        net: xilinx: Remove unnecessary temac_property in the driver
        net: phy: micrel: use generic config_init for KSZ8021/KSZ8031
        net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding
        openvswitch: fix odd_ptr_err.cocci warnings
        Bluetooth: Fix accepting connections when not using mgmt
        Bluetooth: Fix controller configuration with HCI_QUIRK_INVALID_BDADDR
        brcmfmac: Do not crash if platform data is not populated
        ipw2200: select CFG80211_WEXT
        ...
      2c90331c
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-3.19-fixes' of... · 6ab1e8de
      Linus Torvalds authored
      Merge tag 'linux-kselftest-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest fix from Shuah Khan:
       "Fix exec test compile warnings"
      
      * tag 'linux-kselftest-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/exec: Use %zu to format size_t
      6ab1e8de
    • Alan Stern's avatar
      SCSI: fix regression in scsi_send_eh_cmnd() · 511833ac
      Alan Stern authored
      Commit ac61d195 (scsi: set correct completion code in
      scsi_send_eh_cmnd()) introduced a bug.  It changed the stored return
      value from a queuecommand call, but it didn't take into account that
      the return value was used again later on.  This patch fixes the bug by
      changing the later usage.
      
      There is a big comment in the middle of scsi_send_eh_cmnd() which
      does a good job of explaining how the routine works.  But it mentions
      a "rtn = FAILURE" value that doesn't exist in the code.  This patch
      adjusts the code to match the comment (I assume the comment is right
      and the code is wrong).
      
      This fixes Bugzilla #88341.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: default avatarАндрей Аладьев <aladjev.andrew@gmail.com>
      Tested-by: default avatarАндрей Аладьев <aladjev.andrew@gmail.com>
      Fixes: ac61d195Acked-by: default avatarHannes Reinecke <hare@suse.de>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
      511833ac
    • Lars-Peter Clausen's avatar
      ALSA: pcm: Fix kerneldoc for params_*() functions · 62f64a88
      Lars-Peter Clausen authored
      Fix a copy and paste error in the kernel doc description for the params_*()
      functions.
      Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      62f64a88
    • Takashi Iwai's avatar
      Merge tag 'asoc-fix-v3.19-rc2' of... · e83ce4a5
      Takashi Iwai authored
      Merge tag 'asoc-fix-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
      
      ASoC: Fixes for v3.19
      
      A few fixes for v3.19, a few driver specifics and one core fix which
      fixes a boot crash on OMAP if deferred probing kicks in due to
      attempting to modify static data.
      e83ce4a5
    • Steev Klimaszewski's avatar
      Add USB_EHCI_EXYNOS to multi_v7_defconfig · 007487f1
      Steev Klimaszewski authored
      Currently we enable Exynos devices in the multi v7 defconfig, however, when
      testing on my ODROID-U3, I noticed that USB was not working.  Enabling this
      option causes USB to work, which enables networking support as well since the
      ODROID-U3 has networking on the USB bus.
      
      [arnd] Support for odroid-u3 was added in 3.10, so it would be nice to
      backport this fix at least that far.
      Signed-off-by: default avatarSteev Klimaszewski <steev@gentoo.org>
      Cc: stable@vger.kernel.org # 3.10
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      007487f1
    • Arnd Bergmann's avatar
      Merge tag 'mvebu-fixes-3.19' of git://git.infradead.org/linux-mvebu into fixes · 7ebdfaa5
      Arnd Bergmann authored
      Pull "Fixes for 3.19" from Andrew Lunn:
      
      Jason is taking a back seat this cycle and i'm doing all the patch
      wrangling for mvebu.
      
      * tag 'mvebu-fixes-3.19' of git://git.infradead.org/linux-mvebu:
        ARM: mvebu: Fix pinctrl configuration for Armada 370 DB
      
      Also update to Linux 3.19-rc1, which this was based on.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      7ebdfaa5
    • Paul Moore's avatar
      audit: create private file name copies when auditing inodes · fcf22d82
      Paul Moore authored
      Unfortunately, while commit 4a928436 ("audit: correctly record file
      names with different path name types") fixed a problem where we were
      not recording filenames, it created a new problem by attempting to use
      these file names after they had been freed.  This patch resolves the
      issue by creating a copy of the filename which the audit subsystem
      frees after it is done with the string.
      
      At some point it would be nice to resolve this issue with refcounts,
      or something similar, instead of having to allocate/copy strings, but
      that is almost surely beyond the scope of a -rcX patch so we'll defer
      that for later.  On the plus side, only audit users should be impacted
      by the string copying.
      Reported-by: default avatarToralf Foerster <toralf.foerster@gmx.de>
      Signed-off-by: default avatarPaul Moore <pmoore@redhat.com>
      fcf22d82
    • Anil Chintalapati (achintal)'s avatar
      fnic: IOMMU Fault occurs when IO and abort IO is out of order · efc7a288
      Anil Chintalapati (achintal) authored
      When I/O is aborted by mid-layer, fnic FW will complete the I/O before
      completing the abort task. In some cases abort request is completed before
      the I/O, which could lead to inconsistent driver and firmware states.
      In this case firmware reset would clear the inconsistent state.
      Signed-off-by: default avatarAnil Chintalapati <achintal@cisco.com>
      Signed-off-by: default avatarSesidhar Baddela <sebaddel@cisco.com>
      Signed-off-by: default avatarHiral Shah <hishah@cisco.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      efc7a288
    • Martin K. Petersen's avatar
      sd: tweak discard heuristics to work around QEMU SCSI issue · e461338b
      Martin K. Petersen authored
      7985090a changed the discard heuristics to give preference to the
      WRITE SAME commands that (unlike UNMAP) guarantee deterministic results.
      
      Ming Lei discovered that QEMU SCSI's WRITE SAME implementation
      internally relied on limits that were only communicated for the UNMAP
      case. And therefore discard commands backed by WRITE SAME would fail.
      
      Tweak the heuristics so we still pick UNMAP in the LBPRZ=0 case and only
      prefer the WRITE SAME variants if the device has the LBPRZ flag set.
      Reported-by: default avatarMing Lei <ming.lei@canonical.com>
      Tested-by: default avatarMing Lei <ming.lei@canonical.com>
      Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      e461338b
    • Tomi Valkeinen's avatar
      OMAPDSS: SDI: fix output port_num · a32442d4
      Tomi Valkeinen authored
      After the commit ef691ff4 (OMAPDSS: DT: Get source endpoint by
      matching reg-id) we look for the SDI output using the port number.
      However, the SDI driver doesn't set the port number, which causes the
      SDI display to not initialize.
      
      Fix this by setting the SDI port number to 1. We use a hardcoded value,
      as SDI was used only on OMAP3 and it's always port number 1 there.
      Reported-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Reported-by: default avatarPavel Machek <pavel@ucw.cz>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      a32442d4
    • Tomi Valkeinen's avatar
      video/fbdev: fix defio's fsync · 30ea9c52
      Tomi Valkeinen authored
      fb_deferred_io_fsync() returns the value of schedule_delayed_work() as
      an error code, but schedule_delayed_work() does not return an error. It
      returns true/false depending on whether the work was already queued.
      
      Fix this by ignoring the return value of schedule_delayed_work().
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Cc: stable@vger.kernel.org
      30ea9c52
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6 · 5faa0154
      Linus Torvalds authored
      Pull CIFS fixes from Steve French:
       "A set of three minor cifs fixes"
      
      * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: make new inode cache when file type is different
        Fix signed/unsigned pointer warning
        Convert MessageID in smb2_hdr to LE
      5faa0154
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · b9d4a35f
      Linus Torvalds authored
      Pull UDF & isofs fixes from Jan Kara:
       "A couple of UDF fixes of handling of corrupted media and one iso9660
        fix of the same"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Reduce repeated dereferences
        udf: Check component length before reading it
        udf: Check path length when reading symlink
        udf: Verify symlink size before loading it
        udf: Verify i_size when loading inode
        isofs: Fix unchecked printing of ER records
      b9d4a35f
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · df90dcd1
      Linus Torvalds authored
      Pull power management and ACPI material from Rafael J Wysocki:
       "These are fixes (operating performance points library, cpufreq-dt
        driver, cpufreq core, ACPI backlight, cpupower tool), cleanups
        (cpuidle), new processor IDs for the RAPL (Running Average Power
        Limit) power capping driver, and a modification of the generic power
        domains framework allowing modular drivers to call one of its helper
        functions.
      
        Specifics:
      
         - Fix for a potential NULL pointer dereference in the cpufreq core
           due to an initialization race condition (Ethan Zhao).
      
         - Fixes for abuse of the OPP (Operating Performance Points) API
           related to RCU and other minor issues in the OPP library and the
           cpufreq-dt driver (Dmitry Torokhov).
      
         - cpuidle governors cleanup making them measure idle duration in a
           better way without using the CPUIDLE_FLAG_TIME_INVALID flag which
           allows that flag to be dropped from the ACPI cpuidle driver and
           from the core too (Len Brown).
      
         - New ACPI backlight blacklist entries for Samsung machines without a
           working native backlight interface that need to use the ACPI
           backlight instead (Aaron Lu).
      
         - New CPU IDs of future Intel Xeon CPUs for the Intel RAPL power
           capping driver (Jacob Pan).
      
         - Generic power domains framework modification to export the
           of_genpd_get_from_provider() function to modular drivers that will
           allow future driver modifications to be based on the mainline (Amit
           Daniel Kachhap).
      
         - Two fixes for the cpupower tool (Michal Privoznik, Prarit
           Bhargava)"
      
      * tag 'pm+acpi-3.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / video: Add some Samsung models to disable_native_backlight list
        tools / cpupower: Fix no idle state information return value
        tools / cpupower: Correctly detect if running as root
        cpufreq: fix a NULL pointer dereference in __cpufreq_governor()
        cpufreq-dt: defer probing if OPP table is not ready
        PM / OPP: take RCU lock in dev_pm_opp_get_opp_count
        PM / OPP: fix warning in of_free_opp_table()
        PM / OPP: add some lockdep annotations
        powercap / RAPL: add IDs for future Xeon CPUs
        PM / Domains: Export of_genpd_get_from_provider function
        cpuidle / ACPI: remove unused CPUIDLE_FLAG_TIME_INVALID
        cpuidle: ladder: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID
        cpuidle: menu: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID
      df90dcd1
  8. 29 Dec, 2014 1 commit