@@ -1621,7 +1621,8 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
1621
1621
unsigned int sqsize , rqsize ;
1622
1622
struct c4iw_ucontext * ucontext ;
1623
1623
int ret ;
1624
- struct c4iw_mm_entry * mm1 , * mm2 , * mm3 , * mm4 , * mm5 = NULL ;
1624
+ struct c4iw_mm_entry * sq_key_mm , * rq_key_mm = NULL , * sq_db_key_mm ;
1625
+ struct c4iw_mm_entry * rq_db_key_mm = NULL , * ma_sync_key_mm = NULL ;
1625
1626
1626
1627
PDBG ("%s ib_pd %p\n" , __func__ , pd );
1627
1628
@@ -1706,29 +1707,30 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
1706
1707
goto err2 ;
1707
1708
1708
1709
if (udata ) {
1709
- mm1 = kmalloc (sizeof * mm1 , GFP_KERNEL );
1710
- if (!mm1 ) {
1710
+ sq_key_mm = kmalloc (sizeof ( * sq_key_mm ) , GFP_KERNEL );
1711
+ if (!sq_key_mm ) {
1711
1712
ret = - ENOMEM ;
1712
1713
goto err3 ;
1713
1714
}
1714
- mm2 = kmalloc (sizeof * mm2 , GFP_KERNEL );
1715
- if (!mm2 ) {
1715
+ rq_key_mm = kmalloc (sizeof ( * rq_key_mm ) , GFP_KERNEL );
1716
+ if (!rq_key_mm ) {
1716
1717
ret = - ENOMEM ;
1717
1718
goto err4 ;
1718
1719
}
1719
- mm3 = kmalloc (sizeof * mm3 , GFP_KERNEL );
1720
- if (!mm3 ) {
1720
+ sq_db_key_mm = kmalloc (sizeof ( * sq_db_key_mm ) , GFP_KERNEL );
1721
+ if (!sq_db_key_mm ) {
1721
1722
ret = - ENOMEM ;
1722
1723
goto err5 ;
1723
1724
}
1724
- mm4 = kmalloc (sizeof * mm4 , GFP_KERNEL );
1725
- if (!mm4 ) {
1725
+ rq_db_key_mm = kmalloc (sizeof ( * rq_db_key_mm ) , GFP_KERNEL );
1726
+ if (!rq_db_key_mm ) {
1726
1727
ret = - ENOMEM ;
1727
1728
goto err6 ;
1728
1729
}
1729
1730
if (t4_sq_onchip (& qhp -> wq .sq )) {
1730
- mm5 = kmalloc (sizeof * mm5 , GFP_KERNEL );
1731
- if (!mm5 ) {
1731
+ ma_sync_key_mm = kmalloc (sizeof (* ma_sync_key_mm ),
1732
+ GFP_KERNEL );
1733
+ if (!ma_sync_key_mm ) {
1732
1734
ret = - ENOMEM ;
1733
1735
goto err7 ;
1734
1736
}
@@ -1743,7 +1745,7 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
1743
1745
uresp .rq_size = qhp -> wq .rq .size ;
1744
1746
uresp .rq_memsize = qhp -> wq .rq .memsize ;
1745
1747
spin_lock (& ucontext -> mmap_lock );
1746
- if (mm5 ) {
1748
+ if (ma_sync_key_mm ) {
1747
1749
uresp .ma_sync_key = ucontext -> key ;
1748
1750
ucontext -> key += PAGE_SIZE ;
1749
1751
} else {
@@ -1761,28 +1763,29 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
1761
1763
ret = ib_copy_to_udata (udata , & uresp , sizeof uresp );
1762
1764
if (ret )
1763
1765
goto err8 ;
1764
- mm1 -> key = uresp .sq_key ;
1765
- mm1 -> addr = qhp -> wq .sq .phys_addr ;
1766
- mm1 -> len = PAGE_ALIGN (qhp -> wq .sq .memsize );
1767
- insert_mmap (ucontext , mm1 );
1768
- mm2 -> key = uresp .rq_key ;
1769
- mm2 -> addr = virt_to_phys (qhp -> wq .rq .queue );
1770
- mm2 -> len = PAGE_ALIGN (qhp -> wq .rq .memsize );
1771
- insert_mmap (ucontext , mm2 );
1772
- mm3 -> key = uresp .sq_db_gts_key ;
1773
- mm3 -> addr = (__force unsigned long )qhp -> wq .sq .bar2_pa ;
1774
- mm3 -> len = PAGE_SIZE ;
1775
- insert_mmap (ucontext , mm3 );
1776
- mm4 -> key = uresp .rq_db_gts_key ;
1777
- mm4 -> addr = (__force unsigned long )qhp -> wq .rq .bar2_pa ;
1778
- mm4 -> len = PAGE_SIZE ;
1779
- insert_mmap (ucontext , mm4 );
1780
- if (mm5 ) {
1781
- mm5 -> key = uresp .ma_sync_key ;
1782
- mm5 -> addr = (pci_resource_start (rhp -> rdev .lldi .pdev , 0 )
1783
- + PCIE_MA_SYNC_A ) & PAGE_MASK ;
1784
- mm5 -> len = PAGE_SIZE ;
1785
- insert_mmap (ucontext , mm5 );
1766
+ sq_key_mm -> key = uresp .sq_key ;
1767
+ sq_key_mm -> addr = qhp -> wq .sq .phys_addr ;
1768
+ sq_key_mm -> len = PAGE_ALIGN (qhp -> wq .sq .memsize );
1769
+ insert_mmap (ucontext , sq_key_mm );
1770
+ rq_key_mm -> key = uresp .rq_key ;
1771
+ rq_key_mm -> addr = virt_to_phys (qhp -> wq .rq .queue );
1772
+ rq_key_mm -> len = PAGE_ALIGN (qhp -> wq .rq .memsize );
1773
+ insert_mmap (ucontext , rq_key_mm );
1774
+ sq_db_key_mm -> key = uresp .sq_db_gts_key ;
1775
+ sq_db_key_mm -> addr = (u64 )(unsigned long )qhp -> wq .sq .bar2_pa ;
1776
+ sq_db_key_mm -> len = PAGE_SIZE ;
1777
+ insert_mmap (ucontext , sq_db_key_mm );
1778
+ rq_db_key_mm -> key = uresp .rq_db_gts_key ;
1779
+ rq_db_key_mm -> addr = (u64 )(unsigned long )qhp -> wq .rq .bar2_pa ;
1780
+ rq_db_key_mm -> len = PAGE_SIZE ;
1781
+ insert_mmap (ucontext , rq_db_key_mm );
1782
+ if (ma_sync_key_mm ) {
1783
+ ma_sync_key_mm -> key = uresp .ma_sync_key ;
1784
+ ma_sync_key_mm -> addr =
1785
+ (pci_resource_start (rhp -> rdev .lldi .pdev , 0 ) +
1786
+ PCIE_MA_SYNC_A ) & PAGE_MASK ;
1787
+ ma_sync_key_mm -> len = PAGE_SIZE ;
1788
+ insert_mmap (ucontext , ma_sync_key_mm );
1786
1789
}
1787
1790
}
1788
1791
qhp -> ibqp .qp_num = qhp -> wq .sq .qid ;
@@ -1795,15 +1798,15 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
1795
1798
qhp -> wq .rq .memsize , attrs -> cap .max_recv_wr );
1796
1799
return & qhp -> ibqp ;
1797
1800
err8 :
1798
- kfree (mm5 );
1801
+ kfree (ma_sync_key_mm );
1799
1802
err7 :
1800
- kfree (mm4 );
1803
+ kfree (rq_db_key_mm );
1801
1804
err6 :
1802
- kfree (mm3 );
1805
+ kfree (sq_db_key_mm );
1803
1806
err5 :
1804
- kfree (mm2 );
1807
+ kfree (rq_key_mm );
1805
1808
err4 :
1806
- kfree (mm1 );
1809
+ kfree (sq_key_mm );
1807
1810
err3 :
1808
1811
remove_handle (rhp , & rhp -> qpidr , qhp -> wq .sq .qid );
1809
1812
err2 :
0 commit comments