On 03/20/20 at 10:50am, David Hildenbrand wrote: > 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++) { > | ^~~ Good to know, thanks. > > 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