[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Export Multicore information
On Tue, Dec 12, 2006 at 03:39:22PM -0800, Kamble, Nitin A wrote: > I think I should have added some documentation comments in the code > there mentioning the usage of count. It would make more sense if you > look at the code which is calling this interface in the xc.c. There are > 2 conventions for calling this sysctl function. > > 1. With count = 0, and the array_list = NULL > > 2. Here user space allocates the space for array_list of count size, and > passes it to the sysctl. (2) is the case I'm talking about. >From your patch in sysctl.c: + count = min((int)pi->count, num_possible_cpus()); ^^^^^^^^^^ You grab "count" correctly. + + if ( guest_handle_is_null(pi->cpuinfo_list) ) { + printk("sysctl XEN_SYSCTL_cpuinfo: guest handle is null \n"); + ret = -EFAULT; + break; + } + + j = 0; + for_each_cpu(i) { + extern int cpu_2_node[]; + + cl.cpu_id = i; + cl.core_id = cpu_core_id[i]; + cl.package_id = phys_proc_id[i]; + cl.node_id = cpu_2_node[i]; + cl.thread_siblings_map = cpus_addr(cpu_sibling_map[i])[0]; + cl.core_siblings_map = cpus_addr(cpu_core_map[i])[0]; + + if ( copy_to_guest_offset(pi->cpuinfo_list, j, &cl, 1) ) { + printk("sysctl XEN_SYSCTL_cpuinfo: copy to guest (cpuinfo_list) failed \n"); + ret -EFAULT; + break; + } + j++; ^^^^^^^^^^^ We never check that 'j' goes >= 'count'. + } As a matter of fact, it looks to me like 'count' is a dead variable as soon as it's set? _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |