From: Tetsuo Handa Date: Tue, 22 Jul 2014 12:20:01 +0000 (+0900) Subject: commoncap: don't alloc the credential unless needed in cap_task_prctl X-Git-Tag: omap-for-v3.17/fixes-against-rc2~151^2~13 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d6f3328422a3bc56b0d8dd026a5de845d2abfa7;p=pandora-kernel.git commoncap: don't alloc the credential unless needed in cap_task_prctl In function cap_task_prctl(), we would allocate a credential unconditionally and then check if we support the requested function. If not we would release this credential with abort_creds() by using RCU method. But on some archs such as powerpc, the sys_prctl is heavily used to get/set the floating point exception mode. So the unnecessary allocating/releasing of credential not only introduce runtime overhead but also do cause OOM due to the RCU implementation. This patch removes abort_creds() from cap_task_prctl() by calling prepare_creds() only when we need to modify it. Reported-by: Kevin Hao Signed-off-by: Tetsuo Handa Reviewed-by: Paul Moore Acked-by: Serge E. Hallyn Reviewed-by: Kees Cook Signed-off-by: James Morris --- Reading git-diff-tree failed