On Wed, 2015-01-21 at 13:32 +1100, Cyril Bur wrote: > The need to handle ibm,suspend_me specially from within ppc_rtas has left an > endian bug exposed as rtas_ibm_suspend_me actually performs HCALLs and should > have its params in CPU endian.
That needs a much better explanation. Key points: - ppc_rtas() is a syscall, which takes arguments in BE - ibm,suspend-me is not a real RTAS call and is handled specially in there - ibm,suspend-me is actually implemented by an hcall - there is currently a bug on LE, because rtas_ibm_suspend_me() takes the ppc_rtas() args and feeds them directly to the hcall > Have ppc_rtas send the params correctly and also interpret the result > correctly. That's a second bug which you should also mention above. > Removed the convoluted use of the rtas_args struct to pass params to > rtas_ibm_suspend_me in favour of passing what it needs directly. > > Signed-off-by: Cyril Bur <cyril...@gmail.com> > --- > This patch has been tested with KVM both LE and BE and on PowerVM both LE and > BE. Under QEMU/KVM the migration happens without touching the these code > pathes. > For PowerVM there is no obvious regression on BE and the LE code path now > provides the correct parameters to the hypervisor Fold that into the changelog, it's worth remembering. cheers _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev