| 
    
 [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  |