hc
2024-05-14 bedbef8ad3e75a304af6361af235302bcc61d06b
kernel/drivers/infiniband/ulp/ipoib/ipoib_ib.c
....@@ -66,7 +66,7 @@
6666 ah->last_send = 0;
6767 kref_init(&ah->ref);
6868
69
- vah = rdma_create_ah(pd, attr);
69
+ vah = rdma_create_ah(pd, attr, RDMA_CREATE_AH_SLEEPABLE);
7070 if (IS_ERR(vah)) {
7171 kfree(ah);
7272 ah = (struct ipoib_ah *)vah;
....@@ -293,7 +293,8 @@
293293 const skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
294294 mapping[i + off] = ib_dma_map_page(ca,
295295 skb_frag_page(frag),
296
- frag->page_offset, skb_frag_size(frag),
296
+ skb_frag_off(frag),
297
+ skb_frag_size(frag),
297298 DMA_TO_DEVICE);
298299 if (unlikely(ib_dma_mapping_error(ca, mapping[i + off])))
299300 goto partial_error;
....@@ -672,7 +673,6 @@
672673 static void ipoib_reap_dead_ahs(struct ipoib_dev_priv *priv)
673674 {
674675 struct ipoib_ah *ah, *tah;
675
- LIST_HEAD(remove_list);
676676 unsigned long flags;
677677
678678 netif_tx_lock_bh(priv->dev);
....@@ -681,7 +681,7 @@
681681 list_for_each_entry_safe(ah, tah, &priv->dead_ahs, list)
682682 if ((int) priv->tx_tail - (int) ah->last_send >= 0) {
683683 list_del(&ah->list);
684
- rdma_destroy_ah(ah->ah);
684
+ rdma_destroy_ah(ah->ah, 0);
685685 kfree(ah);
686686 }
687687