On Thu, Jun 27, 2019 at 05:27:32PM +0100, John Garry wrote: SNIP
> > > > > > heya, > > > sry for late reply > > > > > > > > > > > > if tok is NULL in here we crash > > > > > > > > > > > > > As I see, tok could not be NULL. If str contains no delimiters, then > > > > we just > > > > return same as str in tok. > > > > > > > > Can you see tok being NULL? > > > > > > well, if there's no ',' in the str it returns NULL, right? > > > > No, it would return str in tok. ok > > > > > and IIUC this function is still called for standard uncore > > > pmu names > > > > > > > > > > > > > + res = false; > > > > > > + goto out; > > > > > > + } > > > > > > + > > > > > > + for (; tok; name += strlen(tok), tok = strtok_r(NULL, ",", > > > > > > &tmp)) { > > > > > > > > > > why is name shifted in here? > > > > > > > > I want to ensure that we match the tokens in order and also guard > > > > against > > > > possible repeated token matches in 'name'. > > > > > > i might not understand this correctly.. so > > > > > > str is the alias name that can contain ',' now, like: > > > hisi_sccl,ddrc > > > > For example of pmu_nmame=hisi_sccl,ddrc and pmu=hisi_sccl1_ddrc0, we > > match in this sequence: > > > > loop 1. tok=hisi_sccl name=hisi_sccl1_ddrc0 > > loop 2. tok=ddrc name=ddrc0 > > loop 3. tok=NULL -> breakout and return true ok, plz put something like above into comment thanks, jirka