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