From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ralf Baechle Subject: Re: [PATCH v2 09/13] MIPS: Add functions for hypervisor call Date: Tue, 3 Jun 2014 10:30:31 +0200 Message-ID: <20140603083031.GP17197@linux-mips.org> References: <1401313936-11867-1-git-send-email-andreas.herrmann@caviumnetworks.com> <1401313936-11867-10-git-send-email-andreas.herrmann@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-mips@linux-mips.org, David Daney , James Hogan , kvm@vger.kernel.org, David Daney To: Andreas Herrmann Return-path: Received: from eddie.linux-mips.org ([78.24.191.182]:53371 "EHLO cvs.linux-mips.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932171AbaFCIan (ORCPT ); Tue, 3 Jun 2014 04:30:43 -0400 Received: from localhost.localdomain ([127.0.0.1]:43980 "EHLO linux-mips.org" rhost-flags-OK-OK-OK-FAIL) by eddie.linux-mips.org with ESMTP id S6854770AbaFCIakpYMOW (ORCPT ); Tue, 3 Jun 2014 10:30:40 +0200 Content-Disposition: inline In-Reply-To: <1401313936-11867-10-git-send-email-andreas.herrmann@caviumnetworks.com> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, May 28, 2014 at 11:52:12PM +0200, Andreas Herrmann wrote: > +/* > + * Hypercalls for KVM. > + * > + * Hypercall number is passed in v0. > + * Return value will be placed in v0. > + * Up to 3 arguments are passed in a0, a1, and a2. > + */ > +static inline unsigned long kvm_hypercall0(unsigned long num) > +{ > + register unsigned long n asm("v0"); > + register unsigned long r asm("v0"); Btw, is it safe to put two variables in the same register? The syscall wrappers that used to be in were occasionally hitting problems which eventually forced me to stop forcing variables into particular registers instead using a MOVE instruction to shove each variable into the right place. Of course they were being used from non-PIC and PIC code, kernel and userland so GCC had a much better chance to do evil than in the hypercall wrapper case - but it made me paranoid ... Ralf