static int decoder_populate_targets()

in core/bus.c [456:484]


static int decoder_populate_targets(struct cxl_decoder *cxld,
				    struct cxl_port *port, int *target_map)
{
	int rc = 0, i;

	if (!target_map)
		return 0;

	device_lock(&port->dev);
	if (list_empty(&port->dports)) {
		rc = -EINVAL;
		goto out_unlock;
	}

	for (i = 0; i < cxld->nr_targets; i++) {
		struct cxl_dport *dport = find_dport(port, target_map[i]);

		if (!dport) {
			rc = -ENXIO;
			goto out_unlock;
		}
		cxld->target[i] = dport;
	}

out_unlock:
	device_unlock(&port->dev);

	return rc;
}