diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2017-04-04 22:00:47 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-04-05 12:30:44 +1000 |
commit | dc7017742bb5943d3302f075bb99b27bb26ba541 (patch) | |
tree | ad2a666216872482321941363865c848f3cb8873 /hw | |
parent | 036d2e8d4f90e7828177f37ce330768370b0e845 (diff) | |
download | skiboot-dc7017742bb5943d3302f075bb99b27bb26ba541.zip skiboot-dc7017742bb5943d3302f075bb99b27bb26ba541.tar.gz skiboot-dc7017742bb5943d3302f075bb99b27bb26ba541.tar.bz2 |
xive: Fix setting of remote NVT VSD
Unlike the other remote VSDs, the NVT one needs a valid size field
that represents the size of the remote PC BAR. Without this, multi
chip machines may checkstop when a processor pool or OS CAM gets
attached to a VP on a different chip.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/xive.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -1854,8 +1854,10 @@ static void xive_setup_forward_ports(struct xive *x, struct proc_chip *remote_ch /* NVT/VPD points to the remote NVT MMIO sets */ if (!xive_set_vsd(x, VST_TSEL_VPDT, remote_id, - base | (uint64_t)remote_xive->pc_base)) + base | ((uint64_t)remote_xive->pc_base) | + SETFIELD(VSD_TSIZE, 0ull, ilog2(PC_BAR_SIZE) - 12))) goto error; + return; error: |