diff options
-rw-r--r-- | drivers/ntb/ntb_transport.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index cd9745b062e4..583a7d3f0ce1 100644 --- a/drivers/ntb/ntb_transport.c +++ b/drivers/ntb/ntb_transport.c | |||
@@ -1034,11 +1034,16 @@ out: | |||
1034 | static void ntb_transport_rx(unsigned long data) | 1034 | static void ntb_transport_rx(unsigned long data) |
1035 | { | 1035 | { |
1036 | struct ntb_transport_qp *qp = (struct ntb_transport_qp *)data; | 1036 | struct ntb_transport_qp *qp = (struct ntb_transport_qp *)data; |
1037 | int rc; | 1037 | int rc, i; |
1038 | 1038 | ||
1039 | do { | 1039 | /* Limit the number of packets processed in a single interrupt to |
1040 | * provide fairness to others | ||
1041 | */ | ||
1042 | for (i = 0; i < qp->rx_max_entry; i++) { | ||
1040 | rc = ntb_process_rxc(qp); | 1043 | rc = ntb_process_rxc(qp); |
1041 | } while (!rc); | 1044 | if (rc) |
1045 | break; | ||
1046 | } | ||
1042 | } | 1047 | } |
1043 | 1048 | ||
1044 | static void ntb_transport_rxc_db(void *data, int db_num) | 1049 | static void ntb_transport_rxc_db(void *data, int db_num) |