From: Flavio Leitner <redacted>
Date: Thu, 27 Mar 2014 11:05:34 -0300
There are two problematic situations.
A deadlock can happen when is_percpu is false because it can get
interrupted while holding the spinlock. Then it executes
ovs_flow_stats_update() in softirq context which tries to get
the same lock.
The second sitation is that when is_percpu is true, the code
correctly disables BH but only for the local CPU, so the
following can happen when locking the remote CPU without
disabling BH:
...
Signed-off-by: Flavio Leitner <redacted>
---
v2: better commit message
Ok, I just saw Jesse's request that I apply this directly, so I
have done so.
Thanks.