Lines Matching refs:ndev
330 linuxkpi_netif_napi_add(struct net_device *ndev, struct napi_struct *napi, in linuxkpi_netif_napi_add() argument
334 napi->dev = ndev; in linuxkpi_netif_napi_add()
343 NAPI_LOCK(ndev); in linuxkpi_netif_napi_add()
344 TAILQ_INSERT_TAIL(&ndev->napi_head, napi, entry); in linuxkpi_netif_napi_add()
345 NAPI_UNLOCK(ndev); in linuxkpi_netif_napi_add()
354 struct net_device *ndev; in lkpi_netif_napi_del_locked() local
356 ndev = napi->dev; in lkpi_netif_napi_del_locked()
357 NAPI_LOCK_ASSERT(ndev); in lkpi_netif_napi_del_locked()
360 TAILQ_REMOVE(&ndev->napi_head, napi, entry); in lkpi_netif_napi_del_locked()
361 while (taskqueue_cancel(ndev->napi_tq, &napi->napi_task, NULL) != 0) in lkpi_netif_napi_del_locked()
362 taskqueue_drain(ndev->napi_tq, &napi->napi_task); in lkpi_netif_napi_del_locked()
368 struct net_device *ndev; in linuxkpi_netif_napi_del() local
370 ndev = napi->dev; in linuxkpi_netif_napi_del()
371 NAPI_LOCK(ndev); in linuxkpi_netif_napi_del()
373 NAPI_UNLOCK(ndev); in linuxkpi_netif_napi_del()
379 linuxkpi_init_dummy_netdev(struct net_device *ndev) in linuxkpi_init_dummy_netdev() argument
382 memset(ndev, 0, sizeof(*ndev)); in linuxkpi_init_dummy_netdev()
384 ndev->reg_state = NETREG_DUMMY; in linuxkpi_init_dummy_netdev()
385 NAPI_LOCK_INIT(ndev); in linuxkpi_init_dummy_netdev()
386 TAILQ_INIT(&ndev->napi_head); in linuxkpi_init_dummy_netdev()
389 ndev->napi_tq = taskqueue_create("tq_ndev_napi", M_WAITOK, in linuxkpi_init_dummy_netdev()
390 taskqueue_thread_enqueue, &ndev->napi_tq); in linuxkpi_init_dummy_netdev()
392 (void) taskqueue_start_threads(&ndev->napi_tq, 1, PWAIT, in linuxkpi_init_dummy_netdev()
400 struct net_device *ndev; in linuxkpi_alloc_netdev() local
402 ndev = malloc(sizeof(*ndev) + len, M_NETDEV, M_NOWAIT); in linuxkpi_alloc_netdev()
403 if (ndev == NULL) in linuxkpi_alloc_netdev()
404 return (ndev); in linuxkpi_alloc_netdev()
407 linuxkpi_init_dummy_netdev(ndev); in linuxkpi_alloc_netdev()
409 strlcpy(ndev->name, name, sizeof(*ndev->name)); in linuxkpi_alloc_netdev()
414 setup_func(ndev); in linuxkpi_alloc_netdev()
416 return (ndev); in linuxkpi_alloc_netdev()
420 linuxkpi_free_netdev(struct net_device *ndev) in linuxkpi_free_netdev() argument
424 NAPI_LOCK(ndev); in linuxkpi_free_netdev()
425 TAILQ_FOREACH_SAFE(napi, &ndev->napi_head, entry, temp) { in linuxkpi_free_netdev()
428 NAPI_UNLOCK(ndev); in linuxkpi_free_netdev()
430 taskqueue_free(ndev->napi_tq); in linuxkpi_free_netdev()
431 ndev->napi_tq = NULL; in linuxkpi_free_netdev()
432 NAPI_LOCK_DESTROY(ndev); in linuxkpi_free_netdev()
436 free(ndev, M_NETDEV); in linuxkpi_free_netdev()