Lines Matching refs:ndev
335 linuxkpi_netif_napi_add(struct net_device *ndev, struct napi_struct *napi, in linuxkpi_netif_napi_add() argument
339 napi->dev = ndev; in linuxkpi_netif_napi_add()
348 NAPI_LOCK(ndev); in linuxkpi_netif_napi_add()
349 TAILQ_INSERT_TAIL(&ndev->napi_head, napi, entry); in linuxkpi_netif_napi_add()
350 NAPI_UNLOCK(ndev); in linuxkpi_netif_napi_add()
359 struct net_device *ndev; in lkpi_netif_napi_del_locked() local
361 ndev = napi->dev; in lkpi_netif_napi_del_locked()
362 NAPI_LOCK_ASSERT(ndev); in lkpi_netif_napi_del_locked()
365 TAILQ_REMOVE(&ndev->napi_head, napi, entry); in lkpi_netif_napi_del_locked()
366 while (taskqueue_cancel(ndev->napi_tq, &napi->napi_task, NULL) != 0) in lkpi_netif_napi_del_locked()
367 taskqueue_drain(ndev->napi_tq, &napi->napi_task); in lkpi_netif_napi_del_locked()
373 struct net_device *ndev; in linuxkpi_netif_napi_del() local
375 ndev = napi->dev; in linuxkpi_netif_napi_del()
376 NAPI_LOCK(ndev); in linuxkpi_netif_napi_del()
378 NAPI_UNLOCK(ndev); in linuxkpi_netif_napi_del()
384 linuxkpi_init_dummy_netdev(struct net_device *ndev) in linuxkpi_init_dummy_netdev() argument
387 memset(ndev, 0, sizeof(*ndev)); in linuxkpi_init_dummy_netdev()
389 ndev->reg_state = NETREG_DUMMY; in linuxkpi_init_dummy_netdev()
390 NAPI_LOCK_INIT(ndev); in linuxkpi_init_dummy_netdev()
391 TAILQ_INIT(&ndev->napi_head); in linuxkpi_init_dummy_netdev()
394 ndev->napi_tq = taskqueue_create("tq_ndev_napi", M_WAITOK, in linuxkpi_init_dummy_netdev()
395 taskqueue_thread_enqueue, &ndev->napi_tq); in linuxkpi_init_dummy_netdev()
397 (void) taskqueue_start_threads(&ndev->napi_tq, 1, PWAIT, in linuxkpi_init_dummy_netdev()
405 struct net_device *ndev; in linuxkpi_alloc_netdev() local
407 ndev = malloc(sizeof(*ndev) + len, M_NETDEV, M_NOWAIT); in linuxkpi_alloc_netdev()
408 if (ndev == NULL) in linuxkpi_alloc_netdev()
409 return (ndev); in linuxkpi_alloc_netdev()
412 linuxkpi_init_dummy_netdev(ndev); in linuxkpi_alloc_netdev()
414 strlcpy(ndev->name, name, sizeof(*ndev->name)); in linuxkpi_alloc_netdev()
418 setup_func(ndev); in linuxkpi_alloc_netdev()
420 return (ndev); in linuxkpi_alloc_netdev()
424 linuxkpi_free_netdev(struct net_device *ndev) in linuxkpi_free_netdev() argument
428 NAPI_LOCK(ndev); in linuxkpi_free_netdev()
429 TAILQ_FOREACH_SAFE(napi, &ndev->napi_head, entry, temp) { in linuxkpi_free_netdev()
432 NAPI_UNLOCK(ndev); in linuxkpi_free_netdev()
434 taskqueue_free(ndev->napi_tq); in linuxkpi_free_netdev()
435 ndev->napi_tq = NULL; in linuxkpi_free_netdev()
436 NAPI_LOCK_DESTROY(ndev); in linuxkpi_free_netdev()
440 free(ndev, M_NETDEV); in linuxkpi_free_netdev()