Lines Matching full:provider

31 	struct pci_dev *provider;  member
199 rcu_dereference_protected(pgmap->provider->p2pdma, 1); in p2pdma_page_free()
323 p2p_pgmap->provider = pdev; in pci_p2pdma_add_resource()
575 calc_map_type_and_dist(struct pci_dev *provider, struct pci_dev *client, in calc_map_type_and_dist() argument
579 struct pci_dev *a = provider, *b = client, *bb; in calc_map_type_and_dist()
644 pci_warn(client, "ACS redirect is set between the client and provider (%s)\n", in calc_map_type_and_dist()
645 pci_name(provider)); in calc_map_type_and_dist()
653 !host_bridge_whitelist(provider, client, acs_redirects)) { in calc_map_type_and_dist()
655 …pci_warn(client, "cannot be used for peer-to-peer DMA as the client and provider (%s) do not share… in calc_map_type_and_dist()
656 pci_name(provider)); in calc_map_type_and_dist()
661 p2pdma = rcu_dereference(provider->p2pdma); in calc_map_type_and_dist()
671 * a p2pdma provider and the clients in use.
672 * @provider: p2pdma provider to check against the client list
679 * one client that's the same as the provider it will return 0, which is best
682 * "compatible" means the provider and the clients are either all behind
686 int pci_p2pdma_distance_many(struct pci_dev *provider, struct device **clients, in pci_p2pdma_distance_many() argument
707 map = calc_map_type_and_dist(provider, pci_client, &distance, in pci_p2pdma_distance_many()
754 * the same as one of the clients, that provider will be used ahead of any
760 * found provider will also be assigned to the client list.
971 struct pci_dev *provider = to_p2p_pgmap(pgmap)->provider; in pci_p2pdma_map_type() local
976 if (!provider->p2pdma) in pci_p2pdma_map_type()
985 p2pdma = rcu_dereference(provider->p2pdma); in pci_p2pdma_map_type()
993 return calc_map_type_and_dist(provider, client, &dist, true); in pci_p2pdma_map_type()
1047 * expects the caller to use the specific provider.