devargs: fix policy check when adding arguments
Do not fail upon detecting a set bus configuration when adding an rte_devargs. i.e. adding a blacklisted PCI device while the bus is configured in whitelist mode. This failure condition has been introduced when the bus policies were implemented. This implementation however was meant to strictly follow the existing API. This check was not and should not be performed until the current API has been properly deprecated. The same kind of check is already done when parsing EAL options. Fixes: 02823c1db0bc ("devargs: parse bus policies") Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
This commit is contained in:
parent
4d0e2a5da7
commit
b631f3b0f2
@ -170,22 +170,12 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)
|
||||
bus = devargs->bus;
|
||||
if (devargs->type == RTE_DEVTYPE_BLACKLISTED_PCI)
|
||||
devargs->policy = RTE_DEV_BLACKLISTED;
|
||||
if (devargs->policy == RTE_DEV_WHITELISTED) {
|
||||
if (bus->conf.scan_mode == RTE_BUS_SCAN_UNDEFINED) {
|
||||
if (bus->conf.scan_mode == RTE_BUS_SCAN_UNDEFINED) {
|
||||
if (devargs->policy == RTE_DEV_WHITELISTED)
|
||||
bus->conf.scan_mode = RTE_BUS_SCAN_WHITELIST;
|
||||
} else if (bus->conf.scan_mode == RTE_BUS_SCAN_BLACKLIST) {
|
||||
fprintf(stderr, "ERROR: incompatible device policy and bus scan mode\n");
|
||||
goto fail;
|
||||
}
|
||||
} else if (devargs->policy == RTE_DEV_BLACKLISTED) {
|
||||
if (bus->conf.scan_mode == RTE_BUS_SCAN_UNDEFINED) {
|
||||
else if (devargs->policy == RTE_DEV_BLACKLISTED)
|
||||
bus->conf.scan_mode = RTE_BUS_SCAN_BLACKLIST;
|
||||
} else if (bus->conf.scan_mode == RTE_BUS_SCAN_WHITELIST) {
|
||||
fprintf(stderr, "ERROR: incompatible device policy and bus scan mode\n");
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
TAILQ_INSERT_TAIL(&devargs_list, devargs, next);
|
||||
return 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user