|
@@ -43,9 +43,6 @@
|
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
|
*/
|
|
|
|
|
|
-
|
|
|
-#include <asm/current.h>
|
|
|
-
|
|
|
#include "ehca_classes.h"
|
|
|
#include "ehca_tools.h"
|
|
|
#include "ehca_qes.h"
|
|
@@ -1526,16 +1523,6 @@ int ehca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask,
|
|
|
struct ehca_shca *shca = container_of(ibqp->device, struct ehca_shca,
|
|
|
ib_device);
|
|
|
struct ehca_qp *my_qp = container_of(ibqp, struct ehca_qp, ib_qp);
|
|
|
- struct ehca_pd *my_pd = container_of(my_qp->ib_qp.pd, struct ehca_pd,
|
|
|
- ib_pd);
|
|
|
- u32 cur_pid = current->tgid;
|
|
|
-
|
|
|
- if (my_pd->ib_pd.uobject && my_pd->ib_pd.uobject->context &&
|
|
|
- my_pd->ownpid != cur_pid) {
|
|
|
- ehca_err(ibqp->pd->device, "Invalid caller pid=%x ownpid=%x",
|
|
|
- cur_pid, my_pd->ownpid);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
|
|
|
/* The if-block below caches qp_attr to be modified for GSI and SMI
|
|
|
* qps during the initialization by ib_mad. When the respective port
|
|
@@ -1636,23 +1623,13 @@ int ehca_query_qp(struct ib_qp *qp,
|
|
|
int qp_attr_mask, struct ib_qp_init_attr *qp_init_attr)
|
|
|
{
|
|
|
struct ehca_qp *my_qp = container_of(qp, struct ehca_qp, ib_qp);
|
|
|
- struct ehca_pd *my_pd = container_of(my_qp->ib_qp.pd, struct ehca_pd,
|
|
|
- ib_pd);
|
|
|
struct ehca_shca *shca = container_of(qp->device, struct ehca_shca,
|
|
|
ib_device);
|
|
|
struct ipz_adapter_handle adapter_handle = shca->ipz_hca_handle;
|
|
|
struct hcp_modify_qp_control_block *qpcb;
|
|
|
- u32 cur_pid = current->tgid;
|
|
|
int cnt, ret = 0;
|
|
|
u64 h_ret;
|
|
|
|
|
|
- if (my_pd->ib_pd.uobject && my_pd->ib_pd.uobject->context &&
|
|
|
- my_pd->ownpid != cur_pid) {
|
|
|
- ehca_err(qp->device, "Invalid caller pid=%x ownpid=%x",
|
|
|
- cur_pid, my_pd->ownpid);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
if (qp_attr_mask & QP_ATTR_QUERY_NOT_SUPPORTED) {
|
|
|
ehca_err(qp->device, "Invalid attribute mask "
|
|
|
"ehca_qp=%p qp_num=%x qp_attr_mask=%x ",
|
|
@@ -1797,8 +1774,6 @@ int ehca_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
|
|
|
{
|
|
|
struct ehca_qp *my_qp =
|
|
|
container_of(ibsrq, struct ehca_qp, ib_srq);
|
|
|
- struct ehca_pd *my_pd =
|
|
|
- container_of(ibsrq->pd, struct ehca_pd, ib_pd);
|
|
|
struct ehca_shca *shca =
|
|
|
container_of(ibsrq->pd->device, struct ehca_shca, ib_device);
|
|
|
struct hcp_modify_qp_control_block *mqpcb;
|
|
@@ -1806,14 +1781,6 @@ int ehca_modify_srq(struct ib_srq *ibsrq, struct ib_srq_attr *attr,
|
|
|
u64 h_ret;
|
|
|
int ret = 0;
|
|
|
|
|
|
- u32 cur_pid = current->tgid;
|
|
|
- if (my_pd->ib_pd.uobject && my_pd->ib_pd.uobject->context &&
|
|
|
- my_pd->ownpid != cur_pid) {
|
|
|
- ehca_err(ibsrq->pd->device, "Invalid caller pid=%x ownpid=%x",
|
|
|
- cur_pid, my_pd->ownpid);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
mqpcb = ehca_alloc_fw_ctrlblock(GFP_KERNEL);
|
|
|
if (!mqpcb) {
|
|
|
ehca_err(ibsrq->device, "Could not get zeroed page for mqpcb "
|
|
@@ -1864,22 +1831,13 @@ modify_srq_exit0:
|
|
|
int ehca_query_srq(struct ib_srq *srq, struct ib_srq_attr *srq_attr)
|
|
|
{
|
|
|
struct ehca_qp *my_qp = container_of(srq, struct ehca_qp, ib_srq);
|
|
|
- struct ehca_pd *my_pd = container_of(srq->pd, struct ehca_pd, ib_pd);
|
|
|
struct ehca_shca *shca = container_of(srq->device, struct ehca_shca,
|
|
|
ib_device);
|
|
|
struct ipz_adapter_handle adapter_handle = shca->ipz_hca_handle;
|
|
|
struct hcp_modify_qp_control_block *qpcb;
|
|
|
- u32 cur_pid = current->tgid;
|
|
|
int ret = 0;
|
|
|
u64 h_ret;
|
|
|
|
|
|
- if (my_pd->ib_pd.uobject && my_pd->ib_pd.uobject->context &&
|
|
|
- my_pd->ownpid != cur_pid) {
|
|
|
- ehca_err(srq->device, "Invalid caller pid=%x ownpid=%x",
|
|
|
- cur_pid, my_pd->ownpid);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
qpcb = ehca_alloc_fw_ctrlblock(GFP_KERNEL);
|
|
|
if (!qpcb) {
|
|
|
ehca_err(srq->device, "Out of memory for qpcb "
|
|
@@ -1919,7 +1877,6 @@ static int internal_destroy_qp(struct ib_device *dev, struct ehca_qp *my_qp,
|
|
|
struct ehca_pd *my_pd = container_of(my_qp->ib_qp.pd, struct ehca_pd,
|
|
|
ib_pd);
|
|
|
struct ehca_sport *sport = &shca->sport[my_qp->init_attr.port_num - 1];
|
|
|
- u32 cur_pid = current->tgid;
|
|
|
u32 qp_num = my_qp->real_qp_num;
|
|
|
int ret;
|
|
|
u64 h_ret;
|
|
@@ -1934,11 +1891,6 @@ static int internal_destroy_qp(struct ib_device *dev, struct ehca_qp *my_qp,
|
|
|
"user space qp_num=%x", qp_num);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
- if (my_pd->ownpid != cur_pid) {
|
|
|
- ehca_err(dev, "Invalid caller pid=%x ownpid=%x",
|
|
|
- cur_pid, my_pd->ownpid);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
if (my_qp->send_cq) {
|