mirror of
https://github.com/ipxe/ipxe
synced 2025-12-20 03:55:46 +03:00
[infiniband] Allow queue pairs to have a custom allocator for receive iobufs
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -3128,6 +3128,11 @@ static int hermon_eth_transmit ( struct net_device *netdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Hermon Ethernet queue pair operations */
|
||||
static struct ib_queue_pair_operations hermon_eth_qp_op = {
|
||||
.alloc_iob = alloc_iob,
|
||||
};
|
||||
|
||||
/**
|
||||
* Handle Hermon Ethernet device send completion
|
||||
*
|
||||
@@ -3225,7 +3230,8 @@ static int hermon_eth_open ( struct net_device *netdev ) {
|
||||
/* Allocate queue pair */
|
||||
port->eth_qp = ib_create_qp ( ibdev, IB_QPT_ETH,
|
||||
HERMON_ETH_NUM_SEND_WQES, port->eth_cq,
|
||||
HERMON_ETH_NUM_RECV_WQES, port->eth_cq );
|
||||
HERMON_ETH_NUM_RECV_WQES, port->eth_cq,
|
||||
&hermon_eth_qp_op );
|
||||
if ( ! port->eth_qp ) {
|
||||
DBGC ( hermon, "Hermon %p port %d could not create queue "
|
||||
"pair\n", hermon, ibdev->port );
|
||||
|
||||
@@ -534,6 +534,11 @@ static struct ib_completion_queue_operations ipoib_cq_op = {
|
||||
.complete_recv = ipoib_complete_recv,
|
||||
};
|
||||
|
||||
/** IPoIB queue pair operations */
|
||||
static struct ib_queue_pair_operations ipoib_qp_op = {
|
||||
.alloc_iob = alloc_iob,
|
||||
};
|
||||
|
||||
/**
|
||||
* Poll IPoIB network device
|
||||
*
|
||||
@@ -667,9 +672,9 @@ static int ipoib_open ( struct net_device *netdev ) {
|
||||
}
|
||||
|
||||
/* Allocate queue pair */
|
||||
ipoib->qp = ib_create_qp ( ibdev, IB_QPT_UD,
|
||||
IPOIB_NUM_SEND_WQES, ipoib->cq,
|
||||
IPOIB_NUM_RECV_WQES, ipoib->cq );
|
||||
ipoib->qp = ib_create_qp ( ibdev, IB_QPT_UD, IPOIB_NUM_SEND_WQES,
|
||||
ipoib->cq, IPOIB_NUM_RECV_WQES, ipoib->cq,
|
||||
&ipoib_qp_op );
|
||||
if ( ! ipoib->qp ) {
|
||||
DBGC ( ipoib, "IPoIB %p could not allocate queue pair\n",
|
||||
ipoib );
|
||||
|
||||
Reference in New Issue
Block a user