On Thu, Oct 23, 2008 at 05:56:59PM -0700, ddaney@xxxxxxxxxxxxxxxxxx wrote: > Always set ST0_KX on Octeon since IO addresses are at 64bit addresses. > Keep in mind this also moves the TLB handler. > > Signed-off-by: Tomaso Paoletti <tpaoletti@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Paul Gortmaker <Paul.Gortmaker@xxxxxxxxxxxxx> > Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> > -#ifdef CONFIG_64BIT > +#if defined(CONFIG_64BIT) || defined(CONFIG_CPU_CAVIUM_OCTEON) > + /* > + * Note: We always set ST0_KX on Octeon since IO addresses are at > + * 64bit addresses. Keep in mind this also moves the TLB handler. > + */ > setup_c0_status ST0_KX 0 That's a bit odd - on 64-bit kernels KX would be set anyway and on 32-bit kernels would be corrupted by exceptions or interrupts, so 64-bit addresses are not safe to use on 32-bit kernels for most part. 32-bit virtual addresses mapped to a non-compat address otoh will work fine without KX set. Ralf