lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <55006F6E.5050308@odi.ch>
Date:	Wed, 11 Mar 2015 17:38:06 +0100
From:	Ortwin Glück <odi@....ch>
To:	"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
	Ben Skeggs <bskeggs@...hat.com>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: [RESEND] nouveau regression 3.19: unable to load BIOS from ACPI

Hi Ben,

Since 3.19 the NV BIOS can no longer be loaded via ACPI. This breaks my HP laptop.
Looking at the recent changes (ad4a3626 split out shadow methods) in the bios shadow code, I think 
this happens:

- nvbios_shadow loops over all possible bios sources
- shadow_method
- shadow_score
- shadow_image tries to validate the image contents *before* loading it via ACPI calls
- nvbios_imagen calls nv_ro16 on the bios object which tries to read 16 bytes directly from memory.

Before the change, the code was:
-  mthd->shadow(bios);
-  which for ACPI calls nouveau_bios_shadow_acpi which doesn't try to validate the image
   mthd->score = nouveau_bios_score(bios, mthd->rw); which validates the image

So shadowing always happened *before* trying to look at the bios data.

The relevant log is below.

Ortwin

3.18:
Feb 15 11:28:50 localhost kernel: nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0e63c0a1
Feb 15 11:28:50 localhost kernel: nouveau  [  DEVICE][0000:01:00.0] Chipset: GK106 (NVE6)
Feb 15 11:28:50 localhost kernel: nouveau  [  DEVICE][0000:01:00.0] Family : NVE0
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] ... signature not found
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking PROM for image...
Feb 15 11:28:50 localhost kernel: fbcon: inteldrmfb (fb0) is primary device
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] ... signature not found
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking ACPI for image...
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] using image from ACPI
Feb 15 11:28:50 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] BIT signature found


3.19:
Feb 15 11:30:40 localhost kernel: VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.PEGP.DGFX 
handle
Feb 15 11:30:40 localhost kernel: nouveau 0000:01:00.0: enabling device (0004 -> 0007)
Feb 15 11:30:40 localhost kernel: nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0e63c0a1
Feb 15 11:30:40 localhost kernel: nouveau  [  DEVICE][0000:01:00.0] Chipset: GK106 (NVE6)
Feb 15 11:30:40 localhost kernel: nouveau  [  DEVICE][0000:01:00.0] Family : NVE0
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying ACPI...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: type 00, 65536 bytes
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: fetch failed
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] scored 0
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying ACPI...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: type 00, 65536 bytes
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: fetch failed
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] scored 0
Feb 15 11:30:40 localhost kernel: nouveau E[   VBIOS][0000:01:00.0] ACPI invalid
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking (null) for image...
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying PRAMIN...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] ... not enabled
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking PROM for image...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying PROM...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: ROM signature (ffff) 
unknown
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] image 0 invalid
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] scored 0
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking ACPI for image...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying ACPI...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: type 00, 65536 bytes
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: fetch failed
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] scored 0
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking ACPI for image...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying ACPI...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: type 00, 65536 bytes
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: fetch failed
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] scored 0
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking PCIROM for image...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying PCIROM...
Feb 15 11:30:40 localhost kernel: nouveau 0000:01:00.0: Invalid ROM contents
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] 00000000: ROM signature (0000) 
unknown
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] image 0 invalid
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] scored 0
Feb 15 11:30:40 localhost kernel: nouveau  [   VBIOS][0000:01:00.0] checking PLATFORM for image...
Feb 15 11:30:40 localhost kernel: nouveau D[   VBIOS][0000:01:00.0] trying PLATFORM...
Feb 15 11:30:40 localhost kernel: nouveau ![   VBIOS][0000:01:00.0] unable to locate usable image
Feb 15 11:30:40 localhost kernel: nouveau E[  DEVICE][0000:01:00.0] failed to create 0x10000001, -22
Feb 15 11:30:40 localhost kernel: nouveau E[     DRM] failed to create 0x00000080, -22
Feb 15 11:30:40 localhost kernel: nouveau: probe of 0000:01:00.0 failed with error -22
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ