datapath: Fix recv path for CONFIG_PREEMPT_RCU.
authorPravin B Shelar <pshelar@nicira.com>
Fri, 7 Oct 2011 02:45:09 +0000 (19:45 -0700)
committerPravin B Shelar <pshelar@nicira.com>
Fri, 7 Oct 2011 02:45:09 +0000 (19:45 -0700)
commit8a5d84f621f23ea2594248410641c037e9bc919d
tree95e95ecc5fe6f6457eee435a2cefa0e7247f958d
parentad6247f508ddd80f216023b024e66537df852036
datapath: Fix recv path for CONFIG_PREEMPT_RCU.

        In case CONFIG_PREEMPT_RCU, rcu grace period waits only for RCU
read-side critical sections that are delimited by rcu_read_lock() and
rcu_read_unlock(). internal_dev_xmit() is called in
rcu_read_lock_bh context. Therefore we need to explicitly take rcu
lock to prevent race with call_rcu() in PREEMPT_RCU case.

Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
datapath/vport-internal_dev.c