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-unwind-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. > btw while they are moved here the inclusions in vfio_main.c are > not removed in patch8. ? I'm not sure I understand this Jason