On Wed, 31 Aug 2022 12:36:02 -0300 Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > On Wed, Aug 31, 2022 at 08:42:17AM +0000, Tian, Kevin wrote: > > > > diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h > > > index 503bea6c843d56..093784f1dea7a9 100644 > > > --- a/drivers/vfio/vfio.h > > > +++ b/drivers/vfio/vfio.h > > > @@ -3,6 +3,14 @@ > > > * Copyright (C) 2012 Red Hat, Inc. All rights reserved. > > > * Author: Alex Williamson <alex.williamson@xxxxxxxxxx> > > > */ > > > +#ifndef __VFIO_VFIO_H__ > > > +#define __VFIO_VFIO_H__ > > > + > > > +#include <linux/device.h> > > > +#include <linux/cdev.h> > > > +#include <linux/module.h> > > > > Curious what is the criteria for which header inclusions should be > > placed here. If it is for everything required by the definitions in > > this file then the list is not complete, e.g. <linux/iommu.h> is > > obviously missing. > > It isn't missing: > > $ clang-14 -Wp,-MMD,drivers/vfio/.vfio_main.o.d -nostdinc -I../arch/x86/include -I./arch/x86/include/generated -I../include -I./include -I../arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I../include/uapi -I./include/generated/uapi -include ../include/linux/compiler-version.h -include ../include/linux/kconfig.h -include ../include/linux/compiler_types.h -D__KERNEL__ -Qunused-arguments -fmacro-prefix-map=../= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu11 --target=x86_64-linux-gnu -fintegrated-as -Werror=unknown-warning-option -Werror=ignored-optimization-argument -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mstack-alignment=8 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-u nwind-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-address-of-packed-member -O2 -Wframe-larger-than=2048 -fno-stack-protector -Wimplicit-fallthrough -Wno-gnu -Wno-unused-but-set-variable -Wno-unused-const-variable -fomit-frame-pointer -fno-stack-clash-protection -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wcast-function-type -fno-strict-overflow -fno-stack-check -Werror=date-time -Werror=incompatible-pointer-types -Wno-initializer-overrides -Wno-format -Wno-sign-compare -Wno-pointer-to-enum-cast -Wno-tautological-constant-out-of-range-compare -Wno-unaligned-access -I ../drivers/vfio -I ./drivers/vfio -DMODULE -DKBUILD_BASENAME='"vfio_main"' -DKBUILD_MODNAME='"vfio"' -D__KBUILD_MODNAME=kmod_vfio -c -o /tmp/jnk.o ../drivers/vfio/vfio.h > [no error] > > The criteria I like to use is if the header is able to compile > stand-alone. Is this stream of consciousness or is there some tooling for this? ;) > > btw while they are moved here the inclusions in vfio_main.c are > > not removed in patch8. > > ? I'm not sure I understand this I think Kevin is asking why these includes were not also removed from vfio_main.c when adding them to vfio.h. Thanks, Alex