net/mlx5: move Linux-specific functions
[dpdk.git] / drivers / net / failsafe / failsafe_ether.c
index 504c76e..2b748bd 100644 (file)
@@ -126,9 +126,13 @@ fs_eth_dev_conf_apply(struct rte_eth_dev *dev,
        if (dev->data->promiscuous != edev->data->promiscuous) {
                DEBUG("Configuring promiscuous");
                if (dev->data->promiscuous)
-                       rte_eth_promiscuous_enable(PORT_ID(sdev));
+                       ret = rte_eth_promiscuous_enable(PORT_ID(sdev));
                else
-                       rte_eth_promiscuous_disable(PORT_ID(sdev));
+                       ret = rte_eth_promiscuous_disable(PORT_ID(sdev));
+               if (ret != 0) {
+                       ERROR("Failed to apply promiscuous mode");
+                       return ret;
+               }
        } else {
                DEBUG("promiscuous already set");
        }
@@ -136,9 +140,13 @@ fs_eth_dev_conf_apply(struct rte_eth_dev *dev,
        if (dev->data->all_multicast != edev->data->all_multicast) {
                DEBUG("Configuring all_multicast");
                if (dev->data->all_multicast)
-                       rte_eth_allmulticast_enable(PORT_ID(sdev));
+                       ret = rte_eth_allmulticast_enable(PORT_ID(sdev));
                else
-                       rte_eth_allmulticast_disable(PORT_ID(sdev));
+                       ret = rte_eth_allmulticast_disable(PORT_ID(sdev));
+               if (ret != 0) {
+                       ERROR("Failed to apply allmulticast mode");
+                       return ret;
+               }
        } else {
                DEBUG("all_multicast already set");
        }
@@ -615,6 +623,11 @@ failsafe_eth_new_event_callback(uint16_t port_id,
        FOREACH_SUBDEV_STATE(sdev, i, fs_dev, DEV_PARSED) {
                if (sdev->state >= DEV_PROBED)
                        continue;
+               if (dev->device == NULL) {
+                       WARN("Trying to probe malformed device %s.\n",
+                            sdev->devargs.name);
+                       continue;
+               }
                if (strcmp(sdev->devargs.name, dev->device->name) != 0)
                        continue;
                rte_eth_dev_owner_set(port_id, &PRIV(fs_dev)->my_owner);