From: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
To: Natanael Copa <ncopa@alpinelinux.org>, qemu-devel@nongnu.org
Cc: qemu-stable@nongnu.org, qemu-trivial@nongnu.org,
Palmer Dabbelt <palmer@dabbelt.com>,
Alistair Francis <alistair.francis@wdc.com>,
Bin Meng <bin.meng@windriver.com>,
Weiwei Li <liwei1518@gmail.com>,
Liu Zhiwei <zhiwei_liu@linux.alibaba.com>,
"open list:RISC-V TCG CPUs" <qemu-riscv@nongnu.org>
Subject: Re: [PATCH] target/riscv/kvm: do not use non-portable strerrorname_np()
Date: Mon, 18 Dec 2023 14:20:54 -0300 [thread overview]
Message-ID: <dfb9bf4e-820a-4e7e-b62b-8df952099e7a@ventanamicro.com> (raw)
In-Reply-To: <20231218162301.14817-1-ncopa@alpinelinux.org>
On 12/18/23 13:22, Natanael Copa wrote:
> strerrorname_np is non-portable and breaks building with musl libc.
>
> Use strerror(errno) instead, like we do other places.
>
> Cc: qemu-stable@nongnu.org
> Fixes: commit 082e9e4a58ba (target/riscv/kvm: improve 'init_multiext_cfg' error msg)
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2041
> Buglink: https://gitlab.alpinelinux.org/alpine/aports/-/issues/15541
> Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
> ---
> target/riscv/kvm/kvm-cpu.c | 18 ++++++++----------
> 1 file changed, 8 insertions(+), 10 deletions(-)
>
> diff --git a/target/riscv/kvm/kvm-cpu.c b/target/riscv/kvm/kvm-cpu.c
> index 45b6cf1cfa..117e33cf90 100644
> --- a/target/riscv/kvm/kvm-cpu.c
> +++ b/target/riscv/kvm/kvm-cpu.c
> @@ -832,9 +832,8 @@ static void kvm_riscv_read_multiext_legacy(RISCVCPU *cpu,
> multi_ext_cfg->supported = false;
> val = false;
> } else {
> - error_report("Unable to read ISA_EXT KVM register %s, "
> - "error code: %s", multi_ext_cfg->name,
> - strerrorname_np(errno));
> + error_report("Unable to read ISA_EXT KVM register %s: %s",
> + multi_ext_cfg->name, strerror(errno));
The reason I did this change, as described in 082e9e4a58ba mentioned in the commit
message, was precisely to avoid things like this:
qemu-system-riscv64: Unable to read ISA_EXT KVM register ssaia, error: no such file or directory
The generic description of the error works well with file descriptors and so on but it's
weird in the KVM context. This patch is re-introducing it.
If strerrorname_np() is non-portable I believe we're better off dealing with the numeric
errno than with its generic description. I.e:
> + error_report("Unable to read ISA_EXT KVM register %s, error %d",
> + multi_ext_cfg->name, errno);
Same with the other 3 instances you changed in the patch. Thanks,
Daniel
> exit(EXIT_FAILURE);
> }
> } else {
> @@ -895,8 +894,8 @@ static void kvm_riscv_init_multiext_cfg(RISCVCPU *cpu, KVMScratchCPU *kvmcpu)
> *
> * Error out if we get any other errno.
> */
> - error_report("Error when accessing get-reg-list, code: %s",
> - strerrorname_np(errno));
> + error_report("Error when accessing get-reg-list: %s",
> + strerror(errno));
> exit(EXIT_FAILURE);
> }
>
> @@ -905,8 +904,8 @@ static void kvm_riscv_init_multiext_cfg(RISCVCPU *cpu, KVMScratchCPU *kvmcpu)
> reglist->n = rl_struct.n;
> ret = ioctl(kvmcpu->cpufd, KVM_GET_REG_LIST, reglist);
> if (ret) {
> - error_report("Error when reading KVM_GET_REG_LIST, code %s ",
> - strerrorname_np(errno));
> + error_report("Error when reading KVM_GET_REG_LIST: %s",
> + strerror(errno));
> exit(EXIT_FAILURE);
> }
>
> @@ -927,9 +926,8 @@ static void kvm_riscv_init_multiext_cfg(RISCVCPU *cpu, KVMScratchCPU *kvmcpu)
> reg.addr = (uint64_t)&val;
> ret = ioctl(kvmcpu->cpufd, KVM_GET_ONE_REG, ®);
> if (ret != 0) {
> - error_report("Unable to read ISA_EXT KVM register %s, "
> - "error code: %s", multi_ext_cfg->name,
> - strerrorname_np(errno));
> + error_report("Unable to read ISA_EXT KVM register %s: %s",
> + multi_ext_cfg->name, strerror(errno));
> exit(EXIT_FAILURE);
> }
>
next prev parent reply other threads:[~2023-12-18 17:21 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-18 16:22 [PATCH] target/riscv/kvm: do not use non-portable strerrorname_np() Natanael Copa
2023-12-18 17:20 ` Daniel Henrique Barboza [this message]
2023-12-18 17:53 ` Peter Maydell
2023-12-18 18:34 ` Daniel Henrique Barboza
2023-12-19 11:24 ` Peter Maydell
2023-12-18 21:35 ` Michael Tokarev
2023-12-18 22:00 ` Daniel Henrique Barboza
2023-12-18 20:55 ` Daniel Henrique Barboza
2023-12-23 16:30 ` Michael Tokarev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=dfb9bf4e-820a-4e7e-b62b-8df952099e7a@ventanamicro.com \
--to=dbarboza@ventanamicro.com \
--cc=alistair.francis@wdc.com \
--cc=bin.meng@windriver.com \
--cc=liwei1518@gmail.com \
--cc=ncopa@alpinelinux.org \
--cc=palmer@dabbelt.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=zhiwei_liu@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.