From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH] ia64: build fixes Date: Tue, 04 May 2010 17:04:45 +0100 Message-ID: <4BE061BD020000780000136D@vpn.id2.novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part0B21AD8D.0__=" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com Cc: xen-ia64-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part0B21AD8D.0__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Signed-off-by: Jan Beulich --- 2010-05-04.orig/xen/arch/ia64/xen/dom0_ops.c 2010-01-21 = 15:36:53.000000000 +0100 +++ 2010-05-04/xen/arch/ia64/xen/dom0_ops.c 2010-05-04 14:03:40.0000000= 00 +0200 @@ -735,20 +735,13 @@ long arch_do_sysctl(xen_sysctl_t *op, XE { case XEN_SYSCTL_physinfo: { - int i; - uint32_t max_array_ent; - XEN_GUEST_HANDLE_64(uint32) cpu_to_node_arr; - xen_sysctl_physinfo_t *pi =3D &op->u.physinfo; =20 - max_array_ent =3D pi->max_cpu_id; - cpu_to_node_arr =3D pi->cpu_to_node; - memset(pi, 0, sizeof(*pi)); - pi->cpu_to_node =3D cpu_to_node_arr; pi->threads_per_core =3D cpus_weight(per_cpu(cpu_sibling_map, = 0)); pi->cores_per_socket =3D cpus_weight(per_cpu(cpu_core_map, 0)) / pi->threads_per_core; + pi->nr_nodes =3D (u32)num_online_nodes(); pi->nr_cpus =3D (u32)num_online_cpus(); pi->total_pages =3D total_pages;=20 pi->free_pages =3D avail_domheap_pages(); @@ -757,21 +750,55 @@ long arch_do_sysctl(xen_sysctl_t *op, XE =20 pi->max_node_id =3D last_node(node_online_map); pi->max_cpu_id =3D last_cpu(cpu_online_map); - max_array_ent =3D min_t(uint32_t, max_array_ent, pi->max_cpu_id); =20 - ret =3D 0; + if ( copy_field_to_guest(u_sysctl, op, u.physinfo) ) + ret =3D -EFAULT; + } + break; + + case XEN_SYSCTL_topologyinfo: + { + xen_sysctl_topologyinfo_t *ti =3D &op->u.topologyinfo; + XEN_GUEST_HANDLE_64(uint32) arr; + uint32_t i, val, max_array_ent =3D ti->max_cpu_index; + + ti->max_cpu_index =3D last_cpu(cpu_online_map); + max_array_ent =3D min(max_array_ent, ti->max_cpu_index); + + arr =3D ti->cpu_to_core; + if ( !guest_handle_is_null(arr) ) + { + for ( i =3D 0; ret =3D=3D 0 && i <=3D max_array_ent; i++ ) + { + val =3D cpu_online(i) ? cpu_to_core(i) : ~0u; + if ( copy_to_guest_offset(arr, i, &val, 1) ) + ret =3D -EFAULT; + } + } + + arr =3D ti->cpu_to_socket; + if ( !guest_handle_is_null(arr) ) + { + for ( i =3D 0; ret =3D=3D 0 && i <=3D max_array_ent; i++ ) + { + val =3D cpu_online(i) ? cpu_to_socket(i) : ~0u; + if ( copy_to_guest_offset(arr, i, &val, 1) ) + ret =3D -EFAULT; + } + } =20 - if (!guest_handle_is_null(cpu_to_node_arr)) { - for (i =3D 0; i <=3D max_array_ent; i++) { - uint32_t node =3D cpu_online(i) ? cpu_to_node(i) : ~0u; - if (copy_to_guest_offset(cpu_to_node_arr, i, &node, 1)) { + arr =3D ti->cpu_to_node; + if ( !guest_handle_is_null(arr) ) + { + for ( i =3D 0; ret =3D=3D 0 && i <=3D max_array_ent; i++ ) + { + val =3D cpu_online(i) ? cpu_to_node(i) : ~0u; + if ( copy_to_guest_offset(arr, i, &val, 1) ) ret =3D -EFAULT; - break; - } } } =20 - if ( copy_to_guest(u_sysctl, op, 1) ) + if ( copy_field_to_guest(u_sysctl, op, u.topologyinfo.max_cpu_inde= x) ) ret =3D -EFAULT; } break; --- 2010-05-04.orig/xen/common/domain.c 2010-04-22 14:43:25.000000000 = +0200 +++ 2010-05-04/xen/common/domain.c 2010-05-04 13:34:25.000000000 = +0200 @@ -625,8 +625,10 @@ static void complete_domain_destroy(stru =20 xfree(d->pirq_mask); xfree(d->pirq_to_evtchn); +#ifdef dom_vmce xfree(dom_vmce(d)->mci_ctl); xfree(dom_vmce(d)); +#endif =20 xsm_free_security_domain(d); free_domain_struct(d); --=__Part0B21AD8D.0__= Content-Type: text/plain; name="ia64-build-fixes.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="ia64-build-fixes.patch" Signed-off-by: Jan Beulich =0A=0A--- 2010-05-04.orig/x= en/arch/ia64/xen/dom0_ops.c 2010-01-21 15:36:53.000000000 +0100=0A+++ = 2010-05-04/xen/arch/ia64/xen/dom0_ops.c 2010-05-04 14:03:40.000000000 = +0200=0A@@ -735,20 +735,13 @@ long arch_do_sysctl(xen_sysctl_t *op, XE=0A = {=0A case XEN_SYSCTL_physinfo:=0A {=0A- int i;=0A- = uint32_t max_array_ent;=0A- XEN_GUEST_HANDLE_64(uint32) cpu_to_node= _arr;=0A-=0A xen_sysctl_physinfo_t *pi =3D &op->u.physinfo;=0A = =0A- max_array_ent =3D pi->max_cpu_id;=0A- cpu_to_node_arr = =3D pi->cpu_to_node;=0A-=0A memset(pi, 0, sizeof(*pi));=0A- = pi->cpu_to_node =3D cpu_to_node_arr;=0A pi->threads_per_core =3D = cpus_weight(per_cpu(cpu_sibling_map, 0));=0A pi->cores_per_socket = =3D=0A cpus_weight(per_cpu(cpu_core_map, 0)) / pi->threads_per_= core;=0A+ pi->nr_nodes =3D (u32)num_online_nodes();=0A = pi->nr_cpus =3D (u32)num_online_cpus();=0A pi->total_pa= ges =3D total_pages; =0A pi->free_pages =3D avail_domhea= p_pages();=0A@@ -757,21 +750,55 @@ long arch_do_sysctl(xen_sysctl_t *op, = XE=0A =0A pi->max_node_id =3D last_node(node_online_map);=0A = pi->max_cpu_id =3D last_cpu(cpu_online_map);=0A- max_array_ent = =3D min_t(uint32_t, max_array_ent, pi->max_cpu_id);=0A =0A- ret =3D = 0;=0A+ if ( copy_field_to_guest(u_sysctl, op, u.physinfo) )=0A+ = ret =3D -EFAULT;=0A+ }=0A+ break;=0A+=0A+ case XEN_SYSCTL_t= opologyinfo:=0A+ {=0A+ xen_sysctl_topologyinfo_t *ti =3D = &op->u.topologyinfo;=0A+ XEN_GUEST_HANDLE_64(uint32) arr;=0A+ = uint32_t i, val, max_array_ent =3D ti->max_cpu_index;=0A+=0A+ = ti->max_cpu_index =3D last_cpu(cpu_online_map);=0A+ max_array_ent = =3D min(max_array_ent, ti->max_cpu_index);=0A+=0A+ arr =3D = ti->cpu_to_core;=0A+ if ( !guest_handle_is_null(arr) )=0A+ = {=0A+ for ( i =3D 0; ret =3D=3D 0 && i <=3D max_array_ent; i++ = )=0A+ {=0A+ val =3D cpu_online(i) ? cpu_to_core(i= ) : ~0u;=0A+ if ( copy_to_guest_offset(arr, i, &val, 1) = )=0A+ ret =3D -EFAULT;=0A+ }=0A+ = }=0A+=0A+ arr =3D ti->cpu_to_socket;=0A+ if ( !guest_handle_i= s_null(arr) )=0A+ {=0A+ for ( i =3D 0; ret =3D=3D 0 && i = <=3D max_array_ent; i++ )=0A+ {=0A+ val =3D = cpu_online(i) ? cpu_to_socket(i) : ~0u;=0A+ if ( copy_to_gue= st_offset(arr, i, &val, 1) )=0A+ ret =3D -EFAULT;=0A+ = }=0A+ }=0A =0A- if (!guest_handle_is_null(cpu_to_nod= e_arr)) {=0A- for (i =3D 0; i <=3D max_array_ent; i++) {=0A- = uint32_t node =3D cpu_online(i) ? cpu_to_node(i) : ~0u;=0A- = if (copy_to_guest_offset(cpu_to_node_arr, i, &node, 1)) {=0A+ = arr =3D ti->cpu_to_node;=0A+ if ( !guest_handle_is_null(arr) = )=0A+ {=0A+ for ( i =3D 0; ret =3D=3D 0 && i <=3D = max_array_ent; i++ )=0A+ {=0A+ val =3D cpu_online= (i) ? cpu_to_node(i) : ~0u;=0A+ if ( copy_to_guest_offset(ar= r, i, &val, 1) )=0A ret =3D -EFAULT;=0A- = break;=0A- }=0A }=0A }=0A =0A- = if ( copy_to_guest(u_sysctl, op, 1) )=0A+ if ( copy_field_to_gues= t(u_sysctl, op, u.topologyinfo.max_cpu_index) )=0A ret =3D = -EFAULT;=0A }=0A break;=0A--- 2010-05-04.orig/xen/common/domain.c = 2010-04-22 14:43:25.000000000 +0200=0A+++ 2010-05-04/xen/common/domain.c = 2010-05-04 13:34:25.000000000 +0200=0A@@ -625,8 +625,10 @@ static void = complete_domain_destroy(stru=0A =0A xfree(d->pirq_mask);=0A = xfree(d->pirq_to_evtchn);=0A+#ifdef dom_vmce=0A xfree(dom_vmce(d)->mci_= ctl);=0A xfree(dom_vmce(d));=0A+#endif=0A =0A xsm_free_security_dom= ain(d);=0A free_domain_struct(d);=0A --=__Part0B21AD8D.0__= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --=__Part0B21AD8D.0__=--