Message ID | 20190918042148.77553-1-natechancellor@gmail.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 59f08896f058a92f03a0041b397a1a227c5e8529 |
Headers | show |
Series | libnvdimm/nfit_test: Fix acpi_handle redefinition | expand |
On Tue, Sep 17, 2019 at 09:21:49PM -0700, Nathan Chancellor wrote: > After commit 62974fc389b3 ("libnvdimm: Enable unit test infrastructure > compile checks"), clang warns: > > In file included from > ../drivers/nvdimm/../../tools/testing/nvdimm/test/iomap.c:15: > ../drivers/nvdimm/../../tools/testing/nvdimm/test/nfit_test.h:206:15: > warning: redefinition of typedef 'acpi_handle' is a C11 feature > [-Wtypedef-redefinition] > typedef void *acpi_handle; > ^ > ../include/acpi/actypes.h:424:15: note: previous definition is here > typedef void *acpi_handle; /* Actually a ptr to a NS Node */ > ^ > 1 warning generated. > > The include chain: > > iomap.c -> > linux/acpi.h -> > acpi/acpi.h -> > acpi/actypes.h > nfit_test.h > > Avoid this by including linux/acpi.h in nfit_test.h, which allows us to > remove both the typedef and the forward declaration of acpi_object. > > Link: https://github.com/ClangBuiltLinux/linux/issues/660 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> > --- > > I know that every maintainer has their own thing with the number of > includes in each header file; this issue can be solved in a various > number of ways, I went with the smallest diff stat. Please solve it in a > different way if you see fit :) > > tools/testing/nvdimm/test/nfit_test.h | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/tools/testing/nvdimm/test/nfit_test.h b/tools/testing/nvdimm/test/nfit_test.h > index 448d686da8b1..0bf5640f1f07 100644 > --- a/tools/testing/nvdimm/test/nfit_test.h > +++ b/tools/testing/nvdimm/test/nfit_test.h > @@ -4,6 +4,7 @@ > */ > #ifndef __NFIT_TEST_H__ > #define __NFIT_TEST_H__ > +#include <linux/acpi.h> > #include <linux/list.h> > #include <linux/uuid.h> > #include <linux/ioport.h> > @@ -202,9 +203,6 @@ struct nd_intel_lss { > __u32 status; > } __packed; > > -union acpi_object; > -typedef void *acpi_handle; > - > typedef struct nfit_test_resource *(*nfit_test_lookup_fn)(resource_size_t); > typedef union acpi_object *(*nfit_test_evaluate_dsm_fn)(acpi_handle handle, > const guid_t *guid, u64 rev, u64 func, > -- > 2.23.0 >
On Tue, Sep 17, 2019 at 9:23 PM Nathan Chancellor <natechancellor@gmail.com> wrote: > > After commit 62974fc389b3 ("libnvdimm: Enable unit test infrastructure > compile checks"), clang warns: > > In file included from > ../drivers/nvdimm/../../tools/testing/nvdimm/test/iomap.c:15: > ../drivers/nvdimm/../../tools/testing/nvdimm/test/nfit_test.h:206:15: > warning: redefinition of typedef 'acpi_handle' is a C11 feature > [-Wtypedef-redefinition] > typedef void *acpi_handle; > ^ > ../include/acpi/actypes.h:424:15: note: previous definition is here > typedef void *acpi_handle; /* Actually a ptr to a NS Node */ > ^ > 1 warning generated. > > The include chain: > > iomap.c -> > linux/acpi.h -> > acpi/acpi.h -> > acpi/actypes.h > nfit_test.h > > Avoid this by including linux/acpi.h in nfit_test.h, which allows us to > remove both the typedef and the forward declaration of acpi_object. > > Link: https://github.com/ClangBuiltLinux/linux/issues/660 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> > --- > > I know that every maintainer has their own thing with the number of > includes in each header file; this issue can be solved in a various > number of ways, I went with the smallest diff stat. Please solve it in a > different way if you see fit :) > Looks good to me. I'll pick this up for a post v5.4-rc1 push.
diff --git a/tools/testing/nvdimm/test/nfit_test.h b/tools/testing/nvdimm/test/nfit_test.h index 448d686da8b1..0bf5640f1f07 100644 --- a/tools/testing/nvdimm/test/nfit_test.h +++ b/tools/testing/nvdimm/test/nfit_test.h @@ -4,6 +4,7 @@ */ #ifndef __NFIT_TEST_H__ #define __NFIT_TEST_H__ +#include <linux/acpi.h> #include <linux/list.h> #include <linux/uuid.h> #include <linux/ioport.h> @@ -202,9 +203,6 @@ struct nd_intel_lss { __u32 status; } __packed; -union acpi_object; -typedef void *acpi_handle; - typedef struct nfit_test_resource *(*nfit_test_lookup_fn)(resource_size_t); typedef union acpi_object *(*nfit_test_evaluate_dsm_fn)(acpi_handle handle, const guid_t *guid, u64 rev, u64 func,
After commit 62974fc389b3 ("libnvdimm: Enable unit test infrastructure compile checks"), clang warns: In file included from ../drivers/nvdimm/../../tools/testing/nvdimm/test/iomap.c:15: ../drivers/nvdimm/../../tools/testing/nvdimm/test/nfit_test.h:206:15: warning: redefinition of typedef 'acpi_handle' is a C11 feature [-Wtypedef-redefinition] typedef void *acpi_handle; ^ ../include/acpi/actypes.h:424:15: note: previous definition is here typedef void *acpi_handle; /* Actually a ptr to a NS Node */ ^ 1 warning generated. The include chain: iomap.c -> linux/acpi.h -> acpi/acpi.h -> acpi/actypes.h nfit_test.h Avoid this by including linux/acpi.h in nfit_test.h, which allows us to remove both the typedef and the forward declaration of acpi_object. Link: https://github.com/ClangBuiltLinux/linux/issues/660 Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- I know that every maintainer has their own thing with the number of includes in each header file; this issue can be solved in a various number of ways, I went with the smallest diff stat. Please solve it in a different way if you see fit :) tools/testing/nvdimm/test/nfit_test.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)