On 2015/11/10 7:22, Stephen Hemminger wrote: > On Mon, 9 Nov 2015 14:17:01 +0900 > Tetsuya Mukawa <mukawa at igel.co.jp> wrote: > >> + rte_atomic32_set(&r->while_queuing, 1); >> + >> + if (unlikely(rte_atomic32_read(&r->allow_queuing) == 0)) >> + goto out; > You special 2 variable custom locking here is buggy. > If you hit second atomic test, you will leave while_queuing set.
Hi Stephen, Thanks for reviewing. I clear while_queuing like below. +out: + rte_atomic32_set(&r->while_queuing, 0); + + return nb_rx; +} Thanks, tetsuya