[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 for 4.5] arm32: fix build after 063188f4b3



On 10/14/2014 10:15 AM, Ian Campbell wrote:
> On Mon, 2014-10-13 at 16:29 +0100, Julien Grall wrote:
> 
>> +GLOBAL(do_smc)
> 
>> +GLOBAL(do_smc)
> 
> These should both be ENTRY.

Why? Is it because GLOBAL should be used for variable and ENTRY for
function?

>> +int do_smc(register_t function_id, ...);
> 
> Are you sure that the variadic function calling convention is the same
> as for a regular function call? I'm not entirely clear having read
> AAPCS, it says they are marshalled according to "the standard base". 

All the parameters fits in a register, so the compiler will effectively
use the first registers to pass arguments.

This may be an issue if the user decides to pass an uint64_t on ARM32.

> I think it would probably be safer to declare this guy as taking 3-4
> arguments and pass in 0 for the unused one. You could wrap in
> do_smc<N>() helpers if you really wanted.

I will introduce helpers. It will be easier if we decide to extend the
number of parameters (SMC64 supports up to 5 parameters).

> I'd prefer to name this call_smc, do_foo tends to be used on the callee
> side of exception things (e.g. do_hypervisor_trap etc, do_psci_blah).

Will make the change in the next version.

Regards,

-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.