2c2
< * Copyright (c) 2007 The Hewlett-Packard Development Company
---
> * Copyright (c) 2007-2008 The Hewlett-Packard Development Company
600a601,604
> // The Intel developer's manuals say the below restrictions apply,
> // but the linux kernel, because of a compiler optimization, breaks
> // them.
> /*
606a611,615
> */
>
> //Make sure we're at least only accessing one register.
> if ((paddr & ~mask(3)) != ((paddr + req->getSize()) & ~mask(3)))
> panic("Accessed more than one register at a time in the APIC!\n");
607a617,618
> Addr offset = paddr & mask(3);
> paddr &= ~mask(3);
735c746
< req->setPaddr(regNum * sizeof(MiscReg));
---
> req->setPaddr(regNum * sizeof(MiscReg) + offset);