[infiniband] Pass a generic MAD to ib_set_port_info()
This commit is contained in:
parent
0095e18d4c
commit
ea6eb7f7ed
|
@ -242,11 +242,11 @@ static void linda_link_state_changed ( struct ib_device *ibdev ) {
|
||||||
* Set port information
|
* Set port information
|
||||||
*
|
*
|
||||||
* @v ibdev Infiniband device
|
* @v ibdev Infiniband device
|
||||||
* @v port_info New port information
|
* @v mad Set port information MAD
|
||||||
*/
|
*/
|
||||||
static int linda_set_port_info ( struct ib_device *ibdev,
|
static int linda_set_port_info ( struct ib_device *ibdev, union ib_mad *mad ) {
|
||||||
const struct ib_port_info *port_info ) {
|
|
||||||
struct linda *linda = ib_get_drvdata ( ibdev );
|
struct linda *linda = ib_get_drvdata ( ibdev );
|
||||||
|
struct ib_port_info *port_info = &mad->smp.smp_data.port_info;
|
||||||
struct QIB_7220_IBCCtrl ibcctrl;
|
struct QIB_7220_IBCCtrl ibcctrl;
|
||||||
unsigned int port_state;
|
unsigned int port_state;
|
||||||
unsigned int link_state;
|
unsigned int link_state;
|
||||||
|
|
|
@ -346,13 +346,12 @@ struct ib_device_operations {
|
||||||
/** Set port information
|
/** Set port information
|
||||||
*
|
*
|
||||||
* @v ibdev Infiniband device
|
* @v ibdev Infiniband device
|
||||||
* @v port_info New port information
|
* @v mad Set port information MAD
|
||||||
*
|
*
|
||||||
* This method is required only by adapters that do not have
|
* This method is required only by adapters that do not have
|
||||||
* an embedded SMA.
|
* an embedded SMA.
|
||||||
*/
|
*/
|
||||||
int ( * set_port_info ) ( struct ib_device *ibdev,
|
int ( * set_port_info ) ( struct ib_device *ibdev, union ib_mad *mad );
|
||||||
const struct ib_port_info *port_info );
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** An Infiniband device */
|
/** An Infiniband device */
|
||||||
|
@ -457,8 +456,7 @@ extern void ib_mcast_detach ( struct ib_device *ibdev,
|
||||||
struct ib_queue_pair *qp, struct ib_gid *gid );
|
struct ib_queue_pair *qp, struct ib_gid *gid );
|
||||||
extern int ib_get_hca_info ( struct ib_device *ibdev,
|
extern int ib_get_hca_info ( struct ib_device *ibdev,
|
||||||
struct ib_gid_half *hca_guid );
|
struct ib_gid_half *hca_guid );
|
||||||
extern int ib_set_port_info ( struct ib_device *ibdev,
|
extern int ib_set_port_info ( struct ib_device *ibdev, union ib_mad *mad );
|
||||||
const struct ib_port_info *port_info );
|
|
||||||
extern struct ib_device * alloc_ibdev ( size_t priv_size );
|
extern struct ib_device * alloc_ibdev ( size_t priv_size );
|
||||||
extern int register_ibdev ( struct ib_device *ibdev );
|
extern int register_ibdev ( struct ib_device *ibdev );
|
||||||
extern void unregister_ibdev ( struct ib_device *ibdev );
|
extern void unregister_ibdev ( struct ib_device *ibdev );
|
||||||
|
|
|
@ -687,13 +687,13 @@ int ib_get_hca_info ( struct ib_device *ibdev,
|
||||||
return num_ports;
|
return num_ports;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set port information
|
/**
|
||||||
|
* Set port information
|
||||||
*
|
*
|
||||||
* @v ibdev Infiniband device
|
* @v ibdev Infiniband device
|
||||||
* @v port_info New port information
|
* @v mad Set port information MAD
|
||||||
*/
|
*/
|
||||||
int ib_set_port_info ( struct ib_device *ibdev,
|
int ib_set_port_info ( struct ib_device *ibdev, union ib_mad *mad ) {
|
||||||
const struct ib_port_info *port_info ) {
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
/* Adapters with embedded SMAs do not need to support this method */
|
/* Adapters with embedded SMAs do not need to support this method */
|
||||||
|
@ -703,7 +703,7 @@ int ib_set_port_info ( struct ib_device *ibdev,
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ( rc = ibdev->op->set_port_info ( ibdev, port_info ) ) != 0 ) {
|
if ( ( rc = ibdev->op->set_port_info ( ibdev, mad ) ) != 0 ) {
|
||||||
DBGC ( ibdev, "IBDEV %p could not set port information: %s\n",
|
DBGC ( ibdev, "IBDEV %p could not set port information: %s\n",
|
||||||
ibdev, strerror ( rc ) );
|
ibdev, strerror ( rc ) );
|
||||||
return rc;
|
return rc;
|
||||||
|
|
|
@ -255,7 +255,7 @@ static union ib_mad * ib_sma_set_port_info ( struct ib_gma *gma,
|
||||||
"%02x\n", gma, ibdev->lid, ibdev->sm_lid,
|
"%02x\n", gma, ibdev->lid, ibdev->sm_lid,
|
||||||
ibdev->link_width_enabled, ibdev->link_speed_enabled );
|
ibdev->link_width_enabled, ibdev->link_speed_enabled );
|
||||||
|
|
||||||
if ( ( rc = ib_set_port_info ( ibdev, port_info ) ) != 0 ) {
|
if ( ( rc = ib_set_port_info ( ibdev, mad ) ) != 0 ) {
|
||||||
DBGC ( gma, "GMA %p could not set port information: %s\n",
|
DBGC ( gma, "GMA %p could not set port information: %s\n",
|
||||||
gma, strerror ( rc ) );
|
gma, strerror ( rc ) );
|
||||||
mad->hdr.status =
|
mad->hdr.status =
|
||||||
|
|
Reference in New Issue