patch-2.3.6 linux/net/sched/sch_csz.c

Next file: linux/net/sched/sch_generic.c
Previous file: linux/net/sched/sch_cbq.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.5/linux/net/sched/sch_csz.c linux/net/sched/sch_csz.c
@@ -885,7 +885,7 @@
 
 		a = &q->flow[cl];
 
-		start_bh_atomic();	
+		spin_lock_bh(&sch->dev->queue_lock);
 #if 0
 		a->rate_log = copt->rate_log;
 #endif
@@ -899,7 +899,7 @@
 		if (tb[TCA_CSZ_RTAB-1])
 			memcpy(a->L_tab, RTA_DATA(tb[TCA_CSZ_RTAB-1]), 1024);
 
-		end_bh_atomic();
+		spin_unlock_bh(&sch->dev->queue_lock);
 		return 0;
 	}
 	/* NI */
@@ -920,14 +920,14 @@
 
 	a = &q->flow[cl];
 
-	start_bh_atomic();
+	spin_lock_bh(&sch->dev->queue_lock);
 	a->fprev->fnext = a->fnext;
 	a->fnext->fprev = a->fprev;
 	a->sprev->snext = a->snext;
 	a->snext->sprev = a->sprev;
 	a->start = a->finish = 0;
 	kfree(xchg(&q->flow[cl].L_tab, NULL));
-	end_bh_atomic();
+	spin_unlock_bh(&sch->dev->queue_lock);
 
 	return 0;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)