On Thu, 2019-09-19 at 16:00 +0200, Andrew Lunn wrote:
> [External]
>
> > -static int parse_named_u8(struct cmd_context *ctx, const char *name,
> > u8 *val)
> > +static int parse_named_uint(struct cmd_context *ctx, const char *name,
> > + void *val, enum tunable_type_id type_id)
> > {
> > if (ctx->argc < 2)
> > return 0;
> > @@ -5026,7 +5051,16 @@ static int parse_named_u8(struct cmd_context
> > *ctx, const char *name, u8 *val)
> > if (strcmp(*ctx->argp, name))
> > return 0;
> >
> > - *val = get_uint_range(*(ctx->argp + 1), 0, 0xff);
> > + switch (type_id) {
> > + case ETHTOOL_TUNABLE_U8:
> > + *(u8 *)val = get_uint_range(*(ctx->argp + 1), 0, 0xff);
> > + break;
> > + case ETHTOOL_TUNABLE_U16:
> > + *(u16 *)val = get_uint_range(*(ctx->argp + 1), 0, 0xffff);
>
> I personally don't like these casts. Could you refactor this code in
> some other way to avoid them. Make the parse_named_u8()
> parse_named_u16() a bit fatter, and the shared code a bit slimmer?
>
Sure thing.
V2 coming shortly.
> Thanks
> Andrew