From: Paolo Abeni <pab...@redhat.com> Date: Thu, 25 Aug 2016 15:58:44 +0200
> Currently in process_backlog(), the process_queue dequeuing is > performed with local IRQ disabled, to protect against > flush_backlog(), which runs in hard IRQ context. > > This patch moves the flush operation to a work queue and runs the > callback with bottom half disabled to protect the process_queue > against dequeuing. > Since process_queue is now always manipulated in bottom half context, > the irq disable/enable pair around the dequeue operation are removed. > > To keep the flush time as low as possible, the flush > works are scheduled on all online cpu simultaneously, using the > high priority work-queue and statically allocated, per cpu, > work structs. > > Overall this change increases the time required to destroy a device > to improve slightly the packets reinjection performances. > > Acked-by: Hannes Frederic Sowa <han...@stressinduktion.org> > Signed-off-by: Paolo Abeni <pab...@redhat.com> Applied, thanks.