Re: [PATCH v4 1/3] RAS: Introduce AMD Address Translation Library
From: Markus Elfring
Date: Wed Dec 20 2023 - 12:28:48 EST
…
> +++ b/drivers/ras/amd/atl/map.c
> @@ -0,0 +1,667 @@
…
> +static int get_coh_st_fabric_id(struct addr_ctx *ctx)
> +{
…
> + if (df_cfg.rev < DF4p5)
> + ctx->coh_st_fabric_id = FIELD_GET(DF2_COH_ST_FABRIC_ID, reg);
> + else
> + ctx->coh_st_fabric_id = FIELD_GET(DF4p5_COH_ST_FABRIC_ID, reg);
…
> +}
…
Is the following statement variant a bit nicer?
ctx->coh_st_fabric_id = FIELD_GET((df_cfg.rev < DF4p5)
? DF2_COH_ST_FABRIC_ID
: DF4p5_COH_ST_FABRIC_ID,
reg);
> +static bool valid_map(struct addr_ctx *ctx)
> +{
> + if (df_cfg.rev >= DF4)
> + return FIELD_GET(DF_ADDR_RANGE_VAL, ctx->map.ctl);
> + else
> + return FIELD_GET(DF_ADDR_RANGE_VAL, ctx->map.base);
> +}
…
Can the following statement variant be integrated instead?
return FIELD_GET(DF_ADDR_RANGE_VAL, (df_cfg.rev >= DF4) ? ctx->map.ctl : ctx->map.base);
> +int get_address_map(struct addr_ctx *ctx)
> +{
> + int ret = 0;
> +
> + ret = get_address_map_common(ctx);
> + if (ret)
> + goto out;
> +
> + ret = get_global_map_data(ctx);
> + if (ret)
> + goto out;
> +
> + dump_address_map(&ctx->map);
> +
> +out:
> + return ret;
> +}
…
Would you like to use a function implementation like the following instead?
int get_address_map(struct addr_ctx *ctx)
{
int ret = get_address_map_common(ctx);
if (ret)
return ret;
ret = get_global_map_data(ctx);
if (ret)
return ret;
dump_address_map(&ctx->map);
return 0;
}
See also:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst?h=v6.7-rc6#n532
Regards,
Markus