|
@@ -360,8 +360,8 @@ struct arbel_recv_work_queue {
|
360
|
360
|
*/
|
361
|
361
|
#define ARBEL_MAX_QPS 8
|
362
|
362
|
|
363
|
|
-/** Base queue pair number */
|
364
|
|
-#define ARBEL_QPN_BASE 0x550000
|
|
363
|
+/** Queue pair number randomisation mask */
|
|
364
|
+#define ARBEL_QPN_RANDOM_MASK 0xfff000
|
365
|
365
|
|
366
|
366
|
/** An Arbel queue pair */
|
367
|
367
|
struct arbel_queue_pair {
|
|
@@ -564,7 +564,9 @@ arbel_cq_arm_doorbell_idx ( struct arbel *arbel,
|
564
|
564
|
*/
|
565
|
565
|
static inline unsigned int
|
566
|
566
|
arbel_send_doorbell_idx ( struct arbel *arbel, struct ib_queue_pair *qp ) {
|
567
|
|
- return ( ARBEL_MAX_CQS + ( qp->qpn - arbel->special_qpn_base ) );
|
|
567
|
+ return ( ARBEL_MAX_CQS +
|
|
568
|
+ ( ( qp->qpn & ~ARBEL_QPN_RANDOM_MASK ) -
|
|
569
|
+ arbel->special_qpn_base ) );
|
568
|
570
|
}
|
569
|
571
|
|
570
|
572
|
/**
|
|
@@ -577,7 +579,8 @@ arbel_send_doorbell_idx ( struct arbel *arbel, struct ib_queue_pair *qp ) {
|
577
|
579
|
static inline unsigned int
|
578
|
580
|
arbel_recv_doorbell_idx ( struct arbel *arbel, struct ib_queue_pair *qp ) {
|
579
|
581
|
return ( ARBEL_MAX_DOORBELL_RECORDS - ARBEL_MAX_CQS -
|
580
|
|
- ( qp->qpn - arbel->special_qpn_base ) - 1 );
|
|
582
|
+ ( ( qp->qpn & ~ARBEL_QPN_RANDOM_MASK ) -
|
|
583
|
+ arbel->special_qpn_base ) - 1 );
|
581
|
584
|
}
|
582
|
585
|
|
583
|
586
|
/**
|