Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c5974b83 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'limits_cleanup' of git://decibel.fi.muni.cz/~xslaby/linux

* 'limits_cleanup' of git://decibel.fi.muni.cz/~xslaby/linux:
  resource: add helpers for fetching rlimits
  resource: move kernel function inside __KERNEL__
  SECURITY: selinux, fix update_rlimit_cpu parameter
parents 14107c75 3e10e716
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -3,8 +3,6 @@

#include <linux/time.h>

struct task_struct;

/*
 * Resource control/accounting header file for linux
 */
@@ -70,6 +68,12 @@ struct rlimit {
 */
#include <asm/resource.h>

#ifdef __KERNEL__

struct task_struct;

int getrusage(struct task_struct *p, int who, struct rusage __user *ru);

#endif /* __KERNEL__ */

#endif
+22 −0
Original line number Diff line number Diff line
@@ -2601,6 +2601,28 @@ static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p)
}
#endif /* CONFIG_MM_OWNER */

static inline unsigned long task_rlimit(const struct task_struct *tsk,
		unsigned int limit)
{
	return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur);
}

static inline unsigned long task_rlimit_max(const struct task_struct *tsk,
		unsigned int limit)
{
	return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max);
}

static inline unsigned long rlimit(unsigned int limit)
{
	return task_rlimit(current, limit);
}

static inline unsigned long rlimit_max(unsigned int limit)
{
	return task_rlimit_max(current, limit);
}

#endif /* __KERNEL__ */

#endif
+1 −1
Original line number Diff line number Diff line
@@ -2365,7 +2365,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm)
			initrlim = init_task.signal->rlim + i;
			rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur);
		}
		update_rlimit_cpu(rlim->rlim_cur);
		update_rlimit_cpu(current->signal->rlim[RLIMIT_CPU].rlim_cur);
	}
}