@@ -2103,16 +2103,15 @@ int c4iw_destroy_qp(struct ib_qp *ib_qp, struct ib_udata *udata)
21032103 ucontext ? & ucontext -> uctx : & rhp -> rdev .uctx , !qhp -> srq );
21042104
21052105 c4iw_put_wr_wait (qhp -> wr_waitp );
2106-
2107- kfree (qhp );
21082106 return 0 ;
21092107}
21102108
2111- struct ib_qp * c4iw_create_qp (struct ib_pd * pd , struct ib_qp_init_attr * attrs ,
2112- struct ib_udata * udata )
2109+ int c4iw_create_qp (struct ib_qp * qp , struct ib_qp_init_attr * attrs ,
2110+ struct ib_udata * udata )
21132111{
2112+ struct ib_pd * pd = qp -> pd ;
21142113 struct c4iw_dev * rhp ;
2115- struct c4iw_qp * qhp ;
2114+ struct c4iw_qp * qhp = to_c4iw_qp ( qp ) ;
21162115 struct c4iw_pd * php ;
21172116 struct c4iw_cq * schp ;
21182117 struct c4iw_cq * rchp ;
@@ -2124,44 +2123,36 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
21242123 struct c4iw_mm_entry * sq_key_mm , * rq_key_mm = NULL , * sq_db_key_mm ;
21252124 struct c4iw_mm_entry * rq_db_key_mm = NULL , * ma_sync_key_mm = NULL ;
21262125
2127- pr_debug ("ib_pd %p\n" , pd );
2128-
21292126 if (attrs -> qp_type != IB_QPT_RC || attrs -> create_flags )
2130- return ERR_PTR ( - EOPNOTSUPP ) ;
2127+ return - EOPNOTSUPP ;
21312128
21322129 php = to_c4iw_pd (pd );
21332130 rhp = php -> rhp ;
21342131 schp = get_chp (rhp , ((struct c4iw_cq * )attrs -> send_cq )-> cq .cqid );
21352132 rchp = get_chp (rhp , ((struct c4iw_cq * )attrs -> recv_cq )-> cq .cqid );
21362133 if (!schp || !rchp )
2137- return ERR_PTR ( - EINVAL ) ;
2134+ return - EINVAL ;
21382135
21392136 if (attrs -> cap .max_inline_data > T4_MAX_SEND_INLINE )
2140- return ERR_PTR ( - EINVAL ) ;
2137+ return - EINVAL ;
21412138
21422139 if (!attrs -> srq ) {
21432140 if (attrs -> cap .max_recv_wr > rhp -> rdev .hw_queue .t4_max_rq_size )
2144- return ERR_PTR ( - E2BIG ) ;
2141+ return - E2BIG ;
21452142 rqsize = attrs -> cap .max_recv_wr + 1 ;
21462143 if (rqsize < 8 )
21472144 rqsize = 8 ;
21482145 }
21492146
21502147 if (attrs -> cap .max_send_wr > rhp -> rdev .hw_queue .t4_max_sq_size )
2151- return ERR_PTR ( - E2BIG ) ;
2148+ return - E2BIG ;
21522149 sqsize = attrs -> cap .max_send_wr + 1 ;
21532150 if (sqsize < 8 )
21542151 sqsize = 8 ;
21552152
2156- qhp = kzalloc (sizeof (* qhp ), GFP_KERNEL );
2157- if (!qhp )
2158- return ERR_PTR (- ENOMEM );
2159-
21602153 qhp -> wr_waitp = c4iw_alloc_wr_wait (GFP_KERNEL );
2161- if (!qhp -> wr_waitp ) {
2162- ret = - ENOMEM ;
2163- goto err_free_qhp ;
2164- }
2154+ if (!qhp -> wr_waitp )
2155+ return - ENOMEM ;
21652156
21662157 qhp -> wq .sq .size = sqsize ;
21672158 qhp -> wq .sq .memsize =
@@ -2339,7 +2330,7 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
23392330 qhp -> wq .sq .qid , qhp -> wq .sq .size , qhp -> wq .sq .memsize ,
23402331 attrs -> cap .max_send_wr , qhp -> wq .rq .qid , qhp -> wq .rq .size ,
23412332 qhp -> wq .rq .memsize , attrs -> cap .max_recv_wr );
2342- return & qhp -> ibqp ;
2333+ return 0 ;
23432334err_free_ma_sync_key :
23442335 kfree (ma_sync_key_mm );
23452336err_free_rq_db_key :
@@ -2359,9 +2350,7 @@ struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs,
23592350 ucontext ? & ucontext -> uctx : & rhp -> rdev .uctx , !attrs -> srq );
23602351err_free_wr_wait :
23612352 c4iw_put_wr_wait (qhp -> wr_waitp );
2362- err_free_qhp :
2363- kfree (qhp );
2364- return ERR_PTR (ret );
2353+ return ret ;
23652354}
23662355
23672356int c4iw_ib_modify_qp (struct ib_qp * ibqp , struct ib_qp_attr * attr ,
0 commit comments