Message ID | 20231009195747.889326-4-stewart.hildebrand@amd.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Kconfig for PCI passthrough on ARM | expand |
Hi, On 09/10/2023 20:57, Stewart Hildebrand wrote: > From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> > > VPCI is disabled on ARM. Make it depend on d->arch.has_vpci to enable the PCI > passthrough support on ARM. > > While here, remove the comment on the preceding line. > > Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> > Signed-off-by: Rahul Singh <rahul.singh@arm.com> > Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com> I think this patch should be folded in patch #2. With that the hypervisor part would be properly plumbed as soon as the flag is introduced. > --- > There are two downstreams [1] [2] that have independently made a version this > change, each with different Signed-off-by's. I simply picked one at random for > the Author: field, and added both Signed-off-by lines. Please let me know if > there are any objections. > > v2->v3: > * use d->arch.has_vpci since plumbing struct arch_domain with a vPCI flag > > v1->v2: > * add is_hardware_domain check. This will need to be removed after the vPCI > series [3] is merged. > > downstream->v1: > * change to IS_ENABLED(CONFIG_HAS_VPCI) instead of hardcoded to true > * remove the comment on the preceding line > > [1] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/-/commit/27be1729ce8128dbe37275ce7946b2fbd2e5a382 > [2] https://github.com/xen-troops/xen/commit/bf12185e6fb2e31db0d8e6ea9ccd8a02abadec17 > [3] https://lists.xenproject.org/archives/html/xen-devel/2023-08/msg02361.html > --- > xen/arch/arm/include/asm/domain.h | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h > index 0a66ed09a617..ebba2c25dceb 100644 > --- a/xen/arch/arm/include/asm/domain.h > +++ b/xen/arch/arm/include/asm/domain.h > @@ -300,8 +300,7 @@ static inline void arch_vcpu_block(struct vcpu *v) {} > > #define arch_vm_assist_valid_mask(d) (1UL << VMASST_TYPE_runstate_update_flag) > > -/* vPCI is not available on Arm */ > -#define has_vpci(d) ({ (void)(d); false; }) > +#define has_vpci(d) ( (d)->arch.has_vpci ) Coding style: I don't believe we add space after ( and before ) in this situation. Cheers,
On 10/20/23 13:29, Julien Grall wrote: > Hi, > > On 09/10/2023 20:57, Stewart Hildebrand wrote: >> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> >> >> VPCI is disabled on ARM. Make it depend on d->arch.has_vpci to enable the PCI >> passthrough support on ARM. >> >> While here, remove the comment on the preceding line. >> >> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> >> Signed-off-by: Rahul Singh <rahul.singh@arm.com> >> Signed-off-by: Stewart Hildebrand <stewart.hildebrand@amd.com> > > I think this patch should be folded in patch #2. With that the > hypervisor part would be properly plumbed as soon as the flag is introduced. Will do. If moving the vpci flag to xen_domctl_createdomain.flags, there is not much arch specific about has_vpci(d), so I think this could also be moved to a common header, like xen/include/xen/domain.h. > >> --- >> There are two downstreams [1] [2] that have independently made a version this >> change, each with different Signed-off-by's. I simply picked one at random for >> the Author: field, and added both Signed-off-by lines. Please let me know if >> there are any objections. >> >> v2->v3: >> * use d->arch.has_vpci since plumbing struct arch_domain with a vPCI flag >> >> v1->v2: >> * add is_hardware_domain check. This will need to be removed after the vPCI >> series [3] is merged. >> >> downstream->v1: >> * change to IS_ENABLED(CONFIG_HAS_VPCI) instead of hardcoded to true >> * remove the comment on the preceding line >> >> [1] https://gitlab.com/xen-project/people/bmarquis/xen-arm-poc/-/commit/27be1729ce8128dbe37275ce7946b2fbd2e5a382 >> [2] https://github.com/xen-troops/xen/commit/bf12185e6fb2e31db0d8e6ea9ccd8a02abadec17 >> [3] https://lists.xenproject.org/archives/html/xen-devel/2023-08/msg02361.html >> --- >> xen/arch/arm/include/asm/domain.h | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h >> index 0a66ed09a617..ebba2c25dceb 100644 >> --- a/xen/arch/arm/include/asm/domain.h >> +++ b/xen/arch/arm/include/asm/domain.h >> @@ -300,8 +300,7 @@ static inline void arch_vcpu_block(struct vcpu *v) {} >> >> #define arch_vm_assist_valid_mask(d) (1UL << VMASST_TYPE_runstate_update_flag) >> >> -/* vPCI is not available on Arm */ >> -#define has_vpci(d) ({ (void)(d); false; }) >> +#define has_vpci(d) ( (d)->arch.has_vpci ) > > Coding style: I don't believe we add space after ( and before ) in this > situation. OK > > Cheers, > > -- > Julien Grall
diff --git a/xen/arch/arm/include/asm/domain.h b/xen/arch/arm/include/asm/domain.h index 0a66ed09a617..ebba2c25dceb 100644 --- a/xen/arch/arm/include/asm/domain.h +++ b/xen/arch/arm/include/asm/domain.h @@ -300,8 +300,7 @@ static inline void arch_vcpu_block(struct vcpu *v) {} #define arch_vm_assist_valid_mask(d) (1UL << VMASST_TYPE_runstate_update_flag) -/* vPCI is not available on Arm */ -#define has_vpci(d) ({ (void)(d); false; }) +#define has_vpci(d) ( (d)->arch.has_vpci ) struct arch_vcpu_io { struct instr_details dabt_instr; /* when the instruction is decoded */