Lines Matching refs:pmp
2560 static int pma_get_opa_classportinfo(struct opa_pma_mad *pmp,
2564 (struct opa_class_port_info *)pmp->data;
2566 memset(pmp->data, 0, sizeof(pmp->data));
2568 if (pmp->mad_hdr.attr_mod != 0)
2569 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2581 return reply((struct ib_mad_hdr *)pmp);
2681 static int pma_get_opa_portstatus(struct opa_pma_mad *pmp,
2686 (struct opa_port_status_req *)pmp->data;
2692 u32 nports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
2704 if (response_data_size > sizeof(pmp->data)) {
2705 pmp->mad_hdr.status |= OPA_PM_STATUS_REQUEST_TOO_LARGE;
2706 return reply((struct ib_mad_hdr *)pmp);
2711 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2712 return reply((struct ib_mad_hdr *)pmp);
2715 memset(pmp->data, 0, sizeof(pmp->data));
2717 rsp = (struct opa_port_status_rsp *)pmp->data;
2846 return reply((struct ib_mad_hdr *)pmp);
2932 static int pma_get_opa_datacounters(struct opa_pma_mad *pmp,
2937 (struct opa_port_data_counters_msg *)pmp->data;
2955 num_ports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
2964 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2965 return reply((struct ib_mad_hdr *)pmp);
2971 if (response_data_size > sizeof(pmp->data)) {
2972 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2973 return reply((struct ib_mad_hdr *)pmp);
2985 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
2986 return reply((struct ib_mad_hdr *)pmp);
3080 return reply((struct ib_mad_hdr *)pmp);
3083 static int pma_get_ib_portcounters_ext(struct ib_pma_mad *pmp,
3087 pmp->data;
3090 if (pmp->mad_hdr.attr_mod != 0 || p->port_select != port) {
3091 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3108 return reply((struct ib_mad_hdr *)pmp);
3153 static int pma_get_opa_porterrors(struct opa_pma_mad *pmp,
3173 req = (struct opa_port_error_counters64_msg *)pmp->data;
3175 num_ports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
3181 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3182 return reply((struct ib_mad_hdr *)pmp);
3187 if (response_data_size > sizeof(pmp->data)) {
3188 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3189 return reply((struct ib_mad_hdr *)pmp);
3200 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3201 return reply((struct ib_mad_hdr *)pmp);
3240 return reply((struct ib_mad_hdr *)pmp);
3243 static int pma_get_ib_portcounters(struct ib_pma_mad *pmp,
3247 pmp->data;
3256 if (pmp->mad_hdr.attr_mod != 0 || p->port_select != port) {
3257 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3325 return reply((struct ib_mad_hdr *)pmp);
3328 static int pma_get_opa_errorinfo(struct opa_pma_mad *pmp,
3342 req = (struct opa_port_error_info_msg *)pmp->data;
3345 num_ports = OPA_AM_NPORT(be32_to_cpu(pmp->mad_hdr.attr_mod));
3351 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3352 return reply((struct ib_mad_hdr *)pmp);
3358 if (response_data_size > sizeof(pmp->data)) {
3359 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3360 return reply((struct ib_mad_hdr *)pmp);
3372 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3373 return reply((struct ib_mad_hdr *)pmp);
3424 return reply((struct ib_mad_hdr *)pmp);
3427 static int pma_set_opa_portstatus(struct opa_pma_mad *pmp,
3432 (struct opa_clear_port_status *)pmp->data;
3436 u32 nports = be32_to_cpu(pmp->mad_hdr.attr_mod) >> 24;
3443 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3444 return reply((struct ib_mad_hdr *)pmp);
3576 return reply((struct ib_mad_hdr *)pmp);
3579 static int pma_set_opa_errorinfo(struct opa_pma_mad *pmp,
3592 req = (struct opa_port_error_info_msg *)pmp->data;
3595 num_ports = OPA_AM_NPORT(be32_to_cpu(pmp->mad_hdr.attr_mod));
3601 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3602 return reply((struct ib_mad_hdr *)pmp);
3614 pmp->mad_hdr.status |= IB_SMP_INVALID_FIELD;
3615 return reply((struct ib_mad_hdr *)pmp);
3653 return reply((struct ib_mad_hdr *)pmp);
4637 struct ib_pma_mad *pmp = (struct ib_pma_mad *)out_mad;
4639 &pmp->data;
4643 if (pmp->mad_hdr.class_version != 1) {
4644 pmp->mad_hdr.status |= IB_SMP_UNSUP_VERSION;
4645 ret = reply((struct ib_mad_hdr *)pmp);
4649 switch (pmp->mad_hdr.method) {
4651 switch (pmp->mad_hdr.attr_id) {
4653 ret = pma_get_ib_portcounters(pmp, ibdev, port);
4656 ret = pma_get_ib_portcounters_ext(pmp, ibdev, port);
4660 ret = reply((struct ib_mad_hdr *)pmp);
4663 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4664 ret = reply((struct ib_mad_hdr *)pmp);
4670 if (pmp->mad_hdr.attr_id) {
4671 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4672 ret = reply((struct ib_mad_hdr *)pmp);
4687 pmp->mad_hdr.status |= IB_SMP_UNSUP_METHOD;
4688 ret = reply((struct ib_mad_hdr *)pmp);
4699 struct opa_pma_mad *pmp = (struct opa_pma_mad *)out_mad;
4704 if (pmp->mad_hdr.class_version != OPA_SM_CLASS_VERSION) {
4705 pmp->mad_hdr.status |= IB_SMP_UNSUP_VERSION;
4706 return reply((struct ib_mad_hdr *)pmp);
4709 *resp_len = sizeof(pmp->mad_hdr);
4711 switch (pmp->mad_hdr.method) {
4713 switch (pmp->mad_hdr.attr_id) {
4715 ret = pma_get_opa_classportinfo(pmp, ibdev, resp_len);
4718 ret = pma_get_opa_portstatus(pmp, ibdev, port,
4722 ret = pma_get_opa_datacounters(pmp, ibdev, port,
4726 ret = pma_get_opa_porterrors(pmp, ibdev, port,
4730 ret = pma_get_opa_errorinfo(pmp, ibdev, port,
4734 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4735 ret = reply((struct ib_mad_hdr *)pmp);
4741 switch (pmp->mad_hdr.attr_id) {
4743 ret = pma_set_opa_portstatus(pmp, ibdev, port,
4747 ret = pma_set_opa_errorinfo(pmp, ibdev, port,
4751 pmp->mad_hdr.status |= IB_SMP_UNSUP_METH_ATTR;
4752 ret = reply((struct ib_mad_hdr *)pmp);
4768 pmp->mad_hdr.status |= IB_SMP_UNSUP_METHOD;
4769 ret = reply((struct ib_mad_hdr *)pmp);