#include <linux/pci.h>
#include <linux/ntb.h>
-#define NTB_NETDEV_VER "0.6"
+#define NTB_NETDEV_VER "0.7"
MODULE_DESCRIPTION(KBUILD_MODNAME);
MODULE_VERSION(NTB_NETDEV_VER);
rc = ntb_transport_rx_enqueue(qp, skb, skb->data, ndev->mtu + ETH_HLEN);
if (rc) {
+ dev_kfree_skb(skb);
ndev->stats.rx_errors++;
ndev->stats.rx_fifo_errors++;
}
}
dev_kfree_skb(skb);
-
- if (netif_queue_stopped(ndev))
- netif_wake_queue(ndev);
}
static netdev_tx_t ntb_netdev_start_xmit(struct sk_buff *skb,
struct ntb_netdev *dev = netdev_priv(ndev);
int rc;
- netdev_dbg(ndev, "ntb_transport_tx_enqueue\n");
+ netdev_dbg(ndev, "%s: skb len %d\n", __func__, skb->len);
rc = ntb_transport_tx_enqueue(dev->qp, skb, skb->data, skb->len);
if (rc)
err:
ndev->stats.tx_dropped++;
ndev->stats.tx_errors++;
- netif_stop_queue(ndev);
return NETDEV_TX_BUSY;
}
return rc;
}
-static void ntb_netdev_tx_timeout(struct net_device *ndev)
-{
- if (netif_running(ndev))
- netif_wake_queue(ndev);
-}
-
static const struct net_device_ops ntb_netdev_ops = {
.ndo_open = ntb_netdev_open,
.ndo_stop = ntb_netdev_close,
.ndo_start_xmit = ntb_netdev_start_xmit,
.ndo_change_mtu = ntb_netdev_change_mtu,
- .ndo_tx_timeout = ntb_netdev_tx_timeout,
.ndo_set_mac_address = eth_mac_addr,
};
goto err1;
list_add(&dev->list, &dev_list);
- pr_info("%s: %s created\n", KBUILD_MODNAME, ndev->name);
+ dev_info(&pdev->dev, "%s created\n", ndev->name);
return 0;
err1:
return rc;
}
-static void __exit ntb_netdev_remove(struct pci_dev *pdev)
+static void ntb_netdev_remove(struct pci_dev *pdev)
{
struct net_device *ndev;
struct ntb_netdev *dev;
{
ntb_unregister_client(&ntb_netdev_client);
ntb_unregister_client_dev(KBUILD_MODNAME);
- pr_info("%s: Driver removed\n", KBUILD_MODNAME);
}
module_exit(ntb_netdev_exit_module);