.. | .. |
---|
549 | 549 | */ |
---|
550 | 550 | static int srpt_refresh_port(struct srpt_port *sport) |
---|
551 | 551 | { |
---|
| 552 | + struct ib_mad_agent *mad_agent; |
---|
552 | 553 | struct ib_mad_reg_req reg_req; |
---|
553 | 554 | struct ib_port_modify port_modify; |
---|
554 | 555 | struct ib_port_attr port_attr; |
---|
.. | .. |
---|
593 | 594 | set_bit(IB_MGMT_METHOD_GET, reg_req.method_mask); |
---|
594 | 595 | set_bit(IB_MGMT_METHOD_SET, reg_req.method_mask); |
---|
595 | 596 | |
---|
596 | | - sport->mad_agent = ib_register_mad_agent(sport->sdev->device, |
---|
597 | | - sport->port, |
---|
598 | | - IB_QPT_GSI, |
---|
599 | | - ®_req, 0, |
---|
600 | | - srpt_mad_send_handler, |
---|
601 | | - srpt_mad_recv_handler, |
---|
602 | | - sport, 0); |
---|
603 | | - if (IS_ERR(sport->mad_agent)) { |
---|
| 597 | + mad_agent = ib_register_mad_agent(sport->sdev->device, |
---|
| 598 | + sport->port, |
---|
| 599 | + IB_QPT_GSI, |
---|
| 600 | + ®_req, 0, |
---|
| 601 | + srpt_mad_send_handler, |
---|
| 602 | + srpt_mad_recv_handler, |
---|
| 603 | + sport, 0); |
---|
| 604 | + if (IS_ERR(mad_agent)) { |
---|
604 | 605 | pr_err("%s-%d: MAD agent registration failed (%ld). Note: this is expected if SR-IOV is enabled.\n", |
---|
605 | 606 | dev_name(&sport->sdev->device->dev), sport->port, |
---|
606 | | - PTR_ERR(sport->mad_agent)); |
---|
| 607 | + PTR_ERR(mad_agent)); |
---|
607 | 608 | sport->mad_agent = NULL; |
---|
608 | 609 | memset(&port_modify, 0, sizeof(port_modify)); |
---|
609 | 610 | port_modify.clr_port_cap_mask = IB_PORT_DEVICE_MGMT_SUP; |
---|
610 | 611 | ib_modify_port(sport->sdev->device, sport->port, 0, |
---|
611 | 612 | &port_modify); |
---|
612 | | - |
---|
| 613 | + return 0; |
---|
613 | 614 | } |
---|
| 615 | + |
---|
| 616 | + sport->mad_agent = mad_agent; |
---|
614 | 617 | } |
---|
615 | 618 | |
---|
616 | 619 | return 0; |
---|