#include <linux/rcupdate.h>
#include <linux/sched.h>
+#include "tools-util.h"
+
enum KTHREAD_BITS {
KTHREAD_IS_PER_CPU = 0,
KTHREAD_SHOULD_STOP,
{
va_list args;
struct task_struct *p = malloc(sizeof(*p));
+ int ret;
memset(p, 0, sizeof(*p));
atomic_set(&p->usage, 1);
init_completion(&p->exited);
- pthread_create(&p->thread, NULL, kthread_start_fn, p);
+ pthread_attr_t attr;
+ pthread_attr_init(&attr);
+ pthread_attr_setstacksize(&attr, 32 << 10);
+
+ ret = pthread_create(&p->thread, &attr, kthread_start_fn, p);
+ if (ret)
+ return ERR_PTR(-ret);
pthread_setname_np(p->thread, p->comm);
return p;
}