Re: [PATCH 1/2] break out page allocation warning code

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

 



> The concept is ok to me. but AFAIK some caller are now using ARRAY_SIZE(tsk->comm).
> or sizeof(tsk->comm). Probably callers need to be changed too.

one more correction.

>  void set_task_comm(struct task_struct *tsk, char *buf)
>  {
> +	char tmp_comm[TASK_COMM_LEN];
> +
>  	task_lock(tsk);
>  
> +	memcpy(tmp_comm, tsk->comm_buf, TASK_COMM_LEN);
> +	tsk->comm = tmp;
>  	/*
> -	 * Threads may access current->comm without holding
> -	 * the task lock, so write the string carefully.
> -	 * Readers without a lock may see incomplete new
> -	 * names but are safe from non-terminating string reads.
> +	 * Make sure no one is still looking at tsk->comm_buf
>  	 */
> -	memset(tsk->comm, 0, TASK_COMM_LEN);
> -	wmb();
> -	strlcpy(tsk->comm, buf, sizeof(tsk->comm));
> +	synchronize_rcu();

The doc says,

/**
 * synchronize_rcu - wait until a grace period has elapsed.
 *

And here is under spinlock.



--
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]