Message ID | 1395470418-16015-1-git-send-email-behanw@converseincode.com |
---|---|
State | Accepted |
Commit | c4586256f0c440bc2bdb29d2cbb915f0ca785d26 |
Headers | show |
On Fri, Mar 21, 2014 at 11:40:18PM -0700, behanw@converseincode.com wrote: > From: Behan Webster <behanw@converseincode.com> > > 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@converseincode.com> > Signed-off-by: Jan-Simon Möller <dl9pf@gmx.de> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 45e9214..dbb5cf0 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -548,6 +548,11 @@ struct amba_id { * See documentation of "x86_match_cpu" for details. */ +/* + * MODULE_DEVICE_TABLE expects this struct to be called x86cpu_device_id. + * Although gcc seems to ignore this error, clang fails without this define. + */ +#define x86cpu_device_id x86_cpu_id struct x86_cpu_id { __u16 vendor; __u16 family;