Re: Ping? Re: [PATCH rc] kvm: Prevent compiling virt/kvm/vfio.c unless VFIO is selected

Sean Christopherson
2023-11-29T18:31:05Z

On Wed, Nov 29, 2023, Jason Gunthorpe wrote:
> On Tue, Nov 28, 2023 at 06:21:42PM -0800, Sean Christopherson wrote:
> > diff --git a/include/linux/vfio.h b/include/linux/vfio.h
> > index 454e9295970c..a65b2513f8cd 100644
> > --- a/include/linux/vfio.h
> > +++ b/include/linux/vfio.h
> > @@ -289,16 +289,12 @@ void vfio_combine_iova_ranges(struct rb_root_cached *root, u32 cur_nodes,
> > /*
> > * External user API
> > */
> > -#if IS_ENABLED(CONFIG_VFIO_GROUP)
> > struct iommu_group *vfio_file_iommu_group(struct file *file);
> > +
> > +#if IS_ENABLED(CONFIG_VFIO_GROUP)
> > bool vfio_file_is_group(struct file *file);
> > bool vfio_file_has_dev(struct file *file, struct vfio_device *device);
> > #else
> > -static inline struct iommu_group *vfio_file_iommu_group(struct file *file)
> > -{
> > - return NULL;
> > -}
> > -
> > static inline bool vfio_file_is_group(struct file *file)
> > {
> > return false;
> >
>
> So you symbol get on a symbol that can never be defined? Still says to
> me the kconfig needs fixing :|

Yeah, I completely agree, and if KVM didn't already rely on this horrific
behavior and there wasn't a more complete overhaul in-flight, I wouldn't suggest
this.

I'll send the KVM Kconfig/Makefile cleanups from my "Hide KVM internals from others"
series separately (which is still the bulk of the series) so as to prioritize
getting the cleanups landed.