david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[infiniband] Pass a generic MAD to ib_set_port_info()

This commit is contained in:
Michael Brown 2009-07-17 22:40:12 +01:00
parent 0095e18d4c
commit ea6eb7f7ed
4 changed files with 12 additions and 14 deletions

View File

@ -242,11 +242,11 @@ static void linda_link_state_changed ( struct ib_device *ibdev ) {
* Set port information
*
* @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,
const struct ib_port_info *port_info ) {
static int linda_set_port_info ( struct ib_device *ibdev, union ib_mad *mad ) {
struct linda *linda = ib_get_drvdata ( ibdev );
struct ib_port_info *port_info = &mad->smp.smp_data.port_info;
struct QIB_7220_IBCCtrl ibcctrl;
unsigned int port_state;
unsigned int link_state;

View File

@ -346,13 +346,12 @@ struct ib_device_operations {
/** Set port information
*
* @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
* an embedded SMA.
*/
int ( * set_port_info ) ( struct ib_device *ibdev,
const struct ib_port_info *port_info );
int ( * set_port_info ) ( struct ib_device *ibdev, union ib_mad *mad );
};
/** 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 );
extern int ib_get_hca_info ( struct ib_device *ibdev,
struct ib_gid_half *hca_guid );
extern int ib_set_port_info ( struct ib_device *ibdev,
const struct ib_port_info *port_info );
extern int ib_set_port_info ( struct ib_device *ibdev, union ib_mad *mad );
extern struct ib_device * alloc_ibdev ( size_t priv_size );
extern int register_ibdev ( struct ib_device *ibdev );
extern void unregister_ibdev ( struct ib_device *ibdev );

View File

@ -687,13 +687,13 @@ int ib_get_hca_info ( struct ib_device *ibdev,
return num_ports;
}
/** Set port information
/**
* Set port information
*
* @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,
const struct ib_port_info *port_info ) {
int ib_set_port_info ( struct ib_device *ibdev, union ib_mad *mad ) {
int rc;
/* 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;
}
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",
ibdev, strerror ( rc ) );
return rc;

View File

@ -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,
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",
gma, strerror ( rc ) );
mad->hdr.status =