diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-04-18 20:07:04 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-05-20 00:43:04 -0400 |
commit | 2781c928b1b3d5d56d72b4955e19c0d963e2c22e (patch) | |
tree | 44600ab10107e3d4acef37f0f53c4e0aa35fb1a9 | |
parent | d07a97e939cd1e257d833758c43dd5b7ffd7ba44 (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.c | 4 |
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; |