On Wed, 21 Jan 2026 19:30:18 +0000
"Jasper Tran O'Leary" <[email protected]> wrote:
> +static int
> +gve_dev_reset(struct rte_eth_dev *dev)
> +{
> + struct gve_priv *priv = dev->data->dev_private;
> + int err;
> +
> + if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
> + PMD_DRV_LOG(ERR,
> + "Device reset on port %u not supported in secondary
> processes.",
> + dev->data->port_id);
> + return -EPERM;
> + }
> +
> + if (dev->data->dev_started) {
> + PMD_DRV_LOG(ERR,
> + "Must stop device on port %u before reset.",
> + dev->data->port_id);
> + return -EBUSY;
> + }
That check is not necessary, because rte_eth_dev_reset always does stop:
int
rte_eth_dev_reset(uint16_t port_id)
{
struct rte_eth_dev *dev;
int ret;
RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
dev = &rte_eth_devices[port_id];
if (dev->dev_ops->dev_reset == NULL)
return -ENOTSUP;
ret = rte_eth_dev_stop(port_id);
if (ret != 0) {
RTE_ETHDEV_LOG_LINE(ERR,
"Failed to stop device (port %u) before reset: %s -
ignore",
port_id, rte_strerror(-ret));
}
ret = eth_err(port_id, dev->dev_ops->dev_reset(dev));
rte_ethdev_trace_reset(port_id, ret);
return ret;
}
And therefore the documentation should be updated as well.