On 20.03.20 08:36, Baoquan He wrote: > On 03/19/20 at 02:12pm, David Hildenbrand wrote: >> Let's use a simple array which we can reuse soon. While at it, move the >> string->mmop conversion out of the device hotplug lock. >> >> Reviewed-by: Wei Yang <richard.weiyang@xxxxxxxxx> >> Acked-by: Michal Hocko <mhocko@xxxxxxxx> >> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> >> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> >> Cc: Michal Hocko <mhocko@xxxxxxxxxx> >> Cc: Oscar Salvador <osalvador@xxxxxxx> >> Cc: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> >> Cc: Baoquan He <bhe@xxxxxxxxxx> >> Cc: Wei Yang <richard.weiyang@xxxxxxxxx> >> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> >> --- >> drivers/base/memory.c | 38 +++++++++++++++++++++++--------------- >> 1 file changed, 23 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/base/memory.c b/drivers/base/memory.c >> index e7e77cafef80..8a7f29c0bf97 100644 >> --- a/drivers/base/memory.c >> +++ b/drivers/base/memory.c >> @@ -28,6 +28,24 @@ >> >> #define MEMORY_CLASS_NAME "memory" >> >> +static const char *const online_type_to_str[] = { >> + [MMOP_OFFLINE] = "offline", >> + [MMOP_ONLINE] = "online", >> + [MMOP_ONLINE_KERNEL] = "online_kernel", >> + [MMOP_ONLINE_MOVABLE] = "online_movable", >> +}; >> + >> +static int memhp_online_type_from_str(const char *str) >> +{ >> + int i; > > I would change it as: > > for (int i = 0; i < ARRAY_SIZE(online_type_to_str); i++) { > That's not allowed by the C90 standard (and -std=gnu89). $ gcc main.c -std=gnu89 main.c: In function 'main': main.c:3:2: error: 'for' loop initial declarations are only allowed in C99 or C11 mode 3 | for (int i = 0; i < 8; i++) { | ^~~ One of the reasons why git grep "for (int " will result in very little hits (IOW, only 5 in driver code only). -- Thanks, David / dhildenb