From c2da7aae90d1900cc2e8512d4e00e2e2b01eb526 Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Fri, 3 Feb 2012 05:18:43 +0000 Subject: [PATCH] --- yaml --- r: 287505 b: refs/heads/master c: 5962b35c1de3254a2f03b95efd3b7854b874d7b7 h: refs/heads/master i: 287503: 97b9307cc85a83aadf851e609484d4cff94275f0 v: v3 --- [refs] | 2 +- trunk/net/core/netprio_cgroup.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index cc1c8eb5e472..0c52873fc54f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1715322f3e0600b664fa8b780a07de104f49c104 +refs/heads/master: 5962b35c1de3254a2f03b95efd3b7854b874d7b7 diff --git a/trunk/net/core/netprio_cgroup.c b/trunk/net/core/netprio_cgroup.c index 3a9fd4826b75..9ae183a9a381 100644 --- a/trunk/net/core/netprio_cgroup.c +++ b/trunk/net/core/netprio_cgroup.c @@ -58,11 +58,12 @@ static int get_prioidx(u32 *prio) spin_lock_irqsave(&prioidx_map_lock, flags); prioidx = find_first_zero_bit(prioidx_map, sizeof(unsigned long) * PRIOIDX_SZ); + if (prioidx == sizeof(unsigned long) * PRIOIDX_SZ) { + spin_unlock_irqrestore(&prioidx_map_lock, flags); + return -ENOSPC; + } set_bit(prioidx, prioidx_map); spin_unlock_irqrestore(&prioidx_map_lock, flags); - if (prioidx == sizeof(unsigned long) * PRIOIDX_SZ) - return -ENOSPC; - atomic_set(&max_prioidx, prioidx); *prio = prioidx; return 0;