From patchwork Tue Oct 15 20:46:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Wendling X-Patchwork-Id: 11191643 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6CCF113BD for ; Tue, 15 Oct 2019 20:46:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 488FC20872 for ; Tue, 15 Oct 2019 20:46:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="k6bvWpl+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388006AbfJOUqN (ORCPT ); Tue, 15 Oct 2019 16:46:13 -0400 Received: from mail-pf1-f201.google.com ([209.85.210.201]:39432 "EHLO mail-pf1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727673AbfJOUqN (ORCPT ); Tue, 15 Oct 2019 16:46:13 -0400 Received: by mail-pf1-f201.google.com with SMTP id b13so16866110pfp.6 for ; Tue, 15 Oct 2019 13:46:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=PHU3S8UkmZlEWDDACryJAggjnd+j8fKXKUj4kaokT1g=; b=k6bvWpl+ugwFOqGDgu4F/3D3YCFSzLJvWy6NehP1566IJ/9Hvhktfm9tFFGbH4AaX1 BLmtA2w8obi5HdwAcu9gyRDXygk7502O29YYHVYGVdpgt64G2w/IraYRNJfgKistAO1H ApGvPRxVGkWBPcmmxp2scFE7q5k3sHoJc2WZ5B11FNNnwYoX/jLvwAtlIVjIkKcATuLF NQ784iuEaVlEm4CBqJMk1GqtyWEFBLfMHLghNIUqZolXoIiJGMrwpnQbp5hh52RocCut AQywBTvSsO/L7TTm69ZdkeKpNYkEXlnqL1U8N17E94OlDaxUcqgVZGM6cThbRLFrdXQA 0tFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=PHU3S8UkmZlEWDDACryJAggjnd+j8fKXKUj4kaokT1g=; b=AynRL73nU3c5EUa+rpgq/F9+VqZ2jVRvq6T3dRJbFz4L6z5awRE0VqDhXFaHpqXJzt 8uOTO1PCeNdox2qg3bbxtlmukA/cMGgy6UllwrOov4bs3shGrZjAZWspxph+ugaD6v9T WngoOKfSdPOzlx3s8AepbVv8feyvNWQWV0kZCIXi4OatuDB576JsaZvVF4Xk9aL0RQYw SqUIDGUqEZamapOWxktE9NFkUpAv6OGonm/Eq6TuaNV9Mn7FlKMaUYtHyzVuvDozkaaq R0voJPzj+Mls28RUrrTWbMu9dVN0C83xPuqgpY4sPbAjv2LLDrp62cVkzvMl1W3stMCT xNxg== X-Gm-Message-State: APjAAAX4DQymV1g5aTcpSi01l7wNCeAHnSFM0DTwZTmVjXEWJvdghXAn lgeYKN8PC4wPLcyw37BcTChcmdphRhXmMOvxgkviNLmxP9eF4M3WgfUK3X0PpcTs5b/3nq1xxlr 4CYHQVL8Yk8V1I1qrsSDJuETlZhISShxL7bt+hxpMIW/9eqY6VkiO3g== X-Google-Smtp-Source: APXvYqxel6aWp6RFarfN6fwhfOh6ejXJp4N/6FYncVOX4wGo05dnLdNldhMDuEKnEI1/6m68VeTSz1CaHA== X-Received: by 2002:a63:e1f:: with SMTP id d31mr22089103pgl.379.1571172371730; Tue, 15 Oct 2019 13:46:11 -0700 (PDT) Date: Tue, 15 Oct 2019 13:46:02 -0700 In-Reply-To: <20191015204603.47845-1-morbo@google.com> Message-Id: <20191015204603.47845-2-morbo@google.com> Mime-Version: 1.0 References: <20191012074454.208377-1-morbo@google.com> <20191015204603.47845-1-morbo@google.com> X-Mailer: git-send-email 2.23.0.700.g56cf767bdb-goog Subject: [kvm-unit-tests v2 PATCH 1/2] lib: use a status enum for reporting pass/fail From: Bill Wendling To: kvm@vger.kernel.org, pbonzini@redhat.com, alexandru.elisei@arm.com, thuth@redhat.com Cc: jmattson@google.com, Bill Wendling Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Some values passed into "report" as "pass/fail" are larger than the size of the parameter. Instead use a status enum so that the size of the argument no longer matters. Signed-off-by: Bill Wendling --- lib/libcflat.h | 13 +++++++++++-- lib/report.c | 24 ++++++++++++------------ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/lib/libcflat.h b/lib/libcflat.h index b6635d9..8765f67 100644 --- a/lib/libcflat.h +++ b/lib/libcflat.h @@ -95,13 +95,22 @@ extern int vsnprintf(char *buf, int size, const char *fmt, va_list va) extern int vprintf(const char *fmt, va_list va) __attribute__((format(printf, 1, 0))); +enum status { PASSED, FAILED }; + +#define STATUS(x) ((x) != 0 ? PASSED : FAILED) + +#define report(msg_fmt, status, ...) \ + report_status(msg_fmt, STATUS(status) __VA_OPT__(,) __VA_ARGS__) +#define report_xfail(msg_fmt, xfail, status, ...) \ + report_xfail_status(msg_fmt, xfail, STATUS(status) __VA_OPT__(,) __VA_ARGS__) + void report_prefix_pushf(const char *prefix_fmt, ...) __attribute__((format(printf, 1, 2))); extern void report_prefix_push(const char *prefix); extern void report_prefix_pop(void); -extern void report(const char *msg_fmt, unsigned pass, ...) +extern void report_status(const char *msg_fmt, enum status status, ...) __attribute__((format(printf, 1, 3))); -extern void report_xfail(const char *msg_fmt, bool xfail, unsigned pass, ...) +extern void report_xfail_status(const char *msg_fmt, bool xfail, enum status status, ...) __attribute__((format(printf, 1, 4))); extern void report_abort(const char *msg_fmt, ...) __attribute__((format(printf, 1, 2))) diff --git a/lib/report.c b/lib/report.c index 2a5f549..4ba2ac0 100644 --- a/lib/report.c +++ b/lib/report.c @@ -80,12 +80,12 @@ void report_prefix_pop(void) spin_unlock(&lock); } -static void va_report(const char *msg_fmt, - bool pass, bool xfail, bool skip, va_list va) +static void va_report(const char *msg_fmt, enum status status, bool xfail, + bool skip, va_list va) { const char *prefix = skip ? "SKIP" - : xfail ? (pass ? "XPASS" : "XFAIL") - : (pass ? "PASS" : "FAIL"); + : xfail ? (status == PASSED ? "XPASS" : "XFAIL") + : (status == PASSED ? "PASS" : "FAIL"); spin_lock(&lock); @@ -96,27 +96,27 @@ static void va_report(const char *msg_fmt, puts("\n"); if (skip) skipped++; - else if (xfail && !pass) + else if (xfail && status == FAILED) xfailures++; - else if (xfail || !pass) + else if (xfail || status == FAILED) failures++; spin_unlock(&lock); } -void report(const char *msg_fmt, unsigned pass, ...) +void report_status(const char *msg_fmt, enum status status, ...) { va_list va; - va_start(va, pass); - va_report(msg_fmt, pass, false, false, va); + va_start(va, status); + va_report(msg_fmt, status, false, false, va); va_end(va); } -void report_xfail(const char *msg_fmt, bool xfail, unsigned pass, ...) +void report_xfail_status(const char *msg_fmt, bool xfail, enum status status, ...) { va_list va; - va_start(va, pass); - va_report(msg_fmt, pass, xfail, false, va); + va_start(va, status); + va_report(msg_fmt, status, xfail, false, va); va_end(va); } From patchwork Tue Oct 15 20:46:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bill Wendling X-Patchwork-Id: 11191645 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C4CB8139A for ; Tue, 15 Oct 2019 20:46:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A34C720873 for ; Tue, 15 Oct 2019 20:46:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="lsR2teOp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727673AbfJOUqT (ORCPT ); Tue, 15 Oct 2019 16:46:19 -0400 Received: from mail-pg1-f201.google.com ([209.85.215.201]:37860 "EHLO mail-pg1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389450AbfJOUqR (ORCPT ); Tue, 15 Oct 2019 16:46:17 -0400 Received: by mail-pg1-f201.google.com with SMTP id h189so15939119pgc.4 for ; Tue, 15 Oct 2019 13:46:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=quKYm0mwun9UM5OyPYkD/7dKTJN6At1fRn2/XNsALnY=; b=lsR2teOpZi0PGMPRfXOfIXhnjavNDWfV3OOfWXQhPJZXPHLWTHzFIuc1S3zOq4IpBS g/8zKjnkQrLSohTosPcfGlmBjjXtbELDCSvqRk6+1uyjpUX1ugCW2Cg0iTXwpH48UN5w uq2NDlykaAmlaiNbZq43O890o7fxBTe6oEw9EmbZGPNpIL/fZqXwLREj8szYYoA/9lUI vxzDiyFB7k4EIVoQHIdP6haEzD8FjY90nDRony+en4dlHQpObKvGzzM6gqpCq5NYoBUM t/pOXCoY2gqA4nYkmaGaErtFJT1E8LOv2BIxbIRXMrP88yPeGbRCRnRwx6n9YXnxTcUZ nS+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=quKYm0mwun9UM5OyPYkD/7dKTJN6At1fRn2/XNsALnY=; b=TOR4ZWFeWxUA6ZR1dKJtgqht2vubY0IlQJoCihvQyaRT8OA4xGVVx1dzcRs3upEcJm bw7/RrSr76ZE0tGoFF0zO+9sUm8ET9tne/7ncJQ5fGdQ3iFcCyaXvDr3W+D2qhBk/cY7 Dfc2SqHPyvEzIerUkLIksqZ/LVSJUiz4jCwF251D71Dd/qgTvsht9hHTTkmye10s5+CH EK2RLtl3pCKLwvmBXjLRRyMWrdaIOgNwBv8GepkBN86ylQIzc6ecB8WBg+ocTxcdg7c3 k+tTaJQGAi7p2BJiaGmA9Wr+7QNOaiT5hW8Nm80Wu31wEeYUs1xbbI0pC4e46J4Zb1rc Z/dg== X-Gm-Message-State: APjAAAUaf/4VozlvCL+PP3NzOmlFjvv1Kz8mbcBxscZScwOSctsb6EwR LxwD6B9MrIK72Fs8S/myfMyHZAeCvk/MlCoKTL1vk6Ngv/j6N5udXGRZONigE3RAvnzR4t9FpY/ ERyN7YHvkQ6QUbQfiGqj5FnXERBB2pzt/YptromVtPlKecNFtSzZwMg== X-Google-Smtp-Source: APXvYqycK9pnKJEmTPgPTE5gxSPjSUqDAV4kyORDA3KCrLW21kuu43GDGOb6DdmMuUcBmxAlqyCUQyuNfQ== X-Received: by 2002:a63:cf4d:: with SMTP id b13mr39874674pgj.396.1571172374258; Tue, 15 Oct 2019 13:46:14 -0700 (PDT) Date: Tue, 15 Oct 2019 13:46:03 -0700 In-Reply-To: <20191015204603.47845-1-morbo@google.com> Message-Id: <20191015204603.47845-3-morbo@google.com> Mime-Version: 1.0 References: <20191012074454.208377-1-morbo@google.com> <20191015204603.47845-1-morbo@google.com> X-Mailer: git-send-email 2.23.0.700.g56cf767bdb-goog Subject: [kvm-unit-tests v2 PATCH 2/2] x86: don't compare two global objects' addrs for inequality From: Bill Wendling To: kvm@vger.kernel.org, pbonzini@redhat.com, alexandru.elisei@arm.com, thuth@redhat.com Cc: jmattson@google.com, Bill Wendling Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Two global objects can't have the same address in C. Clang uses this fact to omit the check on the first iteration of the loop in check_exception_table. Avoid compariting inequality by using less-than. Signed-off-by: Bill Wendling Reviewed-by: Thomas Huth --- lib/x86/desc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/x86/desc.c b/lib/x86/desc.c index 451f504..4002203 100644 --- a/lib/x86/desc.c +++ b/lib/x86/desc.c @@ -113,7 +113,7 @@ static void check_exception_table(struct ex_regs *regs) (((regs->rflags >> 16) & 1) << 8); asm("mov %0, %%gs:4" : : "r"(ex_val)); - for (ex = &exception_table_start; ex != &exception_table_end; ++ex) { + for (ex = &exception_table_start; ex < &exception_table_end; ++ex) { if (ex->rip == regs->rip) { regs->rip = ex->handler; return;