Some of the drivers may use the macro at runtime flow, like

  struct property_entry p[10];
...
  p[index++] = PROPERTY_ENTRY_U8("u8 property", u8_data);

In that case and absence of the data type compiler fails the build:

drivers/char/ipmi/ipmi_dmi.c:79:29: error: Expected ; at end of statement
drivers/char/ipmi/ipmi_dmi.c:79:29: error: got {

Cc: Corey Minyard <[email protected]>
Signed-off-by: Andy Shevchenko <[email protected]>
---
 include/linux/property.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/include/linux/property.h b/include/linux/property.h
index 7eefaf2f22b9..f144be4f99e0 100644
--- a/include/linux/property.h
+++ b/include/linux/property.h
@@ -204,7 +204,7 @@ struct property_entry {
  */
 
 #define PROPERTY_ENTRY_INTEGER_ARRAY(_name_, _type_, _Type_, _val_)    \
-{                                                                      \
+(struct property_entry) {                                              \
        .name = _name_,                                                 \
        .length = ARRAY_SIZE(_val_) * sizeof(_type_),                   \
        .is_array = true,                                               \
@@ -222,7 +222,7 @@ struct property_entry {
        PROPERTY_ENTRY_INTEGER_ARRAY(_name_, u64, U64, _val_)
 
 #define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_)             \
-{                                                              \
+(struct property_entry) {                                      \
        .name = _name_,                                         \
        .length = ARRAY_SIZE(_val_) * sizeof(const char *),     \
        .is_array = true,                                       \
@@ -231,7 +231,7 @@ struct property_entry {
 }
 
 #define PROPERTY_ENTRY_INTEGER(_name_, _type_, _Type_, _val_)  \
-{                                                              \
+(struct property_entry) {                                      \
        .name = _name_,                                         \
        .length = sizeof(_type_),                               \
        .type = DEV_PROP_##_Type_,                              \
@@ -248,7 +248,7 @@ struct property_entry {
        PROPERTY_ENTRY_INTEGER(_name_, u64, U64, _val_)
 
 #define PROPERTY_ENTRY_STRING(_name_, _val_)           \
-{                                                      \
+(struct property_entry) {                              \
        .name = _name_,                                 \
        .length = sizeof(_val_),                        \
        .type = DEV_PROP_STRING,                        \
@@ -256,7 +256,7 @@ struct property_entry {
 }
 
 #define PROPERTY_ENTRY_BOOL(_name_)            \
-{                                              \
+(struct property_entry) {                      \
        .name = _name_,                         \
 }
 
-- 
2.15.1

Reply via email to