Lines Matching full:ns
18 nsim_do_psp(struct sk_buff *skb, struct netdevsim *ns, in nsim_do_psp() argument
41 if (*ptr != ns) { in nsim_do_psp()
53 atomic64_inc(&ns->psp.tx_packets); in nsim_do_psp()
54 atomic64_add(psp_len, &ns->psp.tx_bytes); in nsim_do_psp()
135 struct netdevsim *ns = psd->drv_priv; in nsim_rx_spi_alloc() local
139 if ((ns->psp.spi & PSP_SPI_KEY_ID) == PSP_SPI_KEY_ID) { in nsim_rx_spi_alloc()
144 assoc->spi = cpu_to_be32(++ns->psp.spi); in nsim_rx_spi_alloc()
147 assoc->key[i] = ns->psp.spi + i; in nsim_rx_spi_alloc()
155 struct netdevsim *ns = psd->drv_priv; in nsim_assoc_add() local
160 ns->psp.assoc_cnt++; in nsim_assoc_add()
167 struct netdevsim *ns = psd->drv_priv; in nsim_key_rotate() local
172 if (ns->psp.spi & PSP_SPI_KEY_PHASE) in nsim_key_rotate()
173 ns->psp.spi = 0; in nsim_key_rotate()
175 ns->psp.spi = PSP_SPI_KEY_PHASE; in nsim_key_rotate()
182 struct netdevsim *ns = psd->drv_priv; in nsim_assoc_del() local
186 ns->psp.assoc_cnt--; in nsim_assoc_del()
191 struct netdevsim *ns = psd->drv_priv; in nsim_get_stats() local
198 stats->rx_bytes = atomic64_read(&ns->psp.rx_bytes); in nsim_get_stats()
199 stats->rx_packets = atomic64_read(&ns->psp.rx_packets); in nsim_get_stats()
200 stats->tx_bytes = atomic64_read(&ns->psp.tx_bytes); in nsim_get_stats()
201 stats->tx_packets = atomic64_read(&ns->psp.tx_packets); in nsim_get_stats()
221 static void __nsim_psp_uninit(struct netdevsim *ns, bool teardown) in __nsim_psp_uninit() argument
225 psd = rcu_dereference_protected(ns->psp.dev, in __nsim_psp_uninit()
227 lockdep_is_held(&ns->psp.rereg_lock)); in __nsim_psp_uninit()
229 rcu_assign_pointer(ns->psp.dev, NULL); in __nsim_psp_uninit()
233 WARN_ON(ns->psp.assoc_cnt); in __nsim_psp_uninit()
236 void nsim_psp_uninit(struct netdevsim *ns) in nsim_psp_uninit() argument
238 debugfs_remove(ns->psp.rereg); in nsim_psp_uninit()
239 mutex_destroy(&ns->psp.rereg_lock); in nsim_psp_uninit()
240 __nsim_psp_uninit(ns, true); in nsim_psp_uninit()
247 struct netdevsim *ns = file->private_data; in nsim_psp_rereg_write() local
251 mutex_lock(&ns->psp.rereg_lock); in nsim_psp_rereg_write()
252 __nsim_psp_uninit(ns, false); in nsim_psp_rereg_write()
254 psd = psp_dev_create(ns->netdev, &nsim_psp_ops, &nsim_psp_caps, ns); in nsim_psp_rereg_write()
260 rcu_assign_pointer(ns->psp.dev, psd); in nsim_psp_rereg_write()
263 mutex_unlock(&ns->psp.rereg_lock); in nsim_psp_rereg_write()
274 int nsim_psp_init(struct netdevsim *ns) in nsim_psp_init() argument
276 struct dentry *ddir = ns->nsim_dev_port->ddir; in nsim_psp_init()
279 psd = psp_dev_create(ns->netdev, &nsim_psp_ops, &nsim_psp_caps, ns); in nsim_psp_init()
283 rcu_assign_pointer(ns->psp.dev, psd); in nsim_psp_init()
285 mutex_init(&ns->psp.rereg_lock); in nsim_psp_init()
286 ns->psp.rereg = debugfs_create_file("psp_rereg", 0200, ddir, ns, in nsim_psp_init()