selinux: conditionally reschedule in hashtab_insert while loading selinux policy
authorDave Jones <davej@redhat.com>
Thu, 15 May 2014 19:03:53 +0000 (15:03 -0400)
committerPaul Moore <pmoore@redhat.com>
Thu, 15 May 2014 21:07:55 +0000 (17:07 -0400)
After silencing the sleeping warning in mls_convert_context() I started
seeing similar traces from hashtab_insert. Do a cond_resched there too.

Signed-off-by: Dave Jones <davej@redhat.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Paul Moore <pmoore@redhat.com>
security/selinux/ss/hashtab.c

index 933e735bb1850d8b7d125f4899124ff8f2af0d0d..2cc496149842825cd90e57a087c57314295f73fc 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/errno.h>
+#include <linux/sched.h>
 #include "hashtab.h"
 
 struct hashtab *hashtab_create(u32 (*hash_value)(struct hashtab *h, const void *key),
@@ -40,6 +41,8 @@ int hashtab_insert(struct hashtab *h, void *key, void *datum)
        u32 hvalue;
        struct hashtab_node *prev, *cur, *newnode;
 
+       cond_resched();
+
        if (!h || h->nel == HASHTAB_MAX_NODES)
                return -EINVAL;