diff options
author | Arnd Bergmann <arnd@arndb.de> | 2010-02-18 05:45:36 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-18 22:08:37 (GMT) |
commit | 02df55d28c6001a3cdb7a997a34a0b01f01d015e (patch) | |
tree | ea1bf32f7464294ce90e288bf5440323e9ca6e7f /drivers/vhost/net.c | |
parent | 37ee3d5b3e979a168536e7e2f15bd1e769cb4122 (diff) | |
download | linux-02df55d28c6001a3cdb7a997a34a0b01f01d015e.tar.xz |
macvtap: rework object lifetime rules
This reworks the change done by the previous patch
in a more complete way.
The original macvtap code has a number of problems
resulting from the use of RCU for protecting the
access to struct macvtap_queue from open files.
This includes
- need for GFP_ATOMIC allocations for skbs
- potential deadlocks when copy_*_user sleeps
- inability to work with vhost-net
Changing the lifetime of macvtap_queue to always
depend on the open file solves all these. The
RCU reference simply moves one step down to
the reference on the macvlan_dev, which we
only need for nonblocking operations.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/vhost/net.c')
0 files changed, 0 insertions, 0 deletions