summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2017-04-11 08:25:22 +1000
committerBen Skeggs <bskeggs@redhat.com>2017-04-29 22:39:23 +1000
commita7cb78bab3671dbad08e5b2f5fd83a6dbda90fe5 (patch)
treef744107295dfc8a9841f835b838b420992b8bae8 /drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c
parenteef4988ab4c1a99e88e535502a67763a78d51515 (diff)
downloadop-kernel-dev-a7cb78bab3671dbad08e5b2f5fd83a6dbda90fe5.zip
op-kernel-dev-a7cb78bab3671dbad08e5b2f5fd83a6dbda90fe5.tar.gz
drm/nouveau/bios/bitP: check that table is long enough for optional pointers
Fixes OOB VBIOS accesses on some boards. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c
index 617bfff..03d2f97 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/power_budget.c
@@ -33,7 +33,7 @@ nvbios_power_budget_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt,
u32 power_budget;
if (bit_entry(bios, 'P', &bit_P) || bit_P.version != 2 ||
- bit_P.length < 0x2c)
+ bit_P.length < 0x30)
return 0;
power_budget = nvbios_rd32(bios, bit_P.offset + 0x2c);
OpenPOWER on IntegriCloud