Lines Matching refs:cb_table
46 const struct rdma_nl_cbs *cb_table; member
84 const struct rdma_nl_cbs *cb_table; in get_cb_table() local
93 cb_table = READ_ONCE(rdma_nl_types[type].cb_table); in get_cb_table()
94 if (!cb_table) { in get_cb_table()
104 cb_table = READ_ONCE(rdma_nl_types[type].cb_table); in get_cb_table()
106 if (!cb_table || (!cb_table[op].dump && !cb_table[op].doit)) in get_cb_table()
108 return cb_table; in get_cb_table()
112 const struct rdma_nl_cbs cb_table[]) in rdma_nl_register() argument
115 WARN_ON(READ_ONCE(rdma_nl_types[index].cb_table))) in rdma_nl_register()
119 smp_store_release(&rdma_nl_types[index].cb_table, cb_table); in rdma_nl_register()
126 rdma_nl_types[index].cb_table = NULL; in rdma_nl_unregister()
158 const struct rdma_nl_cbs *cb_table; in rdma_nl_rcv_msg() local
165 cb_table = get_cb_table(skb, index, op); in rdma_nl_rcv_msg()
166 if (!cb_table) in rdma_nl_rcv_msg()
169 if ((cb_table[op].flags & RDMA_NL_ADMIN_PERM) && in rdma_nl_rcv_msg()
180 if (cb_table[op].doit) in rdma_nl_rcv_msg()
181 err = cb_table[op].doit(skb, nlh, extack); in rdma_nl_rcv_msg()
187 .dump = cb_table[op].dump, in rdma_nl_rcv_msg()
194 if (cb_table[op].doit) in rdma_nl_rcv_msg()
195 err = cb_table[op].doit(skb, nlh, extack); in rdma_nl_rcv_msg()
304 WARN(rdma_nl_types[idx].cb_table, in rdma_nl_exit()