> i had to make the following changes to the kernel for xen3 to match up
> to recent labs pc kernel and to compile successfully.  can anyone
> verify the changes are correct?  (i could to a smoke test on EC2, but
> don't feel adventurous at the moment)

The evenaddr function in trap.c should be replaced by validalign:

void
validalign(uintptr addr, unsigned align)
{
        /*
         * Plan 9 is a 32-bit O/S, and the hardware it runs on
         * does not usually have instructions which move 64-bit
         * quantities directly, synthesizing the operations
         * with 32-bit move instructions. Therefore, the compiler
         * (and hardware) usually only enforce 32-bit alignment,
         * if at all.
         *
         * Take this out if the architecture warrants it.
         */
        if(align == sizeof(vlong))
                align = sizeof(long);

        /*
         * Check align is a power of 2, then addr alignment.
         */
        if((align != 0 && !(align & (align-1))) && !(addr & (align-1)))
                return;
        postnote(up, 1, "sys: odd address", NDebug);
        error(Ebadarg);
        /*NOTREACHED*/
}

This is a change done by Jim McKie on 2014-05-15.

-- 
David du Colombier

Reply via email to