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

Commit b7c8921b authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Arnaldo Carvalho de Melo
Browse files

[PKTGEN]: Sleeping function called under lock



pktgen is calling kmalloc GFP_KERNEL and vmalloc with lock held.
The simplest fix is to turn the lock into a semaphore, since the
thread lock is only used for admin control from user context.

Signed-off-by: default avatarStephen Hemminger <shemminger@osdl.org>
Signed-off-by: default avatarRobert Olsson <robert.olsson@its.uu.se>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
parent 670c02c2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -177,8 +177,8 @@
#define T_REMDEV      (1<<3)  /* Remove all devs */

/* Locks */
#define   thread_lock()        spin_lock(&_thread_lock)
#define   thread_unlock()      spin_unlock(&_thread_lock)
#define   thread_lock()        down(&pktgen_sem)
#define   thread_unlock()      up(&pktgen_sem)

/* If lock -- can be removed after some work */
#define   if_lock(t)           spin_lock(&(t->if_lock));
@@ -503,7 +503,7 @@ static int pg_delay_d = 0;
static int pg_clone_skb_d = 0;
static int debug = 0;

static DEFINE_SPINLOCK(_thread_lock);
static DECLARE_MUTEX(pktgen_sem);
static struct pktgen_thread *pktgen_threads = NULL;

static char module_fname[128];