Author: mmel
Date: Tue Mar 19 14:32:54 2019
New Revision: 345296
URL: https://svnweb.freebsd.org/changeset/base/345296

Log:
  Use named field's initializer when constructing <foo>_platform structure.
  In current code, the delay argument in FDT_PLATFORM_DEF(2) improperly
  initialize refs field from kobj_class structure instead of delay_count
  field.
  This causes not working DELAY() function (due to never initialized
  delay_count) in earlier boot stages, until the first timer was attached.
  
  MFC after:    2 weeks

Modified:
  head/sys/arm/include/platformvar.h

Modified: head/sys/arm/include/platformvar.h
==============================================================================
--- head/sys/arm/include/platformvar.h  Tue Mar 19 14:30:54 2019        
(r345295)
+++ head/sys/arm/include/platformvar.h  Tue Mar 19 14:32:54 2019        
(r345296)
@@ -90,22 +90,22 @@ typedef struct fdt_platform_class fdt_platform_def_t;
 
 extern platform_method_t fdt_platform_methods[];
 
-#define FDT_PLATFORM_DEF2(NAME, VAR_NAME, NAME_STR, size, compatible,  \
-    delay)                                                             \
-CTASSERT(delay > 0);                                                   \
+#define FDT_PLATFORM_DEF2(NAME, VAR_NAME, NAME_STR, _size, _compatible,        
\
+    _delay)                                                            \
+CTASSERT(_delay > 0);                                                  \
 static fdt_platform_def_t VAR_NAME ## _fdt_platform = {                        
\
        .name = NAME_STR,                                               \
        .methods = fdt_platform_methods,                                \
-       .fdt_compatible = compatible,                                   \
+       .fdt_compatible = _compatible,                                  \
 };                                                                     \
 static kobj_class_t VAR_NAME ## _baseclasses[] =                       \
        { (kobj_class_t)&VAR_NAME ## _fdt_platform, NULL };             \
 static platform_def_t VAR_NAME ## _platform = {                                
\
-       NAME_STR,                                                       \
-       NAME ## _methods,                                               \
-       size,                                                           \
-       VAR_NAME ## _baseclasses,                                       \
-       delay,                                                          \
+       .name = NAME_STR,                                               \
+       .methods = NAME ## _methods,                                    \
+       .size = _size,                                                  \
+       .baseclasses = VAR_NAME ## _baseclasses,                        \
+       .delay_count = _delay,                                          \
 };                                                                     \
 DATA_SET(platform_set, VAR_NAME ## _platform)
 
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to