Re: [PATCH] kmemleak: Never return a pointer you didn't 'get'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 27/04/11 10:31 +0100, ext Catalin Marinas wrote:
> On Thu, 2011-04-21 at 12:39 +0100, Phil Carmody wrote:
> > Old - If you don't get the last pointer that you looked at, then it will
> > still be put, as there's no way of knowing you didn't get it.
> > 
> > New - If you didn't get it, then it refers to something deleted, and
> > your work is done, so return NULL.
> > 
> > Signed-off-by: Phil Carmody <ext-phil.2.carmody@xxxxxxxxx>
> 
> Good catch. But I think the code may look slightly simpler as below:
> 
> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
> index c1d5867..aacee45 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -1414,9 +1414,12 @@ static void *kmemleak_seq_next(struct seq_file *seq, void *v, loff_t *pos)
>  	++(*pos);
>  
>  	list_for_each_continue_rcu(n, &object_list) {
> -		next_obj = list_entry(n, struct kmemleak_object, object_list);
> -		if (get_object(next_obj))
> +		struct kmemleak_object *obj =
> +			list_entry(n, struct kmemleak_object, object_list);
> +		if (get_object(obj)) {
> +			next_obj = obj;
>  			break;
> +		}
>  	}
>  
>  	put_object(prev_obj);

I did consider that way too, but had no strong preference. I think I now
prefer yours, so please add:

Signed-off-by: Phil Carmody <ext-phil.2.carmody@xxxxxxxxx>

Cheers,
Phil

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]