Re: [PATCH] x86: LLVMLinux: Fix "incomplete type const struct x86cpu_device_id"

From: Greg KH
Date: Sat Mar 22 2014 - 12:26:52 EST


On Fri, Mar 21, 2014 at 11:40:18PM -0700, behanw@xxxxxxxxxxxxxxxxxx wrote:
> From: Behan Webster <behanw@xxxxxxxxxxxxxxxxxx>
>
> Similar to the fix in 40413dcb7b273bda681dca38e6ff0bbb3728ef11
>
> MODULE_DEVICE_TABLE(x86cpu, ...) expects the struct to be called struct
> x86cpu_device_id, and not struct x86_cpu_id which is what is used in the rest
> of the kernel code. Although gcc seems to ignore this error, clang fails
> without this define to fix the name.
>
> Code from drivers/thermal/x86_pkg_temp_thermal.c
> static const struct x86_cpu_id __initconst pkg_temp_thermal_ids[] = { ... };
> MODULE_DEVICE_TABLE(x86cpu, pkg_temp_thermal_ids);
>
> Error from clang:
> drivers/thermal/x86_pkg_temp_thermal.c:577:1: error: variable has
> incomplete type 'const struct x86cpu_device_id'
> MODULE_DEVICE_TABLE(x86cpu, pkg_temp_thermal_ids);
> ^
> include/linux/module.h:145:3: note: expanded from macro
> 'MODULE_DEVICE_TABLE'
> MODULE_GENERIC_TABLE(type##_device, name)
> ^
> include/linux/module.h:87:32: note: expanded from macro
> 'MODULE_GENERIC_TABLE'
> extern const struct gtype##_id __mod_##gtype##_table \
> ^
> <scratch space>:143:1: note: expanded from here
> __mod_x86cpu_device_table
> ^
> drivers/thermal/x86_pkg_temp_thermal.c:577:1: note: forward declaration of
> 'struct x86cpu_device_id'
> include/linux/module.h:145:3: note: expanded from macro
> 'MODULE_DEVICE_TABLE'
> MODULE_GENERIC_TABLE(type##_device, name)
> ^
> include/linux/module.h:87:21: note: expanded from macro
> 'MODULE_GENERIC_TABLE'
> extern const struct gtype##_id __mod_##gtype##_table \
> ^
> <scratch space>:141:1: note: expanded from here
> x86cpu_device_id
> ^
> 1 error generated.
>
> Signed-off-by: Behan Webster <behanw@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Jan-Simon Möller <dl9pf@xxxxxx>

Acked-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/