[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for hardware domain
- To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
- Date: Tue, 9 Nov 2021 09:20:08 +0000
- Accept-language: en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LSaoZOnfQ5M7uQbM3WDYGvwgK1SH1oBRNQXWXT59lKA=; b=XHrysb1ogpcgkPpJ347Vw5GANBa/wsCL3UbtupQKTVdz2L1ubwAz2HprhxMPXJOfWVNl1W9YxKOcCAe8DrSiTwneICUd4rQcujZsyNvq0ZftFh/lhr7gbrDZedoLUZniPRt6y6sNVRpa3bTfkaqb4BhYgKj4vxAGb+cmOKT2AabKt6XkLjY09LrzsmK0oHjsbG8Npcd8+t7k2CdZD6ty7NjeC+jIbpydQScp6vYT666VZ57PDPthl8KMYMq0vUsYSWIWeh2AkfjKwOBABIAMKU2LAou/tl6e3/WWlPdFuT1Q5HlSaljvXWfc/8x6A8SRG3O3NvdLByZgoRQXs5Ku/g==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KeiIDd31q7ActeIQgdnTIcFndmMKCUupY5GNL4B+yM1dMD0x0o9rTPYXvEak/6h1Feo9wWLqEXdbD815OyUW2/3G7se+ZZtyzuBsTYcRbv/Wav3P/CcpTdOJ1bqMM60/0/EFJPrk46egYoSbXbxoKZ+Ly+Gwl0HFtwucSbERKDBu/tbsW52T6OvX3HTGDclMerXAZbyc1do/POZqHf3SGDUCmLa/FKpvSjqUGNQgmVrFSdeI7Wdbs2l0ZHlC9fBnVt9wb6SQe3utpeTvWrQ/WWNQcZJv92sTG1NKggK8qElUs7DPolrjciBaYA9swazFrSLNVwfb8naxzBiPKo+gJQ==
- Cc: "julien@xxxxxxx" <julien@xxxxxxx>, "sstabellini@xxxxxxxxxx" <sstabellini@xxxxxxxxxx>, Oleksandr Tyshchenko <Oleksandr_Tyshchenko@xxxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Artem Mygaiev <Artem_Mygaiev@xxxxxxxx>, "roger.pau@xxxxxxxxxx" <roger.pau@xxxxxxxxxx>, "jbeulich@xxxxxxxx" <jbeulich@xxxxxxxx>, "andrew.cooper3@xxxxxxxxxx" <andrew.cooper3@xxxxxxxxxx>, "george.dunlap@xxxxxxxxxx" <george.dunlap@xxxxxxxxxx>, "paul@xxxxxxx" <paul@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Rahul Singh <rahul.singh@xxxxxxx>, Oleksandr Andrushchenko <Oleksandr_Andrushchenko@xxxxxxxx>
- Delivery-date: Tue, 09 Nov 2021 09:20:36 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Thread-index: AQHX0g8SPRoS2Ac9eEeTcWew1GI8x6v68dqA
- Thread-topic: [PATCH v6 3/7] xen/arm: setup MMIO range trap handlers for hardware domain
On 05.11.21 08:33, Oleksandr Andrushchenko wrote:
> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx>
>
> [snip]
> +int pci_host_iterate_bridges(struct domain *d,
> + int (*cb)(struct domain *d,
> + struct pci_host_bridge *bridge))
> +{
> + struct pci_host_bridge *bridge;
> + int err;
> +
> + list_for_each_entry( bridge, &pci_host_bridges, node )
> + {
> + err = cb(d, bridge);
> + if ( err )
> + return err;
> + }
> + return 0;
> +}
> +
> +unsigned int pci_host_get_num_bridges(void)
> +{
> + struct pci_host_bridge *bridge;
> + unsigned int count = 0;
> +
> + list_for_each_entry( bridge, &pci_host_bridges, node )
> + count++;
> +
> + return count;
> +}
> +
>
This can be even simpler if pci_host_iterate_bridges returns the count:
-int pci_host_iterate_bridges(struct domain *d,
- int (*cb)(struct domain *d,
- struct pci_host_bridge *bridge))
+int pci_host_iterate_bridges_and_count(struct domain *d,
+ int (*cb)(struct domain *d,
+ struct pci_host_bridge
*bridge))
{
struct pci_host_bridge *bridge;
- int err;
+ int err, count = 0;
list_for_each_entry( bridge, &pci_host_bridges, node )
{
err = cb(d, bridge);
if ( err )
return err;
+ count += err;
}
- return 0;
-}
Then pci_host_get_num_bridges goes away and we can count
different entities with the same iterator and a simple callback.
This becomes possible as there is a single user for pci_host_iterate_bridges
now which sets up MMIOs, so the change above seems to be reasonable
I will include this change in v7
Thank you,
Oleksandr
|