@@ -2281,24 +2281,39 @@ int c4iw_create_qp(struct ib_qp *qp, struct ib_qp_init_attr *attrs,
22812281 if (ret )
22822282 goto err_free_ma_sync_key ;
22832283 sq_key_mm -> key = uresp .sq_key ;
2284- sq_key_mm -> addr = qhp -> wq .sq .phys_addr ;
2284+ sq_key_mm -> addr = 0 ;
2285+ sq_key_mm -> vaddr = qhp -> wq .sq .queue ;
2286+ sq_key_mm -> dma_addr = qhp -> wq .sq .dma_addr ;
22852287 sq_key_mm -> len = PAGE_ALIGN (qhp -> wq .sq .memsize );
2288+ insert_flag_to_mmap (& rhp -> rdev , sq_key_mm , sq_key_mm -> addr );
22862289 insert_mmap (ucontext , sq_key_mm );
22872290 if (!attrs -> srq ) {
22882291 rq_key_mm -> key = uresp .rq_key ;
2289- rq_key_mm -> addr = virt_to_phys (qhp -> wq .rq .queue );
2292+ rq_key_mm -> addr = 0 ;
2293+ rq_key_mm -> vaddr = qhp -> wq .rq .queue ;
2294+ rq_key_mm -> dma_addr = qhp -> wq .rq .dma_addr ;
22902295 rq_key_mm -> len = PAGE_ALIGN (qhp -> wq .rq .memsize );
2296+ insert_flag_to_mmap (& rhp -> rdev , rq_key_mm ,
2297+ rq_key_mm -> addr );
22912298 insert_mmap (ucontext , rq_key_mm );
22922299 }
22932300 sq_db_key_mm -> key = uresp .sq_db_gts_key ;
22942301 sq_db_key_mm -> addr = (u64 )(unsigned long )qhp -> wq .sq .bar2_pa ;
2302+ sq_db_key_mm -> vaddr = NULL ;
2303+ sq_db_key_mm -> dma_addr = 0 ;
22952304 sq_db_key_mm -> len = PAGE_SIZE ;
2305+ insert_flag_to_mmap (& rhp -> rdev , sq_db_key_mm ,
2306+ sq_db_key_mm -> addr );
22962307 insert_mmap (ucontext , sq_db_key_mm );
22972308 if (!attrs -> srq ) {
22982309 rq_db_key_mm -> key = uresp .rq_db_gts_key ;
22992310 rq_db_key_mm -> addr =
23002311 (u64 )(unsigned long )qhp -> wq .rq .bar2_pa ;
23012312 rq_db_key_mm -> len = PAGE_SIZE ;
2313+ rq_db_key_mm -> vaddr = NULL ;
2314+ rq_db_key_mm -> dma_addr = 0 ;
2315+ insert_flag_to_mmap (& rhp -> rdev , rq_db_key_mm ,
2316+ rq_db_key_mm -> addr );
23022317 insert_mmap (ucontext , rq_db_key_mm );
23032318 }
23042319 if (ma_sync_key_mm ) {
@@ -2307,6 +2322,10 @@ int c4iw_create_qp(struct ib_qp *qp, struct ib_qp_init_attr *attrs,
23072322 (pci_resource_start (rhp -> rdev .lldi .pdev , 0 ) +
23082323 PCIE_MA_SYNC_A ) & PAGE_MASK ;
23092324 ma_sync_key_mm -> len = PAGE_SIZE ;
2325+ ma_sync_key_mm -> vaddr = NULL ;
2326+ ma_sync_key_mm -> dma_addr = 0 ;
2327+ insert_flag_to_mmap (& rhp -> rdev , ma_sync_key_mm ,
2328+ ma_sync_key_mm -> addr );
23102329 insert_mmap (ucontext , ma_sync_key_mm );
23112330 }
23122331
@@ -2466,7 +2485,7 @@ int c4iw_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
24662485 init_attr -> cap .max_send_sge = qhp -> attr .sq_max_sges ;
24672486 init_attr -> cap .max_recv_sge = qhp -> attr .rq_max_sges ;
24682487 init_attr -> cap .max_inline_data = T4_MAX_SEND_INLINE ;
2469- init_attr -> sq_sig_type = qhp -> sq_sig_all ? IB_SIGNAL_ALL_WR : 0 ;
2488+ init_attr -> sq_sig_type = qhp -> sq_sig_all ? IB_SIGNAL_ALL_WR : IB_SIGNAL_REQ_WR ;
24702489 return 0 ;
24712490}
24722491
@@ -2761,12 +2780,19 @@ int c4iw_create_srq(struct ib_srq *ib_srq, struct ib_srq_init_attr *attrs,
27612780 if (ret )
27622781 goto err_free_srq_db_key_mm ;
27632782 srq_key_mm -> key = uresp .srq_key ;
2764- srq_key_mm -> addr = virt_to_phys ( srq -> wq . queue ) ;
2783+ srq_key_mm -> addr = 0 ;
27652784 srq_key_mm -> len = PAGE_ALIGN (srq -> wq .memsize );
2785+ srq_key_mm -> vaddr = srq -> wq .queue ;
2786+ srq_key_mm -> dma_addr = srq -> wq .dma_addr ;
2787+ insert_flag_to_mmap (& rhp -> rdev , srq_key_mm , srq_key_mm -> addr );
27662788 insert_mmap (ucontext , srq_key_mm );
27672789 srq_db_key_mm -> key = uresp .srq_db_gts_key ;
27682790 srq_db_key_mm -> addr = (u64 )(unsigned long )srq -> wq .bar2_pa ;
27692791 srq_db_key_mm -> len = PAGE_SIZE ;
2792+ srq_db_key_mm -> vaddr = NULL ;
2793+ srq_db_key_mm -> dma_addr = 0 ;
2794+ insert_flag_to_mmap (& rhp -> rdev , srq_db_key_mm ,
2795+ srq_db_key_mm -> addr );
27702796 insert_mmap (ucontext , srq_db_key_mm );
27712797 }
27722798
0 commit comments