On Wed, Jul 14, 2021 at 04:23:21PM -0400, Vivek Goyal wrote: > +static int __init split_fs_names(char *page, char *names) > { > + int count = 0; > + char *p = page; > > + strcpy(p, root_fs_names); > + while (*p++) { > + if (p[-1] == ',') > + p[-1] = '\0'; > } > + *p = '\0'; > + > + for (p = page; *p; p += strlen(p)+1) > + count++; > > + return count; > } Ummm.... The last part makes no sense - it counts '\0' in the array pointed to be page, until the first double '\0' in there. All of which had been put there by the loop immediately prior to that one... Incidentally, it treats stray ,, in root_fs_names as termination; is that intentional?