mirror of https://gitee.com/openkylin/linux.git
drm/nouveau/bios: add more checks to PRAMIN image fetching
Prevents an attempt to access VRAM on an un-posted board, which, on a particular system with a GRID K1 installed, causes a MCE and chokes the entire system. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
420b946977
commit
457e77b264
|
@ -99,7 +99,17 @@ nouveau_bios_shadow_pramin(struct nouveau_bios *bios)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr = (u64)(nv_rd32(bios, 0x619f04) & 0xffffff00) << 8;
|
addr = nv_rd32(bios, 0x619f04);
|
||||||
|
if (!(addr & 0x00000008)) {
|
||||||
|
nv_debug(bios, "... not enabled\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ( (addr & 0x00000003) != 1) {
|
||||||
|
nv_debug(bios, "... not in vram\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
addr = (u64)(addr >> 8) << 8;
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
addr = (u64)nv_rd32(bios, 0x001700) << 16;
|
addr = (u64)nv_rd32(bios, 0x001700) << 16;
|
||||||
addr += 0xf0000;
|
addr += 0xf0000;
|
||||||
|
|
Loading…
Reference in New Issue