一、注释
这个函数是用来处理 Infiniband 设备在传输完成时的回调。该回调负责释放发送队列中的缓冲区并更新网络设备统计信息。
static void ipoib_ib_handle_tx_wc(struct net_device *dev, struct ib_wc *wc)
{
// 通过net_device结构体获取私有数据结构
struct ipoib_dev_priv *priv = ipoib_priv(dev);
// 获取工作请求ID,这个ID在发送时被赋予,用于标识对应的缓冲区
unsigned int wr_id = wc->wr_id;
struct ipoib_tx_buf *tx_req;
// 调试信息,输出完成的工作请求的ID和状态
ipoib_dbg_data(priv, "send completion: id %d, status: %d\n",
wr_id, wc->status);
// 检查wr_id是否有效
if (unlikely(wr_id >= priv->sendq_size)) {
// 如果不是&