search for: perm_addr

Displaying 20 results from an estimated 65 matches for "perm_addr".

2018 May 07
2
[PATCH net-next v10 2/4] net: Introduce generic failover module
...uct net_device *failover_dev; > + struct net_failover *failover; > + > + spin_lock(&net_failover_lock); > + list_for_each_entry(failover, &net_failover_list, list) { > + failover_dev = rtnl_dereference(failover->failover_dev); > + if (ether_addr_equal(failover_dev->perm_addr, mac)) { > + *ops = rtnl_dereference(failover->ops); > + spin_unlock(&net_failover_lock); > + return failover_dev; > + } > + } > + spin_unlock(&net_failover_lock); > + return NULL; > +} This is broken if non-ethernet devices such as Infiniband are present.
2018 May 07
2
[PATCH net-next v10 2/4] net: Introduce generic failover module
...uct net_device *failover_dev; > + struct net_failover *failover; > + > + spin_lock(&net_failover_lock); > + list_for_each_entry(failover, &net_failover_list, list) { > + failover_dev = rtnl_dereference(failover->failover_dev); > + if (ether_addr_equal(failover_dev->perm_addr, mac)) { > + *ops = rtnl_dereference(failover->ops); > + spin_unlock(&net_failover_lock); > + return failover_dev; > + } > + } > + spin_unlock(&net_failover_lock); > + return NULL; > +} This is broken if non-ethernet devices such as Infiniband are present.
2018 May 24
0
[PATCH net-next v12 1/5] net: Introduce generic failover module
...*mac, struct failover_ops **ops) +{ + struct net_device *failover_dev; + struct failover *failover; + + spin_lock(&failover_lock); + list_for_each_entry(failover, &failover_list, list) { + failover_dev = rtnl_dereference(failover->failover_dev); + if (ether_addr_equal(failover_dev->perm_addr, mac)) { + *ops = rtnl_dereference(failover->ops); + spin_unlock(&failover_lock); + return failover_dev; + } + } + spin_unlock(&failover_lock); + return NULL; +} + +/** + * failover_slave_register - Register a slave netdev + * + * @slave_dev: slave netdev that is being registered...
2018 Apr 06
1
[RFC PATCH net-next v5 2/4] net: Introduce generic bypass module
...ass, &bypass_list, list) { >+ mutex_lock(&bypass->lock); >+ list_for_each_entry(bypass_instance, &bypass->instance_list, >+ list) { >+ bypass_netdev = >+ rcu_dereference(bypass_instance->bypass_netdev); >+ if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >+ mutex_unlock(&bypass->lock); >+ goto out; >+ } >+ } >+ mutex_unlock(&bypass->lock); >+ } >+ >+ bypass_instance = NULL; >+out: >+ return bypass_instance; >+} >+ >+static int bypass_register_child(struct net_device *child_netd...
2018 Apr 05
0
[RFC PATCH net-next v5 2/4] net: Introduce generic bypass module
...list_for_each_entry(bypass, &bypass_list, list) { + mutex_lock(&bypass->lock); + list_for_each_entry(bypass_instance, &bypass->instance_list, + list) { + bypass_netdev = + rcu_dereference(bypass_instance->bypass_netdev); + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { + mutex_unlock(&bypass->lock); + goto out; + } + } + mutex_unlock(&bypass->lock); + } + + bypass_instance = NULL; +out: + return bypass_instance; +} + +static int bypass_register_child(struct net_device *child_netdev) +{ + struct bypass_instance *bypass_instance; +...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...t; NULL for 3-netdev model. >> I see :( >> >> >> > >> > > >> > > >> > > >> > > > + bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >> > > > + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >> > > > + *ops = rcu_dereference(bypass_master->ops); >> > > I don't see how rcu_dereference is ok here. >> > > 1) I don't see rcu_read_lock taken >> > > 2) Looks like bypass_master->ops has the same value across the whole...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...t; NULL for 3-netdev model. >> I see :( >> >> >> > >> > > >> > > >> > > >> > > > + bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >> > > > + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >> > > > + *ops = rcu_dereference(bypass_master->ops); >> > > I don't see how rcu_dereference is ok here. >> > > 1) I don't see rcu_read_lock taken >> > > 2) Looks like bypass_master->ops has the same value across the whole...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...39;ops' only to support the 2 netdev model of netvsc. ops will be >NULL for 3-netdev model. I see :( > > >> >> >> >> >> > + bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >> > + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >> > + *ops = rcu_dereference(bypass_master->ops); >> I don't see how rcu_dereference is ok here. >> 1) I don't see rcu_read_lock taken >> 2) Looks like bypass_master->ops has the same value across the whole >> existence. > >We hol...
2018 Apr 18
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...39;ops' only to support the 2 netdev model of netvsc. ops will be >NULL for 3-netdev model. I see :( > > >> >> >> >> >> > + bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >> > + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >> > + *ops = rcu_dereference(bypass_master->ops); >> I don't see how rcu_dereference is ok here. >> 1) I don't see rcu_read_lock taken >> 2) Looks like bypass_master->ops has the same value across the whole >> existence. > >We hol...
2018 May 08
0
[PATCH net-next v10 2/4] net: Introduce generic failover module
..._dev; >> + struct net_failover *failover; >> + >> + spin_lock(&net_failover_lock); >> + list_for_each_entry(failover, &net_failover_list, list) { >> + failover_dev = rtnl_dereference(failover->failover_dev); >> + if (ether_addr_equal(failover_dev->perm_addr, mac)) { >> + *ops = rtnl_dereference(failover->ops); >> + spin_unlock(&net_failover_lock); >> + return failover_dev; >> + } >> + } >> + spin_unlock(&net_failover_lock); >> + return NULL; >> +} > This is broken if non-ethernet dev...
2018 May 25
2
[PATCH net-next v12 1/5] net: Introduce generic failover module
...lover_slave_unregister(struct net_device *slave_dev) > +{ > + struct net_device *failover_dev; > + struct failover_ops *fops; > + > + if (!netif_is_failover_slave(slave_dev)) > + goto done; > + > + ASSERT_RTNL(); > + > + failover_dev = failover_get_bymac(slave_dev->perm_addr, &fops); > + if (!failover_dev) > + goto done; Since the slave device must have a master device set already, why not use that instead of searching by MAC address on unregister or link change.
2018 Apr 20
2
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...{ > + struct net_device *failover_dev; > + struct failover *failover; > + > + spin_lock(&failover_lock); > + list_for_each_entry(failover, &failover_list, list) { > + failover_dev = rtnl_dereference(failover->failover_dev); > + if (ether_addr_equal(failover_dev->perm_addr, mac)) { > + *ops = rtnl_dereference(failover->ops); > + spin_unlock(&failover_lock); > + return failover_dev; > + } > + } > + spin_unlock(&failover_lock); > + return NULL; > +} > + > +static int failover_slave_register(struct net_device *slave_dev) &...
2018 Apr 20
2
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...{ > + struct net_device *failover_dev; > + struct failover *failover; > + > + spin_lock(&failover_lock); > + list_for_each_entry(failover, &failover_list, list) { > + failover_dev = rtnl_dereference(failover->failover_dev); > + if (ether_addr_equal(failover_dev->perm_addr, mac)) { > + *ops = rtnl_dereference(failover->ops); > + spin_unlock(&failover_lock); > + return failover_dev; > + } > + } > + spin_unlock(&failover_lock); > + return NULL; > +} > + > +static int failover_slave_register(struct net_device *slave_dev) &...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...on't need this list, spinlock. You can do just something like: for_each_net(net) { for_each_netdev(net, dev) { if (netif_is_bypass_master(dev)) { >+ bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >+ if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >+ *ops = rcu_dereference(bypass_master->ops); I don't see how rcu_dereference is ok here. 1) I don't see rcu_read_lock taken 2) Looks like bypass_master->ops has the same value across the whole existence. >+ spin_unlock(&bypass_lock); >+ return bypas...
2018 Apr 11
2
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...on't need this list, spinlock. You can do just something like: for_each_net(net) { for_each_netdev(net, dev) { if (netif_is_bypass_master(dev)) { >+ bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >+ if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >+ *ops = rcu_dereference(bypass_master->ops); I don't see how rcu_dereference is ok here. 1) I don't see rcu_read_lock taken 2) Looks like bypass_master->ops has the same value across the whole existence. >+ spin_unlock(&bypass_lock); >+ return bypas...
2018 Apr 10
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...**ops) +{ + struct bypass_master *bypass_master; + struct net_device *bypass_netdev; + + spin_lock(&bypass_lock); + list_for_each_entry(bypass_master, &bypass_master_list, list) { + bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { + *ops = rcu_dereference(bypass_master->ops); + spin_unlock(&bypass_lock); + return bypass_netdev; + } + } + spin_unlock(&bypass_lock); + return NULL; +} + +static int bypass_slave_register(struct net_device *slave_netdev) +{ + struct net_device *bypass_netdev; + struct b...
2018 Apr 20
0
[PATCH v7 net-next 2/4] net: Introduce generic failover module
...*mac, struct failover_ops **ops) +{ + struct net_device *failover_dev; + struct failover *failover; + + spin_lock(&failover_lock); + list_for_each_entry(failover, &failover_list, list) { + failover_dev = rtnl_dereference(failover->failover_dev); + if (ether_addr_equal(failover_dev->perm_addr, mac)) { + *ops = rtnl_dereference(failover->ops); + spin_unlock(&failover_lock); + return failover_dev; + } + } + spin_unlock(&failover_lock); + return NULL; +} + +static int failover_slave_register(struct net_device *slave_dev) +{ + struct failover_ops *failover_ops; + struct ne...
2018 May 07
0
[PATCH net-next v10 2/4] net: Introduce generic failover module
...t_failover_ops **ops) +{ + struct net_device *failover_dev; + struct net_failover *failover; + + spin_lock(&net_failover_lock); + list_for_each_entry(failover, &net_failover_list, list) { + failover_dev = rtnl_dereference(failover->failover_dev); + if (ether_addr_equal(failover_dev->perm_addr, mac)) { + *ops = rtnl_dereference(failover->ops); + spin_unlock(&net_failover_lock); + return failover_dev; + } + } + spin_unlock(&net_failover_lock); + return NULL; +} + +/* Called when slave dev is injecting data into network stack. + * Change the associated network device from...
2018 Apr 18
0
[RFC PATCH net-next v6 2/4] net: Introduce generic bypass module
...upport the 2 netdev model of netvsc. ops will be >> NULL for 3-netdev model. > I see :( > > >> >>> >>> >>> >>>> + bypass_netdev = rcu_dereference(bypass_master->bypass_netdev); >>>> + if (ether_addr_equal(bypass_netdev->perm_addr, mac)) { >>>> + *ops = rcu_dereference(bypass_master->ops); >>> I don't see how rcu_dereference is ok here. >>> 1) I don't see rcu_read_lock taken >>> 2) Looks like bypass_master->ops has the same value across the whole >>> existe...
2018 Apr 10
6
[RFC PATCH net-next v6 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