Lines Matching defs:vif

130 #define callback_param(vif, pending_idx) \
131 (vif->pending_tx_info[pending_idx].callback_struct)
221 static void xenvif_fatal_tx_err(struct xenvif *vif)
223 netdev_err(vif->dev, "fatal error; disabling device\n");
224 vif->disabled = true;
225 /* Disable the vif from queue 0's kthread */
226 if (vif->num_queues)
227 xenvif_kick_thread(&vif->queues[0]);
248 netdev_err(queue->vif->dev,
251 xenvif_fatal_tx_err(queue->vif);
259 netdev_err(queue->vif->dev,
262 xenvif_fatal_tx_err(queue->vif);
275 netdev_dbg(queue->vif->dev,
297 netdev_dbg(queue->vif->dev,
307 netdev_err(queue->vif->dev, "Cross page boundary, txp->offset: %u, size: %u\n",
309 xenvif_fatal_tx_err(queue->vif);
348 txp->gref, queue->vif->domid);
406 cop->source.domid = queue->vif->domid;
528 netdev_err(queue->vif->dev,
541 netdev_err(queue->vif->dev,
592 netdev_dbg(queue->vif->dev,
637 netdev_dbg(queue->vif->dev,
734 netdev_err(queue->vif->dev, "Missing extra info\n");
735 xenvif_fatal_tx_err(queue->vif);
746 netdev_err(queue->vif->dev,
748 xenvif_fatal_tx_err(queue->vif);
758 static int xenvif_set_skb_gso(struct xenvif *vif,
763 netdev_err(vif->dev, "GSO size must not be zero.\n");
764 xenvif_fatal_tx_err(vif);
776 netdev_err(vif->dev, "Bad GSO type %d.\n", gso->u.gso.type);
777 xenvif_fatal_tx_err(vif);
845 static int xenvif_mcast_add(struct xenvif *vif, const u8 *addr)
849 if (vif->fe_mcast_count == XEN_NETBK_MCAST_MAX) {
851 netdev_err(vif->dev,
861 list_add_tail_rcu(&mcast->entry, &vif->fe_mcast_addr);
862 vif->fe_mcast_count++;
867 static void xenvif_mcast_del(struct xenvif *vif, const u8 *addr)
871 list_for_each_entry_rcu(mcast, &vif->fe_mcast_addr, entry) {
873 --vif->fe_mcast_count;
881 bool xenvif_mcast_match(struct xenvif *vif, const u8 *addr)
886 list_for_each_entry_rcu(mcast, &vif->fe_mcast_addr, entry) {
897 void xenvif_mcast_addr_list_free(struct xenvif *vif)
902 while (!list_empty(&vif->fe_mcast_addr)) {
905 mcast = list_first_entry(&vif->fe_mcast_addr,
908 --vif->fe_mcast_count;
934 netdev_err(queue->vif->dev,
939 xenvif_fatal_tx_err(queue->vif);
976 ret = xenvif_mcast_add(queue->vif, extra->u.mcast.addr);
989 xenvif_mcast_del(queue->vif, extra->u.mcast.addr);
1008 netdev_dbg(queue->vif->dev,
1016 netdev_err(queue->vif->dev, "Cross page boundary, txreq.offset: %u, size: %u\n",
1018 xenvif_fatal_tx_err(queue->vif);
1027 netdev_dbg(queue->vif->dev,
1049 netdev_err(queue->vif->dev,
1059 if (xenvif_set_skb_gso(queue->vif, skb, gso)) {
1212 netdev_err(queue->vif->dev,
1223 skb->dev = queue->vif->dev;
1228 netdev_dbg(queue->vif->dev,
1362 netdev_err(queue->vif->dev, "Unmap fail: nr_ops %tu ret %d\n",
1366 netdev_err(queue->vif->dev,
1405 netdev_err(queue->vif->dev, "Map fail: nr %u ret %d\n",
1500 netdev_err(queue->vif->dev,
1527 xenbus_unmap_ring_vfree(xenvif_to_xenbus_device(queue->vif),
1530 xenbus_unmap_ring_vfree(xenvif_to_xenbus_device(queue->vif),
1544 err = xenbus_map_ring_valloc(xenvif_to_xenbus_device(queue->vif),
1559 err = xenbus_map_ring_valloc(xenvif_to_xenbus_device(queue->vif),
1612 static void make_ctrl_response(struct xenvif *vif,
1616 RING_IDX idx = vif->ctrl.rsp_prod_pvt;
1624 *RING_GET_RESPONSE(&vif->ctrl, idx) = rsp;
1625 vif->ctrl.rsp_prod_pvt = ++idx;
1628 static void push_ctrl_response(struct xenvif *vif)
1632 RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&vif->ctrl, notify);
1634 notify_remote_via_irq(vif->ctrl_irq);
1637 static void process_ctrl_request(struct xenvif *vif,
1645 status = xenvif_set_hash_alg(vif, req->data[0]);
1649 status = xenvif_get_hash_flags(vif, &data);
1653 status = xenvif_set_hash_flags(vif, req->data[0]);
1657 status = xenvif_set_hash_key(vif, req->data[0],
1667 status = xenvif_set_hash_mapping_size(vif,
1672 status = xenvif_set_hash_mapping(vif, req->data[0],
1681 make_ctrl_response(vif, req, status, data);
1682 push_ctrl_response(vif);
1685 static void xenvif_ctrl_action(struct xenvif *vif)
1690 req_prod = vif->ctrl.sring->req_prod;
1691 req_cons = vif->ctrl.req_cons;
1702 RING_COPY_REQUEST(&vif->ctrl, req_cons, &req);
1705 process_ctrl_request(vif, &req);
1708 vif->ctrl.req_cons = req_cons;
1709 vif->ctrl.sring->req_event = req_cons + 1;
1713 static bool xenvif_ctrl_work_todo(struct xenvif *vif)
1715 if (likely(RING_HAS_UNCONSUMED_REQUESTS(&vif->ctrl)))
1723 struct xenvif *vif = data;
1726 while (xenvif_ctrl_work_todo(vif)) {
1727 xenvif_ctrl_action(vif);
1782 MODULE_ALIAS("xen-backend:vif");