Lines Matching refs:dev
55 struct ipoib_ah *ipoib_create_ah(struct net_device *dev,
65 ah->dev = dev;
75 ipoib_dbg(ipoib_priv(dev), "Created ah %p\n", ah->ah);
84 struct ipoib_dev_priv *priv = ipoib_priv(ah->dev);
101 static int ipoib_ib_post_receive(struct net_device *dev, int id)
103 struct ipoib_dev_priv *priv = ipoib_priv(dev);
122 static struct sk_buff *ipoib_alloc_rx_skb(struct net_device *dev, int id)
124 struct ipoib_dev_priv *priv = ipoib_priv(dev);
154 static int ipoib_ib_post_receives(struct net_device *dev)
156 struct ipoib_dev_priv *priv = ipoib_priv(dev);
160 if (!ipoib_alloc_rx_skb(dev, i)) {
164 if (ipoib_ib_post_receive(dev, i)) {
173 static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
175 struct ipoib_dev_priv *priv = ipoib_priv(dev);
211 if (unlikely(!ipoib_alloc_rx_skb(dev, wr_id))) {
212 ++dev->stats.rx_dropped;
228 else if (memcmp(dgid, dev->broadcast + 4, sizeof(union ib_gid)) == 0)
257 ++dev->stats.rx_packets;
258 dev->stats.rx_bytes += skb->len;
260 dev->stats.multicast++;
262 skb->dev = dev;
263 if ((dev->features & NETIF_F_RXCSUM) &&
270 if (unlikely(ipoib_ib_post_receive(dev, wr_id)))
385 static void ipoib_ib_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)
387 struct ipoib_dev_priv *priv = ipoib_priv(dev);
404 ++dev->stats.tx_packets;
405 dev->stats.tx_bytes += tx_req->skb->len;
412 if (unlikely(netif_queue_stopped(dev) &&
416 netif_wake_queue(dev);
443 ipoib_cm_handle_tx_wc(priv->dev, priv->send_wc + i);
445 ipoib_ib_handle_tx_wc(priv->dev, priv->send_wc + i);
454 struct net_device *dev = priv->dev;
474 ipoib_cm_handle_rx_wc(dev, wc);
476 ipoib_ib_handle_rx_wc(dev, wc);
502 struct net_device *dev = priv->dev;
512 ipoib_cm_handle_tx_wc(dev, wc);
514 ipoib_ib_handle_tx_wc(dev, wc);
566 int ipoib_send(struct net_device *dev, struct sk_buff *skb,
569 struct ipoib_dev_priv *priv = ipoib_priv(dev);
580 ++dev->stats.tx_dropped;
581 ++dev->stats.tx_errors;
589 ++dev->stats.tx_dropped;
590 ++dev->stats.tx_errors;
591 ipoib_cm_skb_too_long(dev, skb, priv->mcast_mtu);
600 ++dev->stats.tx_dropped;
601 ++dev->stats.tx_errors;
608 ++dev->stats.tx_dropped;
609 ++dev->stats.tx_errors;
629 ++dev->stats.tx_errors;
642 netif_stop_queue(dev);
648 if (netif_queue_stopped(dev))
657 ++dev->stats.tx_errors;
660 if (netif_queue_stopped(dev))
661 netif_wake_queue(dev);
664 netif_trans_update(dev);
678 netif_tx_lock_bh(priv->dev);
689 netif_tx_unlock_bh(priv->dev);
722 static int recvs_pending(struct net_device *dev)
724 struct ipoib_dev_priv *priv = ipoib_priv(dev);
756 static void ipoib_napi_enable(struct net_device *dev)
758 struct ipoib_dev_priv *priv = ipoib_priv(dev);
764 static void ipoib_napi_disable(struct net_device *dev)
766 struct ipoib_dev_priv *priv = ipoib_priv(dev);
772 int ipoib_ib_dev_stop_default(struct net_device *dev)
774 struct ipoib_dev_priv *priv = ipoib_priv(dev);
781 ipoib_napi_disable(dev);
783 ipoib_cm_dev_stop(dev);
796 while (priv->tx_head != priv->tx_tail || recvs_pending(dev)) {
801 recvs_pending(dev));
831 ipoib_drain_cq(dev);
848 int ipoib_ib_dev_open_default(struct net_device *dev)
850 struct ipoib_dev_priv *priv = ipoib_priv(dev);
853 ret = ipoib_init_qp(dev);
859 ret = ipoib_ib_post_receives(dev);
865 ret = ipoib_cm_dev_open(dev);
872 ipoib_napi_enable(dev);
879 int ipoib_ib_dev_open(struct net_device *dev)
881 struct ipoib_dev_priv *priv = ipoib_priv(dev);
883 ipoib_pkey_dev_check_presence(dev);
892 if (priv->rn_ops->ndo_open(dev)) {
893 pr_warn("%s: Failed to open dev\n", dev->name);
906 void ipoib_ib_dev_stop(struct net_device *dev)
908 struct ipoib_dev_priv *priv = ipoib_priv(dev);
910 priv->rn_ops->ndo_stop(dev);
916 void ipoib_pkey_dev_check_presence(struct net_device *dev)
918 struct ipoib_dev_priv *priv = ipoib_priv(dev);
919 struct rdma_netdev *rn = netdev_priv(dev);
927 rn->set_id(dev, priv->pkey_index);
932 void ipoib_ib_dev_up(struct net_device *dev)
934 struct ipoib_dev_priv *priv = ipoib_priv(dev);
936 ipoib_pkey_dev_check_presence(dev);
945 ipoib_mcast_start_thread(dev);
948 void ipoib_ib_dev_down(struct net_device *dev)
950 struct ipoib_dev_priv *priv = ipoib_priv(dev);
955 netif_carrier_off(dev);
957 ipoib_mcast_stop_thread(dev);
958 ipoib_mcast_dev_flush(dev);
960 ipoib_flush_paths(dev);
963 void ipoib_drain_cq(struct net_device *dev)
965 struct ipoib_dev_priv *priv = ipoib_priv(dev);
988 ipoib_cm_handle_rx_wc(dev, priv->ibwc + i);
990 ipoib_ib_handle_rx_wc(dev, priv->ibwc + i);
1029 priv->dev->broadcast[8] = priv->pkey >> 8;
1030 priv->dev->broadcast[9] = priv->pkey & 0xff;
1044 ipoib_pkey_dev_check_presence(priv->dev);
1068 netif_addr_lock_bh(priv->dev);
1074 dev_addr_mod(priv->dev, 4, (u8 *)&gid0.global.subnet_prefix,
1080 netif_addr_unlock_bh(priv->dev);
1084 netif_addr_lock_bh(priv->dev);
1115 * so we need to change priv->local_gid and priv->dev->dev_addr
1137 dev_addr_mod(priv->dev, 4, (u8 *)&gid0,
1145 netif_addr_unlock_bh(priv->dev);
1155 struct net_device *dev = priv->dev;
1215 ipoib_mark_paths_invalid(dev);
1222 ipoib_mcast_dev_flush(dev);
1229 ipoib_ib_dev_down(dev);
1233 ipoib_ib_dev_stop(dev);
1235 if (ipoib_ib_dev_open(dev))
1238 if (netif_queue_stopped(dev))
1239 netif_start_queue(dev);
1248 ipoib_ib_dev_up(dev);
1280 void ipoib_ib_dev_cleanup(struct net_device *dev)
1282 struct ipoib_dev_priv *priv = ipoib_priv(dev);
1289 ipoib_flush_paths(dev);
1291 ipoib_mcast_stop_thread(dev);
1292 ipoib_mcast_dev_flush(dev);
1304 priv->rn_ops->ndo_uninit(dev);