Список изменений в Linux 4.19.315

 
btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks() [+ + +]
Author: Dominique Martinet <dominique.martinet@atmark-techno.com>
Date:   Fri Apr 19 11:22:48 2024 +0900

    btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks()
    
    commit 9af503d91298c3f2945e73703f0e00995be08c30 upstream.
    
    The previous patch that replaced BUG_ON by error handling forgot to
    unlock the mutex in the error path.
    
    Link: https://lore.kernel.org/all/Zh%2fHpAGFqa7YAFuM@duo.ucw.cz
    Reported-by: Pavel Machek <pavel@denx.de>
    Fixes: 7411055db5ce ("btrfs: handle chunk tree lookup error in btrfs_relocate_sys_chunks()")
    CC: stable@vger.kernel.org
    Reviewed-by: Pavel Machek <pavel@denx.de>
    Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
dm: limit the number of targets and parameter size area [+ + +]
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Tue Jan 9 15:57:56 2024 +0100

    dm: limit the number of targets and parameter size area
    
    commit bd504bcfec41a503b32054da5472904b404341a4 upstream.
    
    The kvmalloc function fails with a warning if the size is larger than
    INT_MAX. The warning was triggered by a syscall testing robot.
    
    In order to avoid the warning, this commit limits the number of targets to
    1048576 and the size of the parameter area to 1073741824.
    
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    [srish: Apply to stable branch linux-4.19.y]
    Signed-off-by: Srish Srinivasan <srish.srinivasan@broadcom.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
docs: kernel_include.py: Cope with docutils 0.21 [+ + +]
Author: Akira Yokosawa <akiyks@gmail.com>
Date:   Wed May 1 12:16:11 2024 +0900

    docs: kernel_include.py: Cope with docutils 0.21
    
    commit d43ddd5c91802a46354fa4c4381416ef760676e2 upstream.
    
    Running "make htmldocs" on a newly installed Sphinx 7.3.7 ends up in
    a build error:
    
        Sphinx parallel build error:
        AttributeError: module 'docutils.nodes' has no attribute 'reprunicode'
    
    docutils 0.21 has removed nodes.reprunicode, quote from release note [1]:
    
      * Removed objects:
    
        docutils.nodes.reprunicode, docutils.nodes.ensure_str()
            Python 2 compatibility hacks
    
    Sphinx 7.3.0 supports docutils 0.21 [2]:
    
    kernel_include.py, whose origin is misc.py of docutils, uses reprunicode.
    
    Upstream docutils removed the offending line from the corresponding file
    (docutils/docutils/parsers/rst/directives/misc.py) in January 2022.
    Quoting the changelog [3]:
    
        Deprecate `nodes.reprunicode` and `nodes.ensure_str()`.
    
        Drop uses of the deprecated constructs (not required with Python 3).
    
    Do the same for kernel_include.py.
    
    Tested against:
      - Sphinx 2.4.5 (docutils 0.17.1)
      - Sphinx 3.4.3 (docutils 0.17.1)
      - Sphinx 5.3.0 (docutils 0.18.1)
      - Sphinx 6.2.1 (docutils 0.19)
      - Sphinx 7.2.6 (docutils 0.20.1)
      - Sphinx 7.3.7 (docutils 0.21.2)
    
    Link: http://www.docutils.org/RELEASE-NOTES.html#release-0-21-2024-04-09 [1]
    Link: https://www.sphinx-doc.org/en/master/changes.html#release-7-3-0-released-apr-16-2024 [2]
    Link: https://github.com/docutils/docutils/commit/c8471ce47a24 [3]
    Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jonathan Corbet <corbet@lwn.net>
    Link: https://lore.kernel.org/r/faf5fa45-2a9d-4573-9d2e-3930bdc1ed65@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Linux: Linux 4.19.315 [+ + +]
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat May 25 16:16:20 2024 +0200

    Linux 4.19.315
    
    Link: https://lore.kernel.org/r/20240523130325.727602650@linuxfoundation.org
    Tested-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems" [+ + +]
Author: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Date:   Mon May 6 03:57:24 2024 -0700

    Revert "selftests: mm: fix map_hugetlb failure on 64K page size systems"
    
    This reverts commit abdbd5f3e8c504d864fdc032dd5a4eb481cb12bf which is commit
    91b80cc5b39f00399e8e2d17527cad2c7fa535e2 upstream.
    
    map_hugetlb.c:18:10: fatal error: vm_util.h: No such file or directory
       18 | #include "vm_util.h"
          |          ^~~~~~~~~~~
    compilation terminated.
    
    vm_util.h is not present in 4.19.y, as commit:642bc52aed9c ("selftests:
    vm: bring common functions to a new file") is not present in stable
    kernels <=6.1.y
    
    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Cc: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
serial: kgdboc: Fix NMI-safety problems from keyboard reset code [+ + +]
Author: Daniel Thompson <daniel.thompson@linaro.org>
Date:   Wed Apr 24 15:21:41 2024 +0100

    serial: kgdboc: Fix NMI-safety problems from keyboard reset code
    
    commit b2aba15ad6f908d1a620fd97f6af5620c3639742 upstream.
    
    Currently, when kdb is compiled with keyboard support, then we will use
    schedule_work() to provoke reset of the keyboard status.  Unfortunately
    schedule_work() gets called from the kgdboc post-debug-exception
    handler.  That risks deadlock since schedule_work() is not NMI-safe and,
    even on platforms where the NMI is not directly used for debugging, the
    debug trap can have NMI-like behaviour depending on where breakpoints
    are placed.
    
    Fix this by using the irq work system, which is NMI-safe, to defer the
    call to schedule_work() to a point when it is safe to call.
    
    Reported-by: Liuye <liu.yeC@h3c.com>
    Closes: https://lore.kernel.org/all/20240228025602.3087748-1-liu.yeC@h3c.com/
    Cc: stable@vger.kernel.org
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20240424-kgdboc_fix_schedule_work-v2-1-50f5a490aec5@linaro.org
    Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
string.h: Add str_has_prefix() helper function [+ + +]
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu May 9 10:29:24 2024 +0800

    string.h: Add str_has_prefix() helper function
    
    commit 72921427d46bf9731a1ab7864adc64c43dfae29f upstream.
    
    A discussion came up in the trace triggers thread about converting a
    bunch of:
    
     strncmp(str, "const", sizeof("const") - 1)
    
    use cases into a helper macro. It started with:
    
            strncmp(str, const, sizeof(const) - 1)
    
    But then Joe Perches mentioned that if a const is not used, the
    sizeof() will be the size of a pointer, which can be bad. And that
    gcc will optimize strlen("const") into "sizeof("const") - 1".
    
    Thinking about this more, a quick grep in the kernel tree found several
    (thousands!) of cases that use this construct. A quick grep also
    revealed that there's probably several bugs in that use case. Some are
    that people forgot the "- 1" (which I found) and others could be that
    the constant for the sizeof is different than the constant (although, I
    haven't found any of those, but I also didn't look hard).
    
    I figured the best thing to do is to create a helper macro and place it
    into include/linux/string.h. And go around and fix all the open coded
    versions of it later.
    
    Note, gcc appears to optimize this when we make it into an always_inline
    static function, which removes a lot of issues that a macro produces.
    
    Link: http://lkml.kernel.org/r/e3e754f2bd18e56eaa8baf79bee619316ebf4cfc.1545161087.git.tom.zanussi@linux.intel.com
    Link: http://lkml.kernel.org/r/20181219211615.2298e781@gandalf.local.home
    Link: http://lkml.kernel.org/r/CAHk-=wg_sR-UEC1ggmkZpypOUYanL5CMX4R7ceuaV4QMf5jBtg@mail.gmail.com
    
    Cc: Tom Zanussi <zanussi@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Suggestions-by: Linus Torvalds <torvalds@linux-foundation.org>
    Suggestions-by: Joe Perches <joe@perches.com>
    Suggestions-by: Andreas Schwab <schwab@linux-m68k.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
tracing: Add unified dynamic event framework [+ + +]
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu May 9 10:29:20 2024 +0800

    tracing: Add unified dynamic event framework
    
    commit 5448d44c38557fc15d1c53b608a9c9f0e1ca8f86 upstream.
    
    Add unified dynamic event framework for ftrace kprobes, uprobes
    and synthetic events. Those dynamic events can be co-exist on
    same file because those syntax doesn't overlap.
    
    This introduces a framework part which provides a unified tracefs
    interface and operations.
    
    Link: http://lkml.kernel.org/r/154140852824.17322.12250362185969352095.stgit@devbox
    
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Consolidate trace_add/remove_event_call back to the nolock functions [+ + +]
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu May 9 10:29:23 2024 +0800

    tracing: Consolidate trace_add/remove_event_call back to the nolock functions
    
    commit 7e1413edd6194a9807aa5f3ac0378b9b4b9da879 upstream.
    
    The trace_add/remove_event_call_nolock() functions were added to allow
    the tace_add/remove_event_call() code be called when the event_mutex
    lock was already taken. Now that all callers are done within the
    event_mutex, there's no reason to have two different interfaces.
    
    Remove the current wrapper trace_add/remove_event_call()s and rename the
    _nolock versions back to the original names.
    
    Link: http://lkml.kernel.org/r/154140866955.17322.2081425494660638846.stgit@devbox
    
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Generalize hist trigger onmax and save action [+ + +]
Author: Tom Zanussi <tom.zanussi@linux.intel.com>
Date:   Thu May 9 10:29:30 2024 +0800

    tracing: Generalize hist trigger onmax and save action
    
    commit 466f4528fbc692ea56deca278fa6aeb79e6e8b21 upstream.
    
    The action refactor code allowed actions and handlers to be separated,
    but the existing onmax handler and save action code is still not
    flexible enough to handle arbitrary coupling.  This change generalizes
    them and in the process makes additional handlers and actions easier
    to implement.
    
    The onmax action can be broken up and thought of as two separate
    components - a variable to be tracked (the parameter given to the
    onmax($var_to_track) function) and an invisible variable created to
    save the ongoing result of doing something with that variable, such as
    saving the max value of that variable so far seen.
    
    Separating it out like this and renaming it appropriately allows us to
    use the same code for similar tracking functions such as
    onchange($var_to_track), which would just track the last value seen
    rather than the max seen so far, which is useful in some situations.
    
    Additionally, because different handlers and actions may want to save
    and access data differently e.g. save and retrieve tracking values as
    local variables vs something more global, save_val() and get_val()
    interface functions are introduced and max-specific implementations
    are used instead.
    
    The same goes for the code that checks whether a maximum has been hit
    - a generic check_val() interface and max-checking implementation is
    used instead, which allows future patches to make use of he same code
    using their own implemetations of similar functionality.
    
    Link: http://lkml.kernel.org/r/980ea73dd8e3f36db3d646f99652f8fed42b77d4.1550100284.git.tom.zanussi@linux.intel.com
    
    Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Have the historgram use the result of str_has_prefix() for len of prefix [+ + +]
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu May 9 10:29:27 2024 +0800

    tracing: Have the historgram use the result of str_has_prefix() for len of prefix
    
    commit 036876fa56204ae0fa59045bd6bbb2691a060633 upstream.
    
    As str_has_prefix() returns the length on match, we can use that for the
    updating of the string pointer instead of recalculating the prefix size.
    
    Cc: Tom Zanussi  <zanussi@kernel.org>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Refactor hist trigger action code [+ + +]
Author: Tom Zanussi <tom.zanussi@linux.intel.com>
Date:   Thu May 9 10:29:28 2024 +0800

    tracing: Refactor hist trigger action code
    
    commit 7d18a10c316783357fb1b2b649cfcf97c70a7bee upstream.
    
    The hist trigger action code currently implements two essentially
    hard-coded pairs of 'actions' - onmax(), which tracks a variable and
    saves some event fields when a max is hit, and onmatch(), which is
    hard-coded to generate a synthetic event.
    
    These hardcoded pairs (track max/save fields and detect match/generate
    synthetic event) should really be decoupled into separate components
    that can then be arbitrarily combined.  The first component of each
    pair (track max/detect match) is called a 'handler' in the new code,
    while the second component (save fields/generate synthetic event) is
    called an 'action' in this scheme.
    
    This change refactors the action code to reflect this split by adding
    two handlers, HANDLER_ONMATCH and HANDLER_ONMAX, along with two
    actions, ACTION_SAVE and ACTION_TRACE.
    
    The new code combines them to produce the existing ONMATCH/TRACE and
    ONMAX/SAVE functionality, but doesn't implement the other combinations
    now possible.  Future patches will expand these to further useful
    cases, such as ONMAX/TRACE, as well as add additional handlers and
    actions such as ONCHANGE and SNAPSHOT.
    
    Also, add abbreviated documentation for handlers and actions to
    README.
    
    Link: http://lkml.kernel.org/r/98bfdd48c1b4ff29fc5766442f99f5bc3c34b76b.1550100284.git.tom.zanussi@linux.intel.com
    
    Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Remove unnecessary var_ref destroy in track_data_destroy() [+ + +]
Author: Tom Zanussi <tom.zanussi@linux.intel.com>
Date:   Thu May 9 10:29:31 2024 +0800

    tracing: Remove unnecessary var_ref destroy in track_data_destroy()
    
    commit ff9d31d0d46672e201fc9ff59c42f1eef5f00c77 upstream.
    
    Commit 656fe2ba85e8 (tracing: Use hist trigger's var_ref array to
    destroy var_refs) centralized the destruction of all the var_refs
    in one place so that other code didn't have to do it.
    
    The track_data_destroy() added later ignored that and also destroyed
    the track_data var_ref, causing a double-free error flagged by KASAN.
    
    ==================================================================
    BUG: KASAN: use-after-free in destroy_hist_field+0x30/0x70
    Read of size 8 at addr ffff888086df2210 by task bash/1694
    
    CPU: 6 PID: 1694 Comm: bash Not tainted 5.1.0-rc1-test+ #15
    Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03
    07/14/2016
    Call Trace:
     dump_stack+0x71/0xa0
     ? destroy_hist_field+0x30/0x70
     print_address_description.cold.3+0x9/0x1fb
     ? destroy_hist_field+0x30/0x70
     ? destroy_hist_field+0x30/0x70
     kasan_report.cold.4+0x1a/0x33
     ? __kasan_slab_free+0x100/0x150
     ? destroy_hist_field+0x30/0x70
     destroy_hist_field+0x30/0x70
     track_data_destroy+0x55/0xe0
     destroy_hist_data+0x1f0/0x350
     hist_unreg_all+0x203/0x220
     event_trigger_open+0xbb/0x130
     do_dentry_open+0x296/0x700
     ? stacktrace_count_trigger+0x30/0x30
     ? generic_permission+0x56/0x200
     ? __x64_sys_fchdir+0xd0/0xd0
     ? inode_permission+0x55/0x200
     ? security_inode_permission+0x18/0x60
     path_openat+0x633/0x22b0
     ? path_lookupat.isra.50+0x420/0x420
     ? __kasan_kmalloc.constprop.12+0xc1/0xd0
     ? kmem_cache_alloc+0xe5/0x260
     ? getname_flags+0x6c/0x2a0
     ? do_sys_open+0x149/0x2b0
     ? do_syscall_64+0x73/0x1b0
     ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
     ? _raw_write_lock_bh+0xe0/0xe0
     ? __kernel_text_address+0xe/0x30
     ? unwind_get_return_address+0x2f/0x50
     ? __list_add_valid+0x2d/0x70
     ? deactivate_slab.isra.62+0x1f4/0x5a0
     ? getname_flags+0x6c/0x2a0
     ? set_track+0x76/0x120
     do_filp_open+0x11a/0x1a0
     ? may_open_dev+0x50/0x50
     ? _raw_spin_lock+0x7a/0xd0
     ? _raw_write_lock_bh+0xe0/0xe0
     ? __alloc_fd+0x10f/0x200
     do_sys_open+0x1db/0x2b0
     ? filp_open+0x50/0x50
     do_syscall_64+0x73/0x1b0
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    RIP: 0033:0x7fa7b24a4ca2
    Code: 25 00 00 41 00 3d 00 00 41 00 74 4c 48 8d 05 85 7a 0d 00 8b 00 85 c0
    75 6d 89 f2 b8 01 01 00 00 48 89 fe bf 9c ff ff ff 0f 05 <48> 3d 00 f0 ff ff
    0f 87 a2 00 00 00 48 8b 4c 24 28 64 48 33 0c 25
    RSP: 002b:00007fffbafb3af0 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
    RAX: ffffffffffffffda RBX: 000055d3648ade30 RCX: 00007fa7b24a4ca2
    RDX: 0000000000000241 RSI: 000055d364a55240 RDI: 00000000ffffff9c
    RBP: 00007fffbafb3bf0 R08: 0000000000000020 R09: 0000000000000002
    R10: 00000000000001b6 R11: 0000000000000246 R12: 0000000000000000
    R13: 0000000000000003 R14: 0000000000000001 R15: 000055d364a55240
    ==================================================================
    
    So remove the track_data_destroy() destroy_hist_field() call for that
    var_ref.
    
    Link: http://lkml.kernel.org/r/1deffec420f6a16d11dd8647318d34a66d1989a9.camel@linux.intel.com
    
    Fixes: 466f4528fbc69 ("tracing: Generalize hist trigger onmax and save action")
    Reported-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Remove unneeded synth_event_mutex [+ + +]
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu May 9 10:29:22 2024 +0800

    tracing: Remove unneeded synth_event_mutex
    
    commit 0e2b81f7b52a1c1a8c46986f9ca01eb7b3c421f8 upstream.
    
    Rmove unneeded synth_event_mutex. This mutex protects the reference
    count in synth_event, however, those operational points are already
    protected by event_mutex.
    
    1. In __create_synth_event() and create_or_delete_synth_event(),
     those synth_event_mutex clearly obtained right after event_mutex.
    
    2. event_hist_trigger_func() is trigger_hist_cmd.func() which is
     called by trigger_process_regex(), which is a part of
     event_trigger_regex_write() and this function takes event_mutex.
    
    3. hist_unreg_all() is trigger_hist_cmd.unreg_all() which is called
     by event_trigger_regex_open() and it takes event_mutex.
    
    4. onmatch_destroy() and onmatch_create() have long call tree,
     but both are finally invoked from event_trigger_regex_write()
     and event_trace_del_tracer(), former takes event_mutex, and latter
     ensures called under event_mutex locked.
    
    Finally, I ensured there is no resource conflict. For safety,
    I added lockdep_assert_held(&event_mutex) for each function.
    
    Link: http://lkml.kernel.org/r/154140864134.17322.4796059721306031894.stgit@devbox
    
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Simplify creation and deletion of synthetic events [+ + +]
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu May 9 10:29:19 2024 +0800

    tracing: Simplify creation and deletion of synthetic events
    
    commit faacb361f271be4baf2d807e2eeaba87e059225f upstream.
    
    Since the event_mutex and synth_event_mutex ordering issue
    is gone, we can skip existing event check when adding or
    deleting events, and some redundant code in error path.
    
    This changes release_all_synth_events() to abort the process
    when it hits any error and returns the error code. It succeeds
    only if it has no error.
    
    Link: http://lkml.kernel.org/r/154140847194.17322.17960275728005067803.stgit@devbox
    
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Split up onmatch action data [+ + +]
Author: Tom Zanussi <tom.zanussi@linux.intel.com>
Date:   Thu May 9 10:29:29 2024 +0800

    tracing: Split up onmatch action data
    
    commit c3e49506a0f426a850675e39419879214060ca8b upstream.
    
    Currently, the onmatch action data binds the onmatch action to data
    related to synthetic event generation.  Since we want to allow the
    onmatch handler to potentially invoke a different action, and because
    we expect other handlers to generate synthetic events, we need to
    separate the data related to these two functions.
    
    Also rename the onmatch data to something more descriptive, and create
    and use common action data destroy function.
    
    Link: http://lkml.kernel.org/r/b9abbf9aae69fe3920cdc8ddbcaad544dd258d78.1550100284.git.tom.zanussi@linux.intel.com
    
    Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Use dyn_event framework for synthetic events [+ + +]
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Thu May 9 10:29:21 2024 +0800

    tracing: Use dyn_event framework for synthetic events
    
    commit 7bbab38d07f3185fddf6fce126e2239010efdfce upstream.
    
    Use dyn_event framework for synthetic events. This shows
    synthetic events on "tracing/dynamic_events" file in addition
    to tracing/synthetic_events interface.
    
    User can also define new events via tracing/dynamic_events
    with "s:" prefix. So, the new syntax is below;
    
      s:[synthetic/]EVENT_NAME TYPE ARG; [TYPE ARG;]...
    
    To remove events via tracing/dynamic_events, you can use
    "-:" prefix as same as other events.
    
    Link: http://lkml.kernel.org/r/154140861301.17322.15454611233735614508.stgit@devbox
    
    Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Use str_has_prefix() helper for histogram code [+ + +]
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu May 9 10:29:25 2024 +0800

    tracing: Use str_has_prefix() helper for histogram code
    
    commit 754481e6954cbef53f8bc4412ad48dde611e21d3 upstream.
    
    The tracing histogram code contains a lot of instances of the construct:
    
     strncmp(str, "const", sizeof("const") - 1)
    
    This can be prone to bugs due to typos or bad cut and paste. Use the
    str_has_prefix() helper macro instead that removes the need for having two
    copies of the constant string.
    
    Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

tracing: Use str_has_prefix() instead of using fixed sizes [+ + +]
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Thu May 9 10:29:26 2024 +0800

    tracing: Use str_has_prefix() instead of using fixed sizes
    
    commit b6b2735514bcd70ad1556a33892a636b20ece671 upstream.
    
    There are several instances of strncmp(str, "const", 123), where 123 is the
    strlen of the const string to check if "const" is the prefix of str. But
    this can be error prone. Use str_has_prefix() instead.
    
    Acked-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: George Guo <guodongtai@kylinos.cn>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>