env_dpdk: add dpdk_device_* functions
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I89dbf50821a3843b861629c195f2f9e8dfdc59a6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14569 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
This commit is contained in:
parent
89e56a49d3
commit
7a7fd57715
@ -73,6 +73,10 @@ int dpdk_pci_device_disable_interrupt(struct rte_pci_device *rte_dev);
|
|||||||
int dpdk_pci_device_get_interrupt_efd(struct rte_pci_device *rte_dev);
|
int dpdk_pci_device_get_interrupt_efd(struct rte_pci_device *rte_dev);
|
||||||
void dpdk_bus_scan(void);
|
void dpdk_bus_scan(void);
|
||||||
int dpdk_bus_probe(void);
|
int dpdk_bus_probe(void);
|
||||||
|
struct rte_devargs *dpdk_device_get_devargs(struct rte_device *dev);
|
||||||
|
void dpdk_device_set_devargs(struct rte_device *dev, struct rte_devargs *devargs);
|
||||||
|
const char *dpdk_device_get_name(struct rte_device *dev);
|
||||||
|
bool dpdk_device_scan_allowed(struct rte_device *dev);
|
||||||
|
|
||||||
int pci_device_init(struct rte_pci_driver *driver, struct rte_pci_device *device);
|
int pci_device_init(struct rte_pci_driver *driver, struct rte_pci_device *device);
|
||||||
int pci_device_fini(struct rte_pci_device *device);
|
int pci_device_fini(struct rte_pci_device *device);
|
||||||
@ -522,7 +526,7 @@ scan_pci_bus(bool delay_init)
|
|||||||
RTE_DEV_FOREACH(rte_dev, "bus=pci", &it) {
|
RTE_DEV_FOREACH(rte_dev, "bus=pci", &it) {
|
||||||
struct rte_devargs *da;
|
struct rte_devargs *da;
|
||||||
|
|
||||||
da = rte_dev->devargs;
|
da = dpdk_device_get_devargs(rte_dev);
|
||||||
if (!da) {
|
if (!da) {
|
||||||
char devargs_str[128];
|
char devargs_str[128];
|
||||||
|
|
||||||
@ -532,14 +536,14 @@ scan_pci_bus(bool delay_init)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(devargs_str, sizeof(devargs_str), "pci:%s", rte_dev->name);
|
snprintf(devargs_str, sizeof(devargs_str), "pci:%s", dpdk_device_get_name(rte_dev));
|
||||||
if (rte_devargs_parse(da, devargs_str) != 0) {
|
if (rte_devargs_parse(da, devargs_str) != 0) {
|
||||||
free(da);
|
free(da);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
rte_devargs_insert(&da);
|
rte_devargs_insert(&da);
|
||||||
rte_dev->devargs = da;
|
dpdk_device_set_devargs(rte_dev, da);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_allowed_at(da)) {
|
if (get_allowed_at(da)) {
|
||||||
@ -549,8 +553,8 @@ scan_pci_bus(bool delay_init)
|
|||||||
if (da->policy == RTE_DEV_BLOCKED && allowed_at <= now) {
|
if (da->policy == RTE_DEV_BLOCKED && allowed_at <= now) {
|
||||||
da->policy = RTE_DEV_ALLOWED;
|
da->policy = RTE_DEV_ALLOWED;
|
||||||
}
|
}
|
||||||
} else if ((rte_dev->bus->conf.scan_mode == RTE_BUS_SCAN_ALLOWLIST &&
|
} else if ((dpdk_device_scan_allowed(rte_dev) && da->policy == RTE_DEV_ALLOWED) ||
|
||||||
da->policy == RTE_DEV_ALLOWED) || da->policy != RTE_DEV_BLOCKED) {
|
da->policy != RTE_DEV_BLOCKED) {
|
||||||
/* override the policy only if not permanently blocked */
|
/* override the policy only if not permanently blocked */
|
||||||
|
|
||||||
if (delay_init) {
|
if (delay_init) {
|
||||||
@ -1354,3 +1358,27 @@ dpdk_bus_scan(void)
|
|||||||
{
|
{
|
||||||
rte_bus_scan();
|
rte_bus_scan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct rte_devargs *
|
||||||
|
dpdk_device_get_devargs(struct rte_device *dev)
|
||||||
|
{
|
||||||
|
return dev->devargs;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
dpdk_device_set_devargs(struct rte_device *dev, struct rte_devargs *devargs)
|
||||||
|
{
|
||||||
|
dev->devargs = devargs;
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *
|
||||||
|
dpdk_device_get_name(struct rte_device *dev)
|
||||||
|
{
|
||||||
|
return dev->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
dpdk_device_scan_allowed(struct rte_device *dev)
|
||||||
|
{
|
||||||
|
return dev->bus->conf.scan_mode == RTE_BUS_SCAN_ALLOWLIST;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user