
< 	rc = sscanf(buffer, "%x %x %x %x %x %x %x", &slct, &oflw, &chn, &rsc, &anc,
< 		    &erc, &rsid);
---
> 	char *p = buffer;
> 	char *token;
> 	rc = 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &slct) == 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &oflw) == 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &chn) == 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &rsc) == 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &anc) == 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &erc) == 0;
> 	rc += (token = strsep(&p, " ")) && kstrtoul(token, 16, &rsid) == 0;
