summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/net/mlx_ipoib/mt25218.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/drivers/net/mlx_ipoib/mt25218.c b/src/drivers/net/mlx_ipoib/mt25218.c
index 17a68c88..810a479a 100644
--- a/src/drivers/net/mlx_ipoib/mt25218.c
+++ b/src/drivers/net/mlx_ipoib/mt25218.c
@@ -27,7 +27,6 @@ struct mlx_nic {
#include "mt_version.c"
#include "mt25218_imp.c"
-/* NIC specific static variables go here */
int prompt_key(int secs, unsigned char *ch_p)
{
@@ -265,12 +264,31 @@ static void mlx_rx_complete ( struct net_device *netdev,
* @v netdev Network device
* @v cq Completion queue
*/
-static void mlx_poll_cq ( struct net_device *netdev, cq_t cq ) {
+static void mlx_poll_cq ( struct net_device *netdev,
+ struct cq_st *cq ) {
struct mlx_nic *mlx = netdev->priv;
struct ib_cqe_st cqe;
uint8_t num_cqes;
while ( 1 ) {
+
+ unsigned long cons_idx;
+ union cqe_st *temp;
+
+ cons_idx = ( cq->cons_counter & ( cq->num_cqes - 1 ) );
+ temp = &cq->cq_buf[cons_idx];
+ if ( EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st,
+ owner ) == 0 ) {
+ DBG ( "software owned\n" );
+ DBGC_HD ( mlx, temp, sizeof ( *temp ) );
+ DBG ( "my_qpn=%lx, g=%ld, s=%ld, op=%02lx, cnt=%lx\n",
+ EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, my_qpn ),
+ EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, g ),
+ EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, s ),
+ EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, opcode ),
+ EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, byte_cnt ) );
+ }
+
/* Poll for single completion queue entry */
ib_poll_cq ( cq, &cqe, &num_cqes );
@@ -312,6 +330,7 @@ static void mlx_poll ( struct net_device *netdev ) {
return;
}
+ // mlx_poll_cq ( netdev, ipoib_data.snd_cqh );
mlx_poll_cq ( netdev, ipoib_data.rcv_cqh );
}