From: Serge Gautherie Date: Wed, 4 Jan 2017 12:46:37 +0100 Subject: [FREELDR] freeldr\arch\i386\hardware.c: *Add a TRACE() to 'NodeCount &= 0xFF;' workaround. CORE-12624 diff --git a/reactos/boot/freeldr/freeldr/arch/i386/hardware.c b/reactos/boot/freeldr/freeldr/arch/i386/hardware.c index b9f222d..dbee8b9 100644 --- a/reactos/boot/freeldr/freeldr/arch/i386/hardware.c +++ b/reactos/boot/freeldr/freeldr/arch/i386/hardware.c @@ -262,9 +262,18 @@ DetectPnpBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber) return; } - NodeCount &= 0xFF; // needed since some fscked up BIOSes return - // wrong info (e.g. Mac Virtual PC) - // e.g. look: http://my.execpc.com/~geezer/osd/pnp/pnp16.c + // BetterDocumentMe: see CORE-12624. + if (NodeCount > 0xFF) + { + TRACE("PnP-BIOS returned wrong NodeCount (0x%x)! Applying '& 0xFF'.\n", + NodeCount); + + // Needed since some fscked up BIOSes return wrong info. + // (e.g. Mac Virtual PC) + // e.g. look: http://my.execpc.com/~geezer/osd/pnp/pnp16.c + NodeCount &= 0xFF; + } + if (x != 0 || NodeSize == 0 || NodeCount == 0) { ERR("PnP-BIOS failed to enumerate device nodes\n");