On 03/19/2012 07:49 PM, Konrad Rzeszutek Wilk wrote: > On Fri, Mar 16, 2012 at 10:30:35AM +0530, Akshay Karle wrote: > > >> +/* kvm tmem foundation ops/hypercalls */ > > >> + > > >> +static inline int kvm_tmem_op(u32 tmem_cmd, u32 tmem_pool, struct tmem_oid oid, > > >> + u32 index, u32 tmem_offset, u32 pfn_offset, unsigned long pfn, u32 len, uint16_t cli_id) > > > > > > That is rather long list of arguments. Could you pass in a structure instead? > > > > > > Are you actually using all of the arguments in every call? > > > > For different functions different parameters are used. If we want to reduce the number of arguments, > > the tmem_ops structure can be created in the functions calling kvm_tmem_op instead of creating it here > > and that can be passed, will make these changes in the next patch. > > > > >> +{ > > >> + struct tmem_ops op; > > >> + int rc = 0; > > >> + op.cmd = tmem_cmd; > > >> + op.pool_id = tmem_pool; > > >> + op.u.gen.oid[0] = oid.oid[0]; > > >> + op.u.gen.oid[1] = oid.oid[1]; > > >> + op.u.gen.oid[2] = oid.oid[2]; > > >> + op.u.gen.index = index; > > >> + op.u.gen.tmem_offset = tmem_offset; > > >> + op.u.gen.pfn_offset = pfn_offset; > > >> + op.u.gen.pfn = pfn; > > >> + op.u.gen.len = len; > > >> + op.u.gen.cli_id = cli_id; > > >> + rc = kvm_hypercall1(KVM_HC_TMEM, virt_to_phys(&op)); > > >> + rc = rc + 1000; > > > > > > Why the addition? > > > > If you notice the host patch I had subtracted 1000 while passing the return value > > in the kvm_emulate_hypercall function. This was to avoid the guest kernel panic due to > > the return of a non-negative value by the kvm_hypercall. In order to get the original value > > back I added 1000. > > Avi, is there a right way of doing this? Why would the guest kernel panic due to the return of a non-negative value? -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html