Pull probes fixes from Masami Hiramatsu:
 - Fix fprobe's rethook release issues:
     - Release rethook after ftrace_ops is unregistered so that the
       rethook is not accessed after free.
     - Stop rethook before ftrace_ops is unregistered so that the
       rethook is NOT used after exiting unregister_fprobe()
 - Fix eprobe cleanup logic. If it attaches to multiple events and
   failes to enable one of them, rollback all enabled events correctly.
 - Fix fprobe to unlock ftrace recursion lock correctly when it missed
   by another running kprobe.
 - Cleanup kprobe to remove unnecessary NULL.
 - Cleanup kprobe to remove unnecessary 0 initializations.
* tag 'probes-fixes-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  fprobe: Ensure running fprobe_exit_handler() finished before calling rethook_free()
  kernel: kprobes: Remove unnecessary ‘0’ values
  kprobes: Remove unnecessary ‘NULL’ values from correct_ret_addr
  fprobe: add unlock to match a succeeded ftrace_test_recursion_trylock
  kernel/trace: Fix cleanup logic of enable_trace_eprobe
  fprobe: Release rethook after the ftrace_ops is unregistered
  {
        int ret;
  
 -      if (!fp || (fp->ops.saved_func != fprobe_handler &&
 -                  fp->ops.saved_func != fprobe_kprobe_handler))
 +      if (!fprobe_is_registered(fp))
                return -EINVAL;
  
-       /*
-        * rethook_free() starts disabling the rethook, but the rethook handlers
-        * may be running on other processors at this point. To make sure that all
-        * current running handlers are finished, call unregister_ftrace_function()
-        * after this.
-        */
        if (fp->rethook)
-               rethook_free(fp->rethook);
+               rethook_stop(fp->rethook);
  
        ret = unregister_ftrace_function(&fp->ops);
        if (ret < 0)