Skip to content
  • Tejun Heo's avatar
    kprobes: fix wait_for_kprobe_optimizer() · ad72b3be
    Tejun Heo authored
    
    
    wait_for_kprobe_optimizer() seems largely broken.  It uses
    optimizer_comp which is never re-initialized, so
    wait_for_kprobe_optimizer() will never wait for anything once
    kprobe_optimizer() finishes all pending jobs for the first time.
    
    Also, aside from completion, delayed_work_pending() is %false once
    kprobe_optimizer() starts execution and wait_for_kprobe_optimizer()
    won't wait for it.
    
    Reimplement it so that it flushes optimizing_work until
    [un]optimizing_lists are empty.  Note that this also makes
    optimizing_work execute immediately if someone's waiting for it, which
    is the nicer behavior.
    
    Only compile tested.
    
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
    Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    ad72b3be