--- zzzz-none-000/linux-2.6.19.2/drivers/infiniband/hw/ehca/ehca_qp.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/drivers/infiniband/hw/ehca/ehca_qp.c 2007-01-11 07:38:19.000000000 +0000 @@ -811,8 +811,8 @@ unsigned long spl_flags = 0; /* do query_qp to obtain current attr values */ - mqpcb = ehca_alloc_fw_ctrlblock(); - if (!mqpcb) { + mqpcb = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL); + if (mqpcb == NULL) { ehca_err(ibqp->device, "Could not get zeroed page for mqpcb " "ehca_qp=%p qp_num=%x ", my_qp, ibqp->qp_num); return -ENOMEM; @@ -1225,7 +1225,7 @@ } modify_qp_exit1: - ehca_free_fw_ctrlblock(mqpcb); + kfree(mqpcb); return ret; } @@ -1277,7 +1277,7 @@ return -EINVAL; } - qpcb = ehca_alloc_fw_ctrlblock(); + qpcb = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL ); if (!qpcb) { ehca_err(qp->device,"Out of memory for qpcb " "ehca_qp=%p qp_num=%x", my_qp, qp->qp_num); @@ -1401,7 +1401,7 @@ ehca_dmp(qpcb, 4*70, "qp_num=%x", qp->qp_num); query_qp_exit1: - ehca_free_fw_ctrlblock(qpcb); + kfree(qpcb); return ret; }