IB/mlx4: Fix error path in create_qp_common()
authorRoland Dreier <rolandd@cisco.com>
Sat, 21 Jul 2007 04:19:43 +0000 (21:19 -0700)
committerRoland Dreier <rolandd@cisco.com>
Sat, 21 Jul 2007 04:19:43 +0000 (21:19 -0700)
commit23f1b38481596ad77e5f51562977b12c8418eee3
tree7df6cea98a135f5a85657f0dde882410cdfd5d7e
parent0981582dbfae86ba0306406f1af329bb702752d2
IB/mlx4: Fix error path in create_qp_common()

The error handling code at err_wrid in create_qp_common() does not
handle a userspace QP attached to an SRQ correctly, since it ends up
in the else clause of the if statement.  This means it tries to
kfree() the uninitialized qp->sq.wrid and qp->rq.wrid pointers.  Fix
this so we only free the wrid arrays for kernel QPs.

Pointed out by Michael S. Tsirkin <mst@dev.mellanox.co.il>.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/mlx4/qp.c