aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-04-18 20:07:04 -0400
committerBen Skeggs <bskeggs@redhat.com>2016-05-20 00:43:04 -0400
commit2781c928b1b3d5d56d72b4955e19c0d963e2c22e (patch)
tree44600ab10107e3d4acef37f0f53c4e0aa35fb1a9
parentd07a97e939cd1e257d833758c43dd5b7ffd7ba44 (diff)
drm/nouveau/bios/pll: prevent oops when limits table can't be parsed
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c
index 125ec2ed6c2e..4cd3d6502e20 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/pll.c
@@ -156,7 +156,7 @@ pll_map_reg(struct nvkm_bios *bios, u32 reg, u32 *type, u8 *ver, u8 *len)
156 } 156 }
157 157
158 map = pll_map(bios); 158 map = pll_map(bios);
159 while (map->reg) { 159 while (map && map->reg) {
160 if (map->reg == reg && *ver >= 0x20) { 160 if (map->reg == reg && *ver >= 0x20) {
161 u16 addr = (data += hdr); 161 u16 addr = (data += hdr);
162 *type = map->type; 162 *type = map->type;
@@ -198,7 +198,7 @@ pll_map_type(struct nvkm_bios *bios, u8 type, u32 *reg, u8 *ver, u8 *len)
198 } 198 }
199 199
200 map = pll_map(bios); 200 map = pll_map(bios);
201 while (map->reg) { 201 while (map && map->reg) {
202 if (map->type == type && *ver >= 0x20) { 202 if (map->type == type && *ver >= 0x20) {
203 u16 addr = (data += hdr); 203 u16 addr = (data += hdr);
204 *reg = map->reg; 204 *reg = map->reg;