On 4/26/23 02:24, D. Wythe wrote:
From: "D. Wythe" <alibuda@xxxxxxxxxxxxxxxxx> diff --git a/net/smc/bpf_smc.c b/net/smc/bpf_smc.c new file mode 100644 index 0000000..0c0ec05 --- /dev/null +++ b/net/smc/bpf_smc.c @@ -0,0 +1,201 @@ +// SPDX-License-Identifier: GPL-2.0-only
... cut ...
+ +/* register ops */ +int smc_sock_register_negotiator_ops(struct smc_sock_negotiator_ops *ops) +{ + int ret; + + ret = smc_sock_validate_negotiator_ops(ops); + if (ret) + return ret; + + /* calt key by name hash */ + ops->key = jhash(ops->name, sizeof(ops->name), strlen(ops->name)); + + spin_lock(&smc_sock_negotiator_list_lock); + if (smc_negotiator_ops_get_by_key(ops->key)) { + pr_notice("smc: %s negotiator already registered\n", ops->name); + ret = -EEXIST; + } else { + list_add_tail_rcu(&ops->list, &smc_sock_negotiator_list); + } + spin_unlock(&smc_sock_negotiator_list_lock); + return ret; +} +EXPORT_SYMBOL_GPL(smc_sock_register_negotiator_ops);
This and following functions are not specific to BPF, right? I found you have more BPF specific code in this file in following patches. But, I feel these function should not in this file since they are not BPF specific because file name "bpf_smc.c" hints.