diff options
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_wc_x86_64.c')
| -rw-r--r-- | drivers/infiniband/hw/qib/qib_wc_x86_64.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/qib/qib_wc_x86_64.c b/drivers/infiniband/hw/qib/qib_wc_x86_64.c index 1d7281c5a02e..81b225f2300a 100644 --- a/drivers/infiniband/hw/qib/qib_wc_x86_64.c +++ b/drivers/infiniband/hw/qib/qib_wc_x86_64.c | |||
| @@ -72,6 +72,7 @@ int qib_enable_wc(struct qib_devdata *dd) | |||
| 72 | if (dd->piobcnt2k && dd->piobcnt4k) { | 72 | if (dd->piobcnt2k && dd->piobcnt4k) { |
| 73 | /* 2 sizes for chip */ | 73 | /* 2 sizes for chip */ |
| 74 | unsigned long pio2kbase, pio4kbase; | 74 | unsigned long pio2kbase, pio4kbase; |
| 75 | |||
| 75 | pio2kbase = dd->piobufbase & 0xffffffffUL; | 76 | pio2kbase = dd->piobufbase & 0xffffffffUL; |
| 76 | pio4kbase = (dd->piobufbase >> 32) & 0xffffffffUL; | 77 | pio4kbase = (dd->piobufbase >> 32) & 0xffffffffUL; |
| 77 | if (pio2kbase < pio4kbase) { | 78 | if (pio2kbase < pio4kbase) { |
| @@ -91,7 +92,7 @@ int qib_enable_wc(struct qib_devdata *dd) | |||
| 91 | } | 92 | } |
| 92 | 93 | ||
| 93 | for (bits = 0; !(piolen & (1ULL << bits)); bits++) | 94 | for (bits = 0; !(piolen & (1ULL << bits)); bits++) |
| 94 | /* do nothing */ ; | 95 | ; /* do nothing */ |
| 95 | 96 | ||
| 96 | if (piolen != (1ULL << bits)) { | 97 | if (piolen != (1ULL << bits)) { |
| 97 | piolen >>= bits; | 98 | piolen >>= bits; |
| @@ -100,8 +101,8 @@ int qib_enable_wc(struct qib_devdata *dd) | |||
| 100 | piolen = 1ULL << (bits + 1); | 101 | piolen = 1ULL << (bits + 1); |
| 101 | } | 102 | } |
| 102 | if (pioaddr & (piolen - 1)) { | 103 | if (pioaddr & (piolen - 1)) { |
| 103 | u64 atmp; | 104 | u64 atmp = pioaddr & ~(piolen - 1); |
| 104 | atmp = pioaddr & ~(piolen - 1); | 105 | |
| 105 | if (atmp < addr || (atmp + piolen) > (addr + len)) { | 106 | if (atmp < addr || (atmp + piolen) > (addr + len)) { |
| 106 | qib_dev_err(dd, | 107 | qib_dev_err(dd, |
| 107 | "No way to align address/size (%llx/%llx), no WC mtrr\n", | 108 | "No way to align address/size (%llx/%llx), no WC mtrr\n", |
