smc_stats
struct smc_stats __percpu *smc_stats;
struct smc_stats;
this_cpu_inc(net->smc.smc_stats->srv_hshake_err_cnt);
this_cpu_inc(net->smc.smc_stats->clnt_hshake_err_cnt);
this_cpu_inc(net->smc.smc_stats->clnt_hshake_err_cnt);
this_cpu_inc(net->smc.smc_stats->clnt_hshake_err_cnt);
struct smc_stats *stats, int tech)
net->smc.smc_stats = alloc_percpu(struct smc_stats);
if (!net->smc.smc_stats)
struct smc_stats *stats;
src = (u64 *)per_cpu_ptr(net->smc.smc_stats, cpu);
if (net->smc.smc_stats)
free_percpu(net->smc.smc_stats);
struct smc_stats *stats, int tech,
struct smc_stats *stats, int tech,
struct smc_stats __percpu *_smc_stats = _net->smc.smc_stats; \
struct smc_stats __percpu *_smc_stats = _net->smc.smc_stats; \
struct smc_stats __percpu *_smc_stats = _net->smc.smc_stats; \
struct smc_stats __percpu *_smc_stats = net->smc.smc_stats; \
struct smc_stats __percpu *smc_stats = net->smc.smc_stats; \
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].type); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].type); \
struct smc_stats __percpu *smc_stats = (net)->smc.smc_stats; \
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].clnt_v2_succ_cnt); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].clnt_v2_succ_cnt); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].clnt_v1_succ_cnt); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].clnt_v1_succ_cnt); \
typeof(net->smc.smc_stats) smc_stats = (net)->smc.smc_stats; \
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].srv_v2_succ_cnt); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].srv_v2_succ_cnt); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_D].srv_v1_succ_cnt); \
this_cpu_inc(smc_stats->smc[SMC_TYPE_R].srv_v1_succ_cnt); \