diff options
author | Ralph Campbell <ralph.campbell@qlogic.com> | 2010-08-02 18:39:24 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2010-08-03 16:59:25 -0400 |
commit | 3e3aed0b88f680fed5c604caf7b10d77b2ec45c4 (patch) | |
tree | 54213dba31eceaeb9990583030fb715d5795f000 /drivers/infiniband | |
parent | 4c6931f5d4f423238ae6e93423081c6ff9753d26 (diff) |
IB/qib: Limit the number of packets processed per interrupt
Don't processes too many packets without allowing other IRQ functions
a chance to run. Otherwise, there is a chance of getting a "soft
lockup" messages and poor application response times.
Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_driver.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/qib/qib_driver.c b/drivers/infiniband/hw/qib/qib_driver.c index f15ce076ac49..9cd193603fb1 100644 --- a/drivers/infiniband/hw/qib/qib_driver.c +++ b/drivers/infiniband/hw/qib/qib_driver.c | |||
@@ -335,7 +335,7 @@ u32 qib_kreceive(struct qib_ctxtdata *rcd, u32 *llic, u32 *npkts) | |||
335 | smp_rmb(); /* prevent speculative reads of dma'ed hdrq */ | 335 | smp_rmb(); /* prevent speculative reads of dma'ed hdrq */ |
336 | } | 336 | } |
337 | 337 | ||
338 | for (last = 0, i = 1; !last; i += !last) { | 338 | for (last = 0, i = 1; !last && i <= 64; i += !last) { |
339 | hdr = dd->f_get_msgheader(dd, rhf_addr); | 339 | hdr = dd->f_get_msgheader(dd, rhf_addr); |
340 | eflags = qib_hdrget_err_flags(rhf_addr); | 340 | eflags = qib_hdrget_err_flags(rhf_addr); |
341 | etype = qib_hdrget_rcv_type(rhf_addr); | 341 | etype = qib_hdrget_rcv_type(rhf_addr); |