Lines Matching defs:info
110 struct netfront_info *info;
260 struct net_device *dev = queue->info->netdev;
275 skb = __netdev_alloc_skb(queue->info->netdev,
291 skb->dev = queue->info->netdev;
303 if (unlikely(!netif_carrier_ok(queue->info->netdev)))
334 queue->info->xbdev->otherend_id,
395 const struct device *dev = &queue->info->netdev->dev;
397 BUG_ON(!netif_carrier_ok(queue->info->netdev));
457 queue->info->broken = true;
475 struct xennet_gnttab_make_txreq *info = data;
480 struct page *page = info->page;
481 struct netfront_queue *queue = info->queue;
482 struct sk_buff *skb = info->skb;
489 gnttab_grant_foreign_access_ref(ref, queue->info->xbdev->otherend_id,
496 info->tx_local.id = id;
497 info->tx_local.gref = ref;
498 info->tx_local.offset = offset;
499 info->tx_local.size = len;
500 info->tx_local.flags = 0;
502 *tx = info->tx_local;
510 info->tx = tx;
511 info->size += info->tx_local.size;
515 struct xennet_gnttab_make_txreq *info,
518 info->size = 0;
520 gnttab_for_one_grant(info->page, offset, len, xennet_tx_setup_grant, info);
522 return info->tx;
528 struct xennet_gnttab_make_txreq *info = data;
530 info->tx->flags |= XEN_NETTXF_more_data;
531 skb_get(info->skb);
536 struct xennet_gnttab_make_txreq *info,
545 info->page = page;
546 info->size = 0;
550 info);
554 len -= info->size;
617 struct xennet_gnttab_make_txreq info = {
624 xennet_make_first_txreq(&info,
719 struct xennet_gnttab_make_txreq info = { };
783 info.queue = queue;
784 info.skb = skb;
785 info.page = page;
786 first_tx = xennet_make_first_txreq(&info, offset, len);
787 offset += info.tx_local.size;
792 len -= info.tx_local.size;
802 /* Optional extra info after the first request. */
823 xennet_make_txreqs(&info, page, offset, len);
828 xennet_make_txreqs(&info, skb_frag_page(frag),
880 static void xennet_destroy_queues(struct netfront_info *info)
884 for (i = 0; i < info->netdev->real_num_tx_queues; i++) {
885 struct netfront_queue *queue = &info->queues[i];
887 if (netif_running(info->netdev))
892 kfree(info->queues);
893 info->queues = NULL;
931 struct device *dev = &queue->info->netdev->dev;
941 dev_warn(dev, "Missing extra info\n");
986 err = xennet_xdp_xmit(queue->info->netdev, 1, &xdpf, 0);
990 trace_xdp_exception(queue->info->netdev, prog, act);
994 err = xdp_do_redirect(queue->info->netdev, xdp, prog);
997 trace_xdp_exception(queue->info->netdev, prog, act);
1004 trace_xdp_exception(queue->info->netdev, prog, act);
1008 bpf_warn_invalid_xdp_action(queue->info->netdev, prog, act);
1025 struct device *dev = &queue->info->netdev->dev;
1072 queue->info->broken = true;
1223 struct netfront_stats *rx_stats = this_cpu_ptr(queue->info->rx_stats);
1234 skb->protocol = eth_type_trans(skb, queue->info->netdev);
1237 if (checksum_setup(queue->info->netdev, skb)) {
1240 queue->info->netdev->stats.rx_errors++;
1259 struct net_device *dev = queue->info->netdev;
1282 queue->info->broken = true;
1298 if (queue->info->broken) {
1511 if (unlikely(queue->info->broken))
1537 if (unlikely(queue->info->broken))
1546 const struct device *dev = &queue->info->netdev->dev;
1551 queue->info->broken = true;
1556 if (likely(netif_carrier_ok(queue->info->netdev) && work_queued))
1587 struct netfront_info *info = netdev_priv(dev);
1591 if (info->broken)
1595 xennet_interrupt(0, &info->queues[i]);
1783 struct netfront_info *info;
1792 info = netdev_priv(netdev);
1793 dev_set_drvdata(&dev->dev, info);
1795 info->netdev->sysfs_groups[0] = &xennet_dev_group;
1808 static void xennet_disconnect_backend(struct netfront_info *info)
1811 unsigned int num_queues = info->netdev->real_num_tx_queues;
1813 netif_carrier_off(info->netdev);
1815 for (i = 0; i < num_queues && info->queues; ++i) {
1816 struct netfront_queue *queue = &info->queues[i];
1829 if (netif_running(info->netdev))
1858 struct netfront_info *info = dev_get_drvdata(&dev->dev);
1862 netif_tx_lock_bh(info->netdev);
1863 netif_device_detach(info->netdev);
1864 netif_tx_unlock_bh(info->netdev);
1866 xennet_disconnect_backend(info);
1869 if (info->queues)
1870 xennet_destroy_queues(info);
1902 err = xenbus_alloc_evtchn(queue->info->xbdev, &queue->tx_evtchn);
1908 queue->info->netdev->name,
1918 xenbus_free_evtchn(queue->info->xbdev, queue->tx_evtchn);
1928 err = xenbus_alloc_evtchn(queue->info->xbdev, &queue->tx_evtchn);
1931 err = xenbus_alloc_evtchn(queue->info->xbdev, &queue->rx_evtchn);
1959 xenbus_free_evtchn(queue->info->xbdev, queue->rx_evtchn);
1962 xenbus_free_evtchn(queue->info->xbdev, queue->tx_evtchn);
2031 devid = strrchr(queue->info->xbdev->nodename, '/') + 1;
2082 struct xenbus_device *dev = queue->info->xbdev;
2167 .dev = &queue->info->netdev->dev,
2179 err = xdp_rxq_info_reg(&queue->xdp_rxq, queue->info->netdev,
2182 netdev_err(queue->info->netdev, "xdp_rxq_info_reg failed\n");
2189 netdev_err(queue->info->netdev, "xdp_rxq_info_reg_mem_model failed\n");
2202 static int xennet_create_queues(struct netfront_info *info,
2208 info->queues = kcalloc(*num_queues, sizeof(struct netfront_queue),
2210 if (!info->queues)
2214 struct netfront_queue *queue = &info->queues[i];
2217 queue->info = info;
2221 dev_warn(&info->xbdev->dev,
2230 dev_err(&info->xbdev->dev, "can't allocate page pool\n");
2235 netif_napi_add(queue->info->netdev, &queue->napi, xennet_poll);
2236 if (netif_running(info->netdev))
2240 netif_set_real_num_tx_queues(info->netdev, *num_queues);
2243 dev_err(&info->xbdev->dev, "no queues\n");
2251 struct netfront_info *info)
2263 info->netdev->irq = 0;
2266 info->bounce = !xennet_trusted ||
2270 max_queues = xenbus_read_unsigned(info->xbdev->otherend,
2275 feature_split_evtchn = xenbus_read_unsigned(info->xbdev->otherend,
2284 eth_hw_addr_set(info->netdev, addr);
2286 info->netback_has_xdp_headroom = xenbus_read_unsigned(info->xbdev->otherend,
2288 if (info->netback_has_xdp_headroom) {
2290 err = talk_to_netback_xdp(info, info->netfront_xdp_enabled ?
2298 if (info->queues)
2299 xennet_destroy_queues(info);
2302 info->broken = false;
2304 err = xennet_create_queues(info, &num_queues);
2307 kfree(info->queues);
2308 info->queues = NULL;
2315 queue = &info->queues[i];
2329 info->xbdev->otherend, "multi-queue-max-queues")) {
2340 err = write_queue_xenstore_keys(&info->queues[0], &xbt, 0); /* flat */
2346 queue = &info->queues[i];
2407 xennet_disconnect_backend(info);
2409 xennet_destroy_queues(info);
2653 struct netfront_info *info = dev_get_drvdata(&dev->dev);
2656 xennet_disconnect_backend(info);
2658 if (info->netdev->reg_state == NETREG_REGISTERED)
2659 unregister_netdev(info->netdev);
2661 if (info->queues) {
2663 xennet_destroy_queues(info);
2666 xennet_free_netdev(info->netdev);