aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/qib/qib_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_init.c')
-rw-r--r--drivers/infiniband/hw/qib/qib_init.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/qib/qib_init.c b/drivers/infiniband/hw/qib/qib_init.c
index a01f3fce8eb3..58b0f8ad4a29 100644
--- a/drivers/infiniband/hw/qib/qib_init.c
+++ b/drivers/infiniband/hw/qib/qib_init.c
@@ -37,6 +37,7 @@
37#include <linux/vmalloc.h> 37#include <linux/vmalloc.h>
38#include <linux/delay.h> 38#include <linux/delay.h>
39#include <linux/idr.h> 39#include <linux/idr.h>
40#include <linux/module.h>
40 41
41#include "qib.h" 42#include "qib.h"
42#include "qib_common.h" 43#include "qib_common.h"
@@ -183,6 +184,9 @@ struct qib_ctxtdata *qib_create_ctxtdata(struct qib_pportdata *ppd, u32 ctxt)
183 rcd->rcvegrbuf_chunks = (rcd->rcvegrcnt + 184 rcd->rcvegrbuf_chunks = (rcd->rcvegrcnt +
184 rcd->rcvegrbufs_perchunk - 1) / 185 rcd->rcvegrbufs_perchunk - 1) /
185 rcd->rcvegrbufs_perchunk; 186 rcd->rcvegrbufs_perchunk;
187 BUG_ON(!is_power_of_2(rcd->rcvegrbufs_perchunk));
188 rcd->rcvegrbufs_perchunk_shift =
189 ilog2(rcd->rcvegrbufs_perchunk);
186 } 190 }
187 return rcd; 191 return rcd;
188} 192}
@@ -398,6 +402,7 @@ static void enable_chip(struct qib_devdata *dd)
398 if (rcd) 402 if (rcd)
399 dd->f_rcvctrl(rcd->ppd, rcvmask, i); 403 dd->f_rcvctrl(rcd->ppd, rcvmask, i);
400 } 404 }
405 dd->freectxts = dd->cfgctxts - dd->first_user_ctxt;
401} 406}
402 407
403static void verify_interrupt(unsigned long opaque) 408static void verify_interrupt(unsigned long opaque)
@@ -581,10 +586,6 @@ int qib_init(struct qib_devdata *dd, int reinit)
581 continue; 586 continue;
582 } 587 }
583 588
584 /* let link come up, and enable IBC */
585 spin_lock_irqsave(&ppd->lflags_lock, flags);
586 ppd->lflags &= ~QIBL_IB_LINK_DISABLED;
587 spin_unlock_irqrestore(&ppd->lflags_lock, flags);
588 portok++; 589 portok++;
589 } 590 }
590 591