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 * 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;

View File

@ -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 );

View File

@ -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;

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, "%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 =