[PATCH] int10: fix pci_device_read_rom usage
Julien Cristau
jcristau at debian.org
Wed Aug 29 11:03:58 PDT 2012
From: Stephan Schreiber <info at fs-driver.org>
I noticed that the build-in int10 driver always reports
"Unable to retrieve all of segment 0x0C0000."
even though the entire BIOS data is retrieved with success.
The associated code is in hw/xfree86/int10/generic.c, in the function
xf86ExtendedInitInt10():
if (pci_device_read_rom(pInt->dev, vbiosMem) < V_BIOS_SIZE) {
xf86DrvMsg(screen, X_WARNING,
"Unable to retrieve all of segment 0x0C0000.\n");
}
The function pci_device_read_rom() is from libpciaccess; its return
value is not a size but an error status code: 0 means success.
If pci_device_read_rom() returns 0 for success, the warning is generated.
The proposed patch corrects the evaluation of the return value of
pci_device_read_rom() and of the supplied BIOS size.
Debian bug#686153
Signed-off-by: Julien Cristau <jcristau at debian.org>
---
hw/xfree86/int10/generic.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/xfree86/int10/generic.c b/hw/xfree86/int10/generic.c
index 4633120..d7594de 100644
--- a/hw/xfree86/int10/generic.c
+++ b/hw/xfree86/int10/generic.c
@@ -178,7 +178,8 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
*/
vbiosMem = (char *) base + V_BIOS;
memset(vbiosMem, 0, 2 * V_BIOS_SIZE);
- if (pci_device_read_rom(pInt->dev, vbiosMem) < V_BIOS_SIZE) {
+ if (pci_device_read_rom(pInt->dev, vbiosMem) != 0
+ || pInt->dev->rom_size < V_BIOS_SIZE) {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"Unable to retrieve all of segment 0x0C0000.\n");
}
--
1.7.10.4
More information about the xorg-devel
mailing list