lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 02 Feb 2014 11:40:34 +0900
From:	Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>
To:	Chen Gang <gang.chen.5i5j@...il.com>
Cc:	ananth@...ibm.com, anil.s.keshavamurthy@...el.com,
	hskinnemoen@...il.com, David Miller <davem@...emloft.net>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	egtvedt@...fundet.no
Subject: Re: [PATCH] kernel/kprobes.c: move cleanup_rp_inst() to where CONFIG_KRETPROBES
 enabled

(2014/02/01 21:17), Chen Gang wrote:
> When CONFIG_KRETPROBES disabled, cleanup_rp_inst() is useless too. It
> is only called by unregister_kretprobes() which is in CONFIG_KRETPROBES
> enabled area.
> 
> The related warning (allmodconfig under avr32):
> 
>   kernel/kprobes.c:1181: warning: 'cleanup_rp_inst' defined but not used

This patch itself looks good to me.
And it seems that not only the cleanup_rp_inst, but also other
kretprobe related functions should be moved (free_rp_inst,etc)

Thank you,

> 
> 
> Signed-off-by: Chen Gang <gang.chen.5i5j@...il.com>
> ---
>  kernel/kprobes.c | 40 ++++++++++++++++++++--------------------
>  1 file changed, 20 insertions(+), 20 deletions(-)
> 
> diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> index ceeadfc..18a520d 100644
> --- a/kernel/kprobes.c
> +++ b/kernel/kprobes.c
> @@ -1178,26 +1178,6 @@ static inline void free_rp_inst(struct kretprobe *rp)
>  	}
>  }
>  
> -static void __kprobes cleanup_rp_inst(struct kretprobe *rp)
> -{
> -	unsigned long flags, hash;
> -	struct kretprobe_instance *ri;
> -	struct hlist_node *next;
> -	struct hlist_head *head;
> -
> -	/* No race here */
> -	for (hash = 0; hash < KPROBE_TABLE_SIZE; hash++) {
> -		kretprobe_table_lock(hash, &flags);
> -		head = &kretprobe_inst_table[hash];
> -		hlist_for_each_entry_safe(ri, next, head, hlist) {
> -			if (ri->rp == rp)
> -				ri->rp = NULL;
> -		}
> -		kretprobe_table_unlock(hash, &flags);
> -	}
> -	free_rp_inst(rp);
> -}
> -
>  /*
>  * Add the new probe to ap->list. Fail if this is the
>  * second jprobe at the address - two jprobes can't coexist
> @@ -1885,6 +1865,26 @@ void __kprobes unregister_kretprobe(struct kretprobe *rp)
>  }
>  EXPORT_SYMBOL_GPL(unregister_kretprobe);
>  
> +static void __kprobes cleanup_rp_inst(struct kretprobe *rp)
> +{
> +	unsigned long flags, hash;
> +	struct kretprobe_instance *ri;
> +	struct hlist_node *next;
> +	struct hlist_head *head;
> +
> +	/* No race here */
> +	for (hash = 0; hash < KPROBE_TABLE_SIZE; hash++) {
> +		kretprobe_table_lock(hash, &flags);
> +		head = &kretprobe_inst_table[hash];
> +		hlist_for_each_entry_safe(ri, next, head, hlist) {
> +			if (ri->rp == rp)
> +				ri->rp = NULL;
> +		}
> +		kretprobe_table_unlock(hash, &flags);
> +	}
> +	free_rp_inst(rp);
> +}
> +
>  void __kprobes unregister_kretprobes(struct kretprobe **rps, int num)
>  {
>  	int i;
> 


-- 
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@...achi.com


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists