search for: bypass_register_instance

Displaying 7 results from an estimated 7 matches for "bypass_register_instance".

2018 Apr 06
1
[RFC PATCH net-next v5 2/4] net: Introduce generic bypass module
...tance_list; >+ struct mutex lock; >+}; >+ >+#if IS_ENABLED(CONFIG_NET_BYPASS) >+ >+struct bypass *bypass_register_driver(const struct bypass_ops *ops, >+ const struct net_device_ops *netdev_ops); >+void bypass_unregister_driver(struct bypass *bypass); >+ >+int bypass_register_instance(struct bypass *bypass, struct net_device *dev); >+int bypass_unregister_instance(struct bypass *bypass, struct net_device *dev); >+ >+int bypass_unregister_child(struct net_device *child_netdev); >+ >+#else >+ >+static inline >+struct bypass *bypass_register_driver(const str...
2018 Apr 05
0
[RFC PATCH net-next v5 2/4] net: Introduce generic bypass module
..._ops *netdev_ops; + struct list_head instance_list; + struct mutex lock; +}; + +#if IS_ENABLED(CONFIG_NET_BYPASS) + +struct bypass *bypass_register_driver(const struct bypass_ops *ops, + const struct net_device_ops *netdev_ops); +void bypass_unregister_driver(struct bypass *bypass); + +int bypass_register_instance(struct bypass *bypass, struct net_device *dev); +int bypass_unregister_instance(struct bypass *bypass, struct net_device *dev); + +int bypass_unregister_child(struct net_device *child_netdev); + +#else + +static inline +struct bypass *bypass_register_driver(const struct bypass_ops *ops, +...
2018 Apr 05
6
[RFC PATCH net-next v5 0/4] Enable virtio_net to act as a backup for a passthru device
The main motivation for this patch is to enable cloud service providers to provide an accelerated datapath to virtio-net enabled VMs in a transparent manner with no/minimal guest userspace changes. This also enables hypervisor controlled live migration to be supported with VMs that have direct attached SR-IOV VF devices. Patch 1 introduces a new feature bit VIRTIO_NET_F_BACKUP that can be used
2018 Apr 06
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...>> + >> + res = register_netdev(bypass_netdev); >> + if (res < 0) { >> + dev_err(dev, "Unable to register bypass_netdev!\n"); >> + goto err_register_netdev; >> + } >> + >> + netif_carrier_off(bypass_netdev); >> + >> + res = bypass_register_instance(virtnet_bypass, bypass_netdev); >> + if (res < 0) >> + goto err_bypass; >> + >> + rcu_assign_pointer(vi->bypass_netdev, bypass_netdev); >> + >> + return 0; >> + >> +err_bypass: >> + unregister_netdev(bypass_netdev); >> +err_register...
2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...ss_netdev->max_mtu = backup_netdev->max_mtu; >+ >+ res = register_netdev(bypass_netdev); >+ if (res < 0) { >+ dev_err(dev, "Unable to register bypass_netdev!\n"); >+ goto err_register_netdev; >+ } >+ >+ netif_carrier_off(bypass_netdev); >+ >+ res = bypass_register_instance(virtnet_bypass, bypass_netdev); >+ if (res < 0) >+ goto err_bypass; >+ >+ rcu_assign_pointer(vi->bypass_netdev, bypass_netdev); >+ >+ return 0; >+ >+err_bypass: >+ unregister_netdev(bypass_netdev); >+err_register_netdev: >+ free_netdev(bypass_netdev); >+ &...
2018 Apr 06
2
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
...ss_netdev->max_mtu = backup_netdev->max_mtu; >+ >+ res = register_netdev(bypass_netdev); >+ if (res < 0) { >+ dev_err(dev, "Unable to register bypass_netdev!\n"); >+ goto err_register_netdev; >+ } >+ >+ netif_carrier_off(bypass_netdev); >+ >+ res = bypass_register_instance(virtnet_bypass, bypass_netdev); >+ if (res < 0) >+ goto err_bypass; >+ >+ rcu_assign_pointer(vi->bypass_netdev, bypass_netdev); >+ >+ return 0; >+ >+err_bypass: >+ unregister_netdev(bypass_netdev); >+err_register_netdev: >+ free_netdev(bypass_netdev); >+ &...
2018 Apr 05
0
[RFC PATCH net-next v5 3/4] virtio_net: Extend virtio to use VF datapath when available
..._mtu = backup_netdev->min_mtu; + bypass_netdev->max_mtu = backup_netdev->max_mtu; + + res = register_netdev(bypass_netdev); + if (res < 0) { + dev_err(dev, "Unable to register bypass_netdev!\n"); + goto err_register_netdev; + } + + netif_carrier_off(bypass_netdev); + + res = bypass_register_instance(virtnet_bypass, bypass_netdev); + if (res < 0) + goto err_bypass; + + rcu_assign_pointer(vi->bypass_netdev, bypass_netdev); + + return 0; + +err_bypass: + unregister_netdev(bypass_netdev); +err_register_netdev: + free_netdev(bypass_netdev); + + return res; +} + +static void virtnet_bypass_de...