Lines Matching refs:pmp

2602 static int pma_get_opa_classportinfo(struct opa_pma_mad *pmp,
2606 (struct opa_class_port_info *)pmp->data;
2608 memset(pmp->data, 0, sizeof(pmp->data));
2610 if (pmp->mad_hdr.attr_mod != 0)
2611 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2623 return reply((struct ib_mad_hdr *)pmp);
2723 static int pma_get_opa_portstatus(struct opa_pma_mad *pmp,
2728 (struct opa_port_status_req *)pmp->data;
2734 u32 nports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
2746 if (response_data_size > sizeof(pmp->data)) {
2747 pmp->mad_hdr.status |= OPA_PM_STATUS_REQUEST_TOO_LARGE;
2748 return reply((struct ib_mad_hdr *)pmp);
2753 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2754 return reply((struct ib_mad_hdr *)pmp);
2757 memset(pmp->data, 0, sizeof(pmp->data));
2759 rsp = (struct opa_port_status_rsp *)pmp->data;
2888 return reply((struct ib_mad_hdr *)pmp);
2974 static int pma_get_opa_datacounters(struct opa_pma_mad *pmp,
2979 (struct opa_port_data_counters_msg *)pmp->data;
2997 num_ports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
3006 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3007 return reply((struct ib_mad_hdr *)pmp);
3013 if (response_data_size > sizeof(pmp->data)) {
3014 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3015 return reply((struct ib_mad_hdr *)pmp);
3027 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3028 return reply((struct ib_mad_hdr *)pmp);
3122 return reply((struct ib_mad_hdr *)pmp);
3125 static int pma_get_ib_portcounters_ext(struct ib_pma_mad *pmp,
3129 pmp->data;
3132 if (pmp->mad_hdr.attr_mod != 0 || p->port_select != port) {
3133 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3150 return reply((struct ib_mad_hdr *)pmp);
3195 static int pma_get_opa_porterrors(struct opa_pma_mad *pmp,
3215 req = (struct opa_port_error_counters64_msg *)pmp->data;
3217 num_ports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
3223 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3224 return reply((struct ib_mad_hdr *)pmp);
3229 if (response_data_size > sizeof(pmp->data)) {
3230 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3231 return reply((struct ib_mad_hdr *)pmp);
3242 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3243 return reply((struct ib_mad_hdr *)pmp);
3282 return reply((struct ib_mad_hdr *)pmp);
3285 static int pma_get_ib_portcounters(struct ib_pma_mad *pmp,
3289 pmp->data;
3298 if (pmp->mad_hdr.attr_mod != 0 || p->port_select != port) {
3299 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3367 return reply((struct ib_mad_hdr *)pmp);
3370 static int pma_get_opa_errorinfo(struct opa_pma_mad *pmp,
3384 req = (struct opa_port_error_info_msg *)pmp->data;
3387 num_ports = OPA_AM_NPORT(be32_to_cpu(pmp->mad_hdr.attr_mod));
3393 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3394 return reply((struct ib_mad_hdr *)pmp);
3400 if (response_data_size > sizeof(pmp->data)) {
3401 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3402 return reply((struct ib_mad_hdr *)pmp);
3414 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3415 return reply((struct ib_mad_hdr *)pmp);
3466 return reply((struct ib_mad_hdr *)pmp);
3469 static int pma_set_opa_portstatus(struct opa_pma_mad *pmp,
3474 (struct opa_clear_port_status *)pmp->data;
3478 u32 nports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
3485 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3486 return reply((struct ib_mad_hdr *)pmp);
3618 return reply((struct ib_mad_hdr *)pmp);
3621 static int pma_set_opa_errorinfo(struct opa_pma_mad *pmp,
3634 req = (struct opa_port_error_info_msg *)pmp->data;
3637 num_ports = OPA_AM_NPORT(be32_to_cpu(pmp->mad_hdr.attr_mod));
3643 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3644 return reply((struct ib_mad_hdr *)pmp);
3656 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3657 return reply((struct ib_mad_hdr *)pmp);
3695 return reply((struct ib_mad_hdr *)pmp);
4679 struct ib_pma_mad *pmp = (struct ib_pma_mad *)out_mad;
4681 &pmp->data;
4685 if (pmp->mad_hdr.class_version != 1) {
4686 pmp->mad_hdr.status |= IB_SMP_UNSUP_VERSION;
4687 ret = reply((struct ib_mad_hdr *)pmp);
4691 switch (pmp->mad_hdr.method) {
4693 switch (pmp->mad_hdr.attr_id) {
4695 ret = pma_get_ib_portcounters(pmp, ibdev, port);
4698 ret = pma_get_ib_portcounters_ext(pmp, ibdev, port);
4702 ret = reply((struct ib_mad_hdr *)pmp);
4705 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4706 ret = reply((struct ib_mad_hdr *)pmp);
4712 if (pmp->mad_hdr.attr_id) {
4713 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4714 ret = reply((struct ib_mad_hdr *)pmp);
4729 pmp->mad_hdr.status |= IB_SMP_UNSUP_METHOD;
4730 ret = reply((struct ib_mad_hdr *)pmp);
4741 struct opa_pma_mad *pmp = (struct opa_pma_mad *)out_mad;
4746 if (pmp->mad_hdr.class_version != OPA_SM_CLASS_VERSION) {
4747 pmp->mad_hdr.status |= IB_SMP_UNSUP_VERSION;
4748 return reply((struct ib_mad_hdr *)pmp);
4751 *resp_len = sizeof(pmp->mad_hdr);
4753 switch (pmp->mad_hdr.method) {
4755 switch (pmp->mad_hdr.attr_id) {
4757 ret = pma_get_opa_classportinfo(pmp, ibdev, resp_len);
4760 ret = pma_get_opa_portstatus(pmp, ibdev, port,
4764 ret = pma_get_opa_datacounters(pmp, ibdev, port,
4768 ret = pma_get_opa_porterrors(pmp, ibdev, port,
4772 ret = pma_get_opa_errorinfo(pmp, ibdev, port,
4776 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4777 ret = reply((struct ib_mad_hdr *)pmp);
4783 switch (pmp->mad_hdr.attr_id) {
4785 ret = pma_set_opa_portstatus(pmp, ibdev, port,
4789 ret = pma_set_opa_errorinfo(pmp, ibdev, port,
4793 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4794 ret = reply((struct ib_mad_hdr *)pmp);
4810 pmp->mad_hdr.status |= IB_SMP_UNSUP_METHOD;
4811 ret = reply((struct ib_mad_hdr *)pmp);