++cq->mcq.cons_index;
                index = (cq->mcq.cons_index) & ring->size_mask;
-               cqe = &cq->buf[index];
+               cqe = &cq->buf[(index << factor) + factor];
 -              if (++polled == budget) {
 -                      /* We are here because we reached the NAPI budget -
 -                       * flush only pending LRO sessions */
 +              if (++polled == budget)
                        goto out;
 -              }
        }
  
  out:
 
                                         " Not in use with device managed"
                                         " flow steering");
  
+ static bool enable_64b_cqe_eqe;
+ module_param(enable_64b_cqe_eqe, bool, 0444);
+ MODULE_PARM_DESC(enable_64b_cqe_eqe,
+                "Enable 64 byte CQEs/EQEs when the the FW supports this");
+ 
  #define HCA_GLOBAL_CAP_MASK            0
- #define PF_CONTEXT_BEHAVIOUR_MASK      0
+ 
+ #define PF_CONTEXT_BEHAVIOUR_MASK     MLX4_FUNC_CAP_64B_EQE_CQE
  
 -static char mlx4_version[] __devinitdata =
 +static char mlx4_version[] =
        DRV_NAME ": Mellanox ConnectX core driver v"
        DRV_VERSION " (" DRV_RELDATE ")\n";