Again from UCLinux merge but relevant on its own for any embedded tiny box
*/
max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8;
- init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;
- init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;
+ /*
+ * we need to allow at least 10 threads to boot a system
+ */
+ init_task.rlim[RLIMIT_NPROC].rlim_cur = max(10, max_threads/2);
+ init_task.rlim[RLIMIT_NPROC].rlim_max = max(10, max_threads/2);
}
static struct task_struct *dup_task_struct(struct task_struct *orig)