Commit f3718a81 authored by Linus Torvalds's avatar Linus Torvalds

Revert "nouveau/bios: Fix tracking of BIOS image data"

This reverts commit d06221c0.

It turns out to trigger the "BUG_ON(!PageCompound(page))" in kfree(),
apparently because the code ends up trying to free somethng that was
never kmalloced in the first place.

BenH points out that the patch was untested and wasn't meant to go into
the upstream kernel that quickly in the first place.

Backtrace:
  bios_shadow
  bios_shadow_prom
  nv_mask
  init_io
  bios_shadow
  nouveau_bios_init
  NVReadVgaCrtc
  NVSetOwner
  nouveau_card_init
  nouveau_load
Reported-by: default avatarMeelis Roos <mroos@linux.ee>
Requested-by: default avatarDave Airlie <airlied@gmail.com>
Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 01627d96
...@@ -273,7 +273,6 @@ bios_shadow(struct drm_device *dev) ...@@ -273,7 +273,6 @@ bios_shadow(struct drm_device *dev)
mthd->score = score_vbios(bios, mthd->rw); mthd->score = score_vbios(bios, mthd->rw);
mthd->size = bios->length; mthd->size = bios->length;
mthd->data = bios->data; mthd->data = bios->data;
bios->data = NULL;
} while (mthd->score != 3 && (++mthd)->shadow); } while (mthd->score != 3 && (++mthd)->shadow);
mthd = shadow_methods; mthd = shadow_methods;
...@@ -282,8 +281,7 @@ bios_shadow(struct drm_device *dev) ...@@ -282,8 +281,7 @@ bios_shadow(struct drm_device *dev)
if (mthd->score > best->score) { if (mthd->score > best->score) {
kfree(best->data); kfree(best->data);
best = mthd; best = mthd;
} else }
kfree(mthd->data);
} while ((++mthd)->shadow); } while ((++mthd)->shadow);
if (best->score) { if (best->score) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment