diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2015-11-19 04:18:34 +0100 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2015-11-25 06:31:21 +0100 |
commit | 954329412ea45ad6b509aa26f1441941fd432823 (patch) | |
tree | 154064166e6a137474bc54111e5e143e9de3911b | |
parent | drm/nouveau/instmem: protect instobj list with a spinlock (diff) | |
download | linux-954329412ea45ad6b509aa26f1441941fd432823.tar.xz linux-954329412ea45ad6b509aa26f1441941fd432823.zip |
drm/nouveau/bios: return actual size of the buffer retrieved via _ROM
Fixes detection of a failed attempt at fetching the entire ROM image
in one-shot (a violation of the spec, that works a lot of the time).
Tested on a HP Zbook 15 G2.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_acpi.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c index 8b8332e46f24..d5e6938cc6bc 100644 --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c @@ -367,6 +367,7 @@ static int nouveau_rom_call(acpi_handle rom_handle, uint8_t *bios, return -ENODEV; } obj = (union acpi_object *)buffer.pointer; + len = min(len, (int)obj->buffer.length); memcpy(bios+offset, obj->buffer.pointer, len); kfree(buffer.pointer); return len; |