From nobody Sun May 5 01:44:05 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1513709086066271.46652902457197; Tue, 19 Dec 2017 10:44:46 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 087965D3; Tue, 19 Dec 2017 18:44:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CDCD1619AF; Tue, 19 Dec 2017 18:44:42 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 890FF4BB79; Tue, 19 Dec 2017 18:44:40 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id vBJIidx0006662 for ; Tue, 19 Dec 2017 13:44:39 -0500 Received: by smtp.corp.redhat.com (Postfix) id 14BF01B482; Tue, 19 Dec 2017 18:44:39 +0000 (UTC) Received: from mx1.redhat.com (ext-mx09.extmail.prod.ext.phx2.redhat.com [10.5.110.38]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0D3A560BF3 for ; Tue, 19 Dec 2017 18:44:37 +0000 (UTC) Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 81CB749026 for ; Tue, 19 Dec 2017 18:44:36 +0000 (UTC) Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id vBJIiXol013719 for ; Tue, 19 Dec 2017 13:44:36 -0500 Received: from e16.ny.us.ibm.com (e16.ny.us.ibm.com [129.33.205.206]) by mx0a-001b2d01.pphosted.com with ESMTP id 2ey5qsqng3-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 19 Dec 2017 13:44:35 -0500 Received: from localhost by e16.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 19 Dec 2017 13:39:33 -0500 Received: from b01cxnp22034.gho.pok.ibm.com (9.57.198.24) by e16.ny.us.ibm.com (146.89.104.203) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 19 Dec 2017 13:39:30 -0500 Received: from b01ledav006.gho.pok.ibm.com (b01ledav006.gho.pok.ibm.com [9.57.199.111]) by b01cxnp22034.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id vBJIdT3K51576904; Tue, 19 Dec 2017 18:39:29 GMT Received: from b01ledav006.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 16194AC03F; Tue, 19 Dec 2017 13:40:34 -0500 (EST) Received: from kofr2.aus.stglabs.ibm.com (unknown [9.40.193.43]) by b01ledav006.gho.pok.ibm.com (Postfix) with ESMTP id C0DEAAC03A; Tue, 19 Dec 2017 13:40:33 -0500 (EST) From: Scott Garfinkle To: libvir-list@redhat.com, seg@us.ibm.com Date: Tue, 19 Dec 2017 12:39:26 -0600 X-TM-AS-GCONF: 00 x-cbid: 17121918-0024-0000-0000-0000030451FA X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008228; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000244; SDB=6.00962597; UDB=6.00486905; IPR=6.00742592; BA=6.00005752; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00018628; XFM=3.00000015; UTC=2017-12-19 18:39:32 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17121918-0025-0000-0000-0000465CFF5A Message-Id: <1513708766-34246-1-git-send-email-scottgar@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-12-19_10:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1712190268 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 207 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 19 Dec 2017 18:44:36 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Tue, 19 Dec 2017 18:44:36 +0000 (UTC) for IP:'148.163.156.1' DOMAIN:'mx0a-001b2d01.pphosted.com' HELO:'mx0a-001b2d01.pphosted.com' FROM:'scottgar@linux.vnet.ibm.com' RCPT:'' X-RedHat-Spam-Score: -0.701 (RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2) 148.163.156.1 mx0a-001b2d01.pphosted.com 148.163.156.1 mx0a-001b2d01.pphosted.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.38 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: Scott Garfinkle Subject: [libvirt] [PATCH] treat host models as case-insensitive strings X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Tue, 19 Dec 2017 18:44:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Qemu now allows case-insensitive specification of CPU models. This fixes the resulting problems on POWER arch machines. I believe a similar change is ne= eded in src/cpu/cpu_x86.c but I don't have a way to test this. Signed-off-by: Scott Garfinkle --- src/conf/domain_capabilities.c | 2 +- src/cpu/cpu_ppc64.c | 16 ++++++++-------- src/internal.h | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index e7323a8..f7d9be5 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -271,7 +271,7 @@ virDomainCapsCPUModelsGet(virDomainCapsCPUModelsPtr cpu= Models, return NULL; =20 for (i =3D 0; i < cpuModels->nmodels; i++) { - if (STREQ(cpuModels->models[i].name, name)) + if (STRCASEEQ(cpuModels->models[i].name, name)) return cpuModels->models + i; } =20 diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c index 76582d4..9f7e2bb 100644 --- a/src/cpu/cpu_ppc64.c +++ b/src/cpu/cpu_ppc64.c @@ -67,10 +67,10 @@ static int virCPUppc64ConvertLegacy(virCPUDefPtr cpu) { if (cpu->model && - (STREQ(cpu->model, "POWER7_v2.1") || - STREQ(cpu->model, "POWER7_v2.3") || - STREQ(cpu->model, "POWER7+_v2.1") || - STREQ(cpu->model, "POWER8_v1.0"))) { + (STRCASEEQ(cpu->model, "POWER7_v2.1") || + STRCASEEQ(cpu->model, "POWER7_v2.3") || + STRCASEEQ(cpu->model, "POWER7+_v2.1") || + STRCASEEQ(cpu->model, "POWER8_v1.0"))) { cpu->model[strlen("POWERx")] =3D 0; } =20 @@ -93,7 +93,7 @@ ppc64CheckCompatibilityMode(const char *host_model, return VIR_CPU_COMPARE_IDENTICAL; =20 /* Valid host CPUs: POWER6, POWER7, POWER8, POWER9 */ - if (!STRPREFIX(host_model, "POWER") || + if (!STRCASEPREFIX(host_model, "POWER") || !(tmp =3D (char *) host_model + strlen("POWER")) || virStrToLong_i(tmp, NULL, 10, &host) < 0 || host < 6 || host > 9) { @@ -104,7 +104,7 @@ ppc64CheckCompatibilityMode(const char *host_model, } =20 /* Valid compatibility modes: power6, power7, power8, power9 */ - if (!STRPREFIX(compat_mode, "power") || + if (!STRCASEPREFIX(compat_mode, "power") || !(tmp =3D (char *) compat_mode + strlen("power")) || virStrToLong_i(tmp, NULL, 10, &compat) < 0 || compat < 6 || compat > 9) { @@ -168,7 +168,7 @@ ppc64VendorFind(const struct ppc64_map *map, size_t i; =20 for (i =3D 0; i < map->nvendors; i++) { - if (STREQ(map->vendors[i]->name, name)) + if (STRCASEEQ(map->vendors[i]->name, name)) return map->vendors[i]; } =20 @@ -216,7 +216,7 @@ ppc64ModelFind(const struct ppc64_map *map, size_t i; =20 for (i =3D 0; i < map->nmodels; i++) { - if (STREQ(map->models[i]->name, name)) + if (STRCASEEQ(map->models[i]->name, name)) return map->models[i]; } =20 diff --git a/src/internal.h b/src/internal.h index 5895030..1760e3b 100644 --- a/src/internal.h +++ b/src/internal.h @@ -75,6 +75,7 @@ # define STRNEQLEN(a, b, n) (strncmp(a, b, n) !=3D 0) # define STRCASENEQLEN(a, b, n) (c_strncasecmp(a, b, n) !=3D 0) # define STRPREFIX(a, b) (strncmp(a, b, strlen(b)) =3D=3D 0) +# define STRCASEPREFIX(a, b) (c_strncasecmp(a, b, strlen(b)) =3D=3D 0) # define STRSKIP(a, b) (STRPREFIX(a, b) ? (a) + strlen(b) : NULL) =20 # define STREQ_NULLABLE(a, b) \ --=20 1.8.3.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list