Lines Matching refs:ndev

329 linuxkpi_netif_napi_add(struct net_device *ndev, struct napi_struct *napi,  in linuxkpi_netif_napi_add()  argument
333 napi->dev = ndev; in linuxkpi_netif_napi_add()
342 NAPI_LOCK(ndev); in linuxkpi_netif_napi_add()
343 TAILQ_INSERT_TAIL(&ndev->napi_head, napi, entry); in linuxkpi_netif_napi_add()
344 NAPI_UNLOCK(ndev); in linuxkpi_netif_napi_add()
353 struct net_device *ndev; in lkpi_netif_napi_del_locked() local
355 ndev = napi->dev; in lkpi_netif_napi_del_locked()
356 NAPI_LOCK_ASSERT(ndev); in lkpi_netif_napi_del_locked()
359 TAILQ_REMOVE(&ndev->napi_head, napi, entry); in lkpi_netif_napi_del_locked()
360 while (taskqueue_cancel(ndev->napi_tq, &napi->napi_task, NULL) != 0) in lkpi_netif_napi_del_locked()
361 taskqueue_drain(ndev->napi_tq, &napi->napi_task); in lkpi_netif_napi_del_locked()
367 struct net_device *ndev; in linuxkpi_netif_napi_del() local
369 ndev = napi->dev; in linuxkpi_netif_napi_del()
370 NAPI_LOCK(ndev); in linuxkpi_netif_napi_del()
372 NAPI_UNLOCK(ndev); in linuxkpi_netif_napi_del()
378 linuxkpi_init_dummy_netdev(struct net_device *ndev) in linuxkpi_init_dummy_netdev() argument
381 memset(ndev, 0, sizeof(*ndev)); in linuxkpi_init_dummy_netdev()
383 ndev->reg_state = NETREG_DUMMY; in linuxkpi_init_dummy_netdev()
384 NAPI_LOCK_INIT(ndev); in linuxkpi_init_dummy_netdev()
385 TAILQ_INIT(&ndev->napi_head); in linuxkpi_init_dummy_netdev()
388 ndev->napi_tq = taskqueue_create("tq_ndev_napi", M_WAITOK, in linuxkpi_init_dummy_netdev()
389 taskqueue_thread_enqueue, &ndev->napi_tq); in linuxkpi_init_dummy_netdev()
391 (void) taskqueue_start_threads(&ndev->napi_tq, 1, PWAIT, in linuxkpi_init_dummy_netdev()
399 struct net_device *ndev; in linuxkpi_alloc_netdev() local
401 ndev = malloc(sizeof(*ndev) + len, M_NETDEV, M_NOWAIT); in linuxkpi_alloc_netdev()
402 if (ndev == NULL) in linuxkpi_alloc_netdev()
403 return (ndev); in linuxkpi_alloc_netdev()
406 linuxkpi_init_dummy_netdev(ndev); in linuxkpi_alloc_netdev()
408 strlcpy(ndev->name, name, sizeof(*ndev->name)); in linuxkpi_alloc_netdev()
413 setup_func(ndev); in linuxkpi_alloc_netdev()
415 return (ndev); in linuxkpi_alloc_netdev()
419 linuxkpi_free_netdev(struct net_device *ndev) in linuxkpi_free_netdev() argument
423 NAPI_LOCK(ndev); in linuxkpi_free_netdev()
424 TAILQ_FOREACH_SAFE(napi, &ndev->napi_head, entry, temp) { in linuxkpi_free_netdev()
427 NAPI_UNLOCK(ndev); in linuxkpi_free_netdev()
429 taskqueue_free(ndev->napi_tq); in linuxkpi_free_netdev()
430 ndev->napi_tq = NULL; in linuxkpi_free_netdev()
431 NAPI_LOCK_DESTROY(ndev); in linuxkpi_free_netdev()
435 free(ndev, M_NETDEV); in linuxkpi_free_netdev()