On Mon, Jan 13, 2025 at 11:00:12PM +0800, Zijun Hu wrote: > On 2025/1/11 04:41, Rob Herring wrote: > >> From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> > >> > >> __of_add_property_sysfs() hard codes string "security-" length as 9, but > >> that is not obvious for readers. > >> > >> Improve its readability by using strlen(). > > Does the compiler optimize the strlen call away? Maybe, maybe not. If > > not, that's N calls to strlen() where N is the number of properties in > > your DT. That's in the 1000s easily. > > > > Do you really want to go test enough compiler versions we support to > > feel confident this is optimized away. I don't. > > i understand your concern about performance. > > what about below solution ? See 72921427d46b ("string.h: Add str_has_prefix() helper function"). Though we already had strstarts(), but that lacks __always_inline which seems is important for eliminating the strlen(). Also, since that commit, clang has become more common and need to make sure the same optimization happens on it. > > int __of_add_property_sysfs(struct device_node *np, struct property *pp) > { > +#define SECURITY_PREFIX "security-" > int rc; > > /* Important: Don't leak passwords */ > - bool secure = strncmp(pp->name, "security-", 9) == 0; > + bool secure = strncmp(pp->name, SECURITY_PREFIX, > sizeof(SECURITY_PREFIX) - 1) == 0; > > if (!IS_ENABLED(CONFIG_SYSFS)) > return 0; > > >