return strcmp(dev->name, name);
}
+int __rte_experimental
+rte_dev_is_probed(const struct rte_device *dev)
+{
+ /* The field driver should be set only when the probe is successful. */
+ return dev->driver != NULL;
+}
+
int rte_eal_dev_attach(const char *name, const char *devargs)
{
struct rte_bus *bus;
goto err_devarg;
}
- if (dev->driver != NULL) {
+ if (rte_dev_is_probed(dev)) {
RTE_LOG(ERR, EAL, "Device is already plugged\n");
return -EEXIST;
}
{
int ret;
- if (dev->driver == NULL) {
- RTE_LOG(ERR, EAL, "Device is already unplugged\n");
- return -ENOENT;
- }
-
if (dev->bus->unplug == NULL) {
RTE_LOG(ERR, EAL, "Function unplug not supported by bus (%s)\n",
dev->bus->name);
char *devargs;
int ret;
+ if (!rte_dev_is_probed(dev)) {
+ RTE_LOG(ERR, EAL, "Device is not probed\n");
+ return -ENOENT;
+ }
+
ret = build_devargs(dev->devargs->bus->name, dev->name, "", &devargs);
if (ret != 0)
return ret;