From aea8b08fa18ef48a106505cf730160aaebac4995 Mon Sep 17 00:00:00 2001 From: dfr Date: Fri, 31 Mar 2000 07:07:51 +0000 Subject: Fix PnP memory range calculations. Submitted by: Nikolai Saoukh PR: kern/16712 --- sys/isa/pnpparse.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sys/isa/pnpparse.c b/sys/isa/pnpparse.c index e513662..8782def 100644 --- a/sys/isa/pnpparse.c +++ b/sys/isa/pnpparse.c @@ -261,14 +261,15 @@ pnp_parse_resources(device_t dev, u_char *resources, int len) case PNP_TAG_MEMORY_RANGE: if (bootverbose) { + int temp = I16(resinfo + 7) << 8; + printf("%s: adding memory range " "%#x-%#x, size=%#x, " "align=%#x\n", pnp_eisaformat(id), I16(resinfo + 1)<<8, - (I16(resinfo + 3)<<8) - + I16(resinfo + 7) - 1, - I16(resinfo + 7), + (I16(resinfo + 3)<<8) + temp - 1, + temp, I16(resinfo + 5)); } @@ -282,9 +283,9 @@ pnp_parse_resources(device_t dev, u_char *resources, int len) I16(resinfo + 1)<<8; config->ic_mem[config->ic_nmem].ir_end = (I16(resinfo + 3)<<8) - + I16(resinfo + 7) - 1; + + (I16(resinfo + 7) << 8) - 1; config->ic_mem[config->ic_nmem].ir_size = - I16(resinfo + 7); + I16(resinfo + 7) << 8; config->ic_mem[config->ic_nmem].ir_align = I16(resinfo + 5); if (!config->ic_mem[config->ic_nmem].ir_align) -- cgit v1.1