From: Fuzzey, Martin <martin.fuzzey@flowbird.group> Sent: Wednesday, March 18, 2020 4:36 PM > On Wed, 18 Mar 2020 at 07:26, Andy Duan <fugang.duan@xxxxxxx> wrote: > > > > From: Martin Fuzzey <martin.fuzzey@flowbird.group> Sent: Wednesday, > > March 18, 2020 12:50 AM > > > +static int fec_enet_of_parse_stop_mode(struct fec_enet_private *fep, > > > + struct device_node *np) { > > > + static const char prop[] = "fsl,stop-mode"; > > > + struct of_phandle_args args; > > > + int ret; > > > + > > > + ret = of_parse_phandle_with_fixed_args(np, prop, 2, 0, > > > + &args); > > To save memory: > > > > ret = of_parse_phandle_with_fixed_args(np, > > "fsl,stop-mode", 2, 0, &args); > > > > Why would this save memory? > prop is defined static const char[] (and not char *) so there will no be extra > pointers. > > I haven't checked the generated assembler but this should generate the same > code as a string litteral I think. > > It is also reused later in the function in a debug (which is the reason I did it > this way to ensure the property name is unique and consistent. static variable cost memory and never is not freed if the module is built in. the later debug message cannot depend on the variable. > > Regards, > > Martin > > --