> -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?
Thanks
Andrew