From nobody Sat May 30 19:21:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1777533583; cv=none; d=zohomail.com; s=zohoarc; b=K1407O7Q8ZA2ozdP9mCKmf0xgZ07CrpQllCWofoYsjsl9PkPqsEXmvM/a8j92OcLrzSOL+EhMFuePCKkSZ65+Si0Rnjw6OOCTrWz1+OLVjJFroUcrDAlQ0nmZm8J2EPMQ+AJMDxVphAg1+E85x09w77X0YACYROMvLYFVVtoamE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777533583; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2rGF19OVXTJxsbYiMUmuaIz38YUDG0JXQvBSJhEuy9A=; b=Ro+4YDODtTNjNEDcflqyx5rPbthFgv2UWOTeM0DxE0cHC+25Dj5bgnOquYJcSR7TzVbN+7KGLyPsbrTSa+Rh70AbBFRN4X0ws/fmZEoYGhNh+2m5n+FD3S0o0o+F9EXMliSGnCKrBojn4QbD+fM2KjWtzl5LEqiifJgIO4HkEyg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777533583858201.11315640841462; Thu, 30 Apr 2026 00:19:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wILgM-0003Z7-GG; Thu, 30 Apr 2026 03:19:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgK-0003YW-UG for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:33 -0400 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgJ-00012i-Ex for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:32 -0400 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 6BE2260582; Thu, 30 Apr 2026 07:19:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0E58AC2BCB4; Thu, 30 Apr 2026 07:19:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777533567; bh=Q/iXGdIHYdJNB8woaida8AHWG6igtbbz4i/W4/TIG+0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F15aGzoVswA5Er2JrE7SXJ3fm2jsOA5UtmllEkOkpvkhA2rz98xP82freZE7RLelr qJ+x9710nyoiXpjN0S+FC/7DY3W4JF0QXB25vgGfv4U+asAqBjODK1nKAx1IuyNLqv raUcb89HpKREjaKhlIPTPoDLfCN0VAo6aqF9X3c7VgngzpqFOnJP+OacA8DrMHMu/a TLI58dkqmVfz+Bpy/Wibp+PGHloElbsgkL6wfNC7LxVaXh1dNgTwSaFeCO95gHUrUN clN/eUnhGjGblV4nS4ENEA7Iw3qHi2NFsgnTAOg7ZKyvgp5xN8SNfR1eVoytYgmPUk L4cyAXI8jhaCw== From: Helge Deller To: qemu-devel@nongnu.org Cc: Laurent Vivier , Helge Deller , Pierrick Bouvier Subject: [PULL 1/4] linux-user: Add missing CDROM ioctls Date: Thu, 30 Apr 2026 09:19:19 +0200 Message-ID: <20260430071922.15341-2-deller@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430071922.15341-1-deller@kernel.org> References: <20260430071922.15341-1-deller@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2600:3c04:e001:324:0:1991:8:25; envelope-from=deller@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UPPERCASE_75_100=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1777533586749154100 Content-Type: text/plain; charset="utf-8" From: Helge Deller Add the missing CDROM ioctls and bring them in same order as documentation. Signed-off-by: Helge Deller --- linux-user/ioctls.h | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index 5b7d00e92f..aa485ee6e5 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -416,19 +416,18 @@ #endif =20 IOCTL(CDROMPAUSE, 0, TYPE_NULL) - IOCTL(CDROMSTART, 0, TYPE_NULL) - IOCTL(CDROMSTOP, 0, TYPE_NULL) IOCTL(CDROMRESUME, 0, TYPE_NULL) - IOCTL(CDROMEJECT, 0, TYPE_NULL) - IOCTL(CDROMEJECT_SW, 0, TYPE_INT) - IOCTL(CDROMCLOSETRAY, 0, TYPE_NULL) - IOCTL(CDROMRESET, 0, TYPE_NULL) IOCTL(CDROMPLAYMSF, IOC_W, MK_PTR(TYPE_INT)) IOCTL(CDROMPLAYTRKIND, IOC_W, MK_PTR(TYPE_INT)) IOCTL(CDROMREADTOCHDR, IOC_R, MK_PTR(TYPE_INT)) IOCTL(CDROMREADTOCENTRY, IOC_RW, MK_PTR(TYPE_INT)) + IOCTL(CDROMSTOP, 0, TYPE_NULL) + IOCTL(CDROMSTART, 0, TYPE_NULL) + IOCTL(CDROMEJECT, 0, TYPE_NULL) IOCTL(CDROMVOLCTRL, IOC_W, MK_PTR(TYPE_INT)) IOCTL(CDROMSUBCHNL, IOC_RW, MK_PTR(TYPE_INT)) + IOCTL(CDROMEJECT_SW, IOC_W, TYPE_INT) + IOCTL(CDROMRESET, 0, TYPE_NULL) /* XXX: incorrect (need specific handling) */ IOCTL(CDROMREADAUDIO, IOC_W, MK_PTR(MK_STRUCT(STRUCT_cdrom_read_audio))) IOCTL(CDROMREADCOOKED, IOC_RW, MK_PTR(TYPE_INT)) @@ -438,16 +437,22 @@ IOCTL(CDROMREADALL, IOC_RW, MK_PTR(TYPE_INT)) IOCTL(CDROMMULTISESSION, IOC_RW, MK_PTR(TYPE_INT)) IOCTL(CDROM_GET_UPC, IOC_R, MK_PTR(TYPE_INT)) + IOCTL(CDROM_LAST_WRITTEN, IOC_R, MK_PTR(TYPE_LONG)) IOCTL(CDROMVOLREAD, IOC_R, MK_PTR(TYPE_INT)) IOCTL(CDROMSEEK, IOC_W, MK_PTR(TYPE_INT)) IOCTL(CDROMPLAYBLK, IOC_W, MK_PTR(TYPE_INT)) - IOCTL(CDROM_MEDIA_CHANGED, 0, TYPE_NULL) - IOCTL(CDROM_SET_OPTIONS, 0, TYPE_INT) - IOCTL(CDROM_CLEAR_OPTIONS, 0, TYPE_INT) - IOCTL(CDROM_SELECT_SPEED, 0, TYPE_INT) - IOCTL(CDROM_SELECT_DISC, 0, TYPE_INT) - IOCTL(CDROM_DRIVE_STATUS, 0, TYPE_NULL) + IOCTL(CDROMCLOSETRAY, 0, TYPE_NULL) + IOCTL(CDROM_SET_OPTIONS, IOC_W, TYPE_INT) + IOCTL(CDROM_CLEAR_OPTIONS, IOC_W, TYPE_INT) + IOCTL(CDROM_SELECT_SPEED, IOC_W, TYPE_INT) + IOCTL(CDROM_SELECT_DISC, IOC_W, TYPE_INT) + IOCTL(CDROM_MEDIA_CHANGED, IOC_W, TYPE_INT) + IOCTL(CDROM_DRIVE_STATUS, IOC_W, TYPE_INT) IOCTL(CDROM_DISC_STATUS, 0, TYPE_NULL) + IOCTL(CDROM_CHANGER_NSLOTS, 0, TYPE_NULL) + IOCTL(CDROM_LOCKDOOR, IOC_W, TYPE_INT) + IOCTL(CDROM_DEBUG, IOC_W, TYPE_INT) + IOCTL(CDROM_GET_CAPABILITY, 0, TYPE_NULL) IOCTL(CDROMAUDIOBUFSIZ, 0, TYPE_INT) =20 #if 0 --=20 2.53.0 From nobody Sat May 30 19:21:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1777533599; cv=none; d=zohomail.com; s=zohoarc; b=CJh1bGJYa+Gt/SIRDrJgyfuxqlAPJfBdLipQ4Q0X2HoY0WvSX6/TtX8MhdeCIZRldFvt/YAdcB5oipyc+nUMiLlNzooFxkKplN9gzYAB18De3qXmbC/96/YsBiHV3OGUuoRycv3nbX9Cx+cXF7wphcvUYYEzWlTapLMy8tDq1Zw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777533599; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=20vuBx4+GoIq8T/iY/juiBSnwdNisvsS5/iQLNx39M8=; b=BjdEaCGLJ8uih+2ydGaZbQbre7mg8rNEqEFR/1kurIoaVXDTWJpbw8q79VfvgF8J+BoRmDH8/amzAAAcRvvfYBJ10QIxhVqhkbiikZJ6obkr9kryDIwJVgtdE0HyVx6TjrGbf+OWOWp22FcVdSxKgQqLOI0uyU61KZ9KlJDMKXE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777533599134739.9686624286932; Thu, 30 Apr 2026 00:19:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wILgN-0003a9-Pd; Thu, 30 Apr 2026 03:19:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgM-0003Z6-DB for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:34 -0400 Received: from tor.source.kernel.org ([172.105.4.254]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgJ-00012y-F2 for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:34 -0400 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 2AD246111B; Thu, 30 Apr 2026 07:19:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 936EDC2BCB3; Thu, 30 Apr 2026 07:19:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777533568; bh=YYJ3K4vj89HsrgIOawl8CF/AyDRKlWRjLCis0xBu3b4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DBEZkbrmCPcnLsSLuEtbr0trBbmqLmdUDf1W2eVUjs4n8nvs0KS5zfM/MThcEPjVW DbglYFbjql/a9w0MXUCqqsNezq/JwDbuVploLCzZiDXHchXo7nw2w3i341YLzesKz/ gNwZw0ty7tn1i1KNhQhQx3oHL9PRzONAc4LTjL3AXMPgbishJWOvXIDfrrveMZcsrc I/qPpNBfEz/J6NzrWMm1eg6yGRuyp1Btw6HgZhm0/PmNfQqtY5bPv9pihpuJac8YFm 8kigE9QMe3IUqUt0nlO1HihRzeDkVW2mnsGvrixLBJQSRgCCXSYGsDgGQ3+0DFUH33 8b14HsGQHNQYA== From: Helge Deller To: qemu-devel@nongnu.org Cc: Laurent Vivier , Helge Deller , Pierrick Bouvier , Warner Losh Subject: [PULL 2/4] linux-user: Flush errors by using exit() instead of _exit() in error path Date: Thu, 30 Apr 2026 09:19:20 +0200 Message-ID: <20260430071922.15341-3-deller@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430071922.15341-1-deller@kernel.org> References: <20260430071922.15341-1-deller@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=172.105.4.254; envelope-from=deller@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1777533602720154101 Content-Type: text/plain; charset="utf-8" From: Helge Deller Similiar to previous patch - ensure that we always flush I/O by using exit() instead of _exit(). Reported by: Tobias Bergkvist Reviewed-by: Warner Losh Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/2544 Signed-off-by: Helge Deller --- linux-user/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/main.c b/linux-user/main.c index 84e110dfe9..86d04cca3c 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -975,7 +975,7 @@ int main(int argc, char **argv, char **envp) info, &bprm); if (ret !=3D 0) { printf("Error while loading %s: %s\n", exec_path, strerror(-ret)); - _exit(EXIT_FAILURE); + exit(EXIT_FAILURE); } =20 for (wrk =3D target_environ; *wrk; wrk++) { --=20 2.53.0 From nobody Sat May 30 19:21:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1777533622; cv=none; d=zohomail.com; s=zohoarc; b=RbGAJgMQVAjuHk2QUmYw2Wfiqum71RLEpTdNYdMaA12MdzsfcnZosqqRoH7OR490Lpi8I6y1FpiVKId4YiLPYWWZ94oCC22uyvM7X8FOd8hqa0vC9esFXhZqKJXC9DYe6XQ9yfz29DsiNulBqomxM4DwM/ZNz/9MXowObC82LTE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777533622; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Dvg5XPRnDa5k/hTksVzr8g6CdK56fJ7Xwkr7hctucFw=; b=XL+EnO8A7J5nZu3xxeJZqaCBllx/Iz+M5CWM5CsxXPOr2MELbmBMZZFErpx+RZkFGZCribB6vDEbFgmVuL1BM9Ytlat9wugej1EnNAOhHnlxzwtVGrhxVt/KKYo6sxOMgfsep9v16vNYmV0CuuUfOYdv1HbXNCJ73thRbbDKUSI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777533622599250.14465377304998; Thu, 30 Apr 2026 00:20:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wILgN-0003ZR-8J; Thu, 30 Apr 2026 03:19:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgL-0003YY-40 for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:33 -0400 Received: from tor.source.kernel.org ([172.105.4.254]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgJ-00013J-Ey for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:32 -0400 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id AF94D61145; Thu, 30 Apr 2026 07:19:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52D4CC2BCB4; Thu, 30 Apr 2026 07:19:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777533570; bh=2zHQrRG0goJ++Rc1kkqjW925uojIri28hDyU+Vdmp0E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DQNWEbmgiLeqf+qHyLRMuCeUJYh43dPEyOd7H+o/oqDKy2y4OhwfFHM7bblXV0Psm BD+SGyWt/1bRU7e644sTdQbdmF6ZjV4xX9vdC/b2WFcxW4ecKvz9gh1UJDkJZt0SeG au2indjQz6DKV0RijkTzTTq8aSkm1NT9ppTPwbUt1TjI++qmlbqI+2Em4aVDYnJYhX fudT1OYOgzSyNd7RgpZaqxH4vnOXEgbtVFipQaOX+mKPCGJk+1vh0Ajc4e31xOdtTn iHDpcdO3E8P8RQlSEr9nc53eSSPKxJDgh3HrJMAQlDcyywN5GKi/ZsYuGktc7lWKHk /cNI1jFmG2AFA== From: Helge Deller To: qemu-devel@nongnu.org Cc: Laurent Vivier , Helge Deller , Pierrick Bouvier Subject: [PULL 3/4] linux-user: Allow getsockopt() with NULL optval address Date: Thu, 30 Apr 2026 09:19:21 +0200 Message-ID: <20260430071922.15341-4-deller@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430071922.15341-1-deller@kernel.org> References: <20260430071922.15341-1-deller@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=172.105.4.254; envelope-from=deller@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1777533625100154100 Content-Type: text/plain; charset="utf-8" From: Helge Deller Some programs test availability of socket options by asking for the value with an NULL optval address, which currenrly always trigger an EFAULT in qemu. Fix it by allowing a NULL address, in the same manner as the Linux kernel on physical machines. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/2390 Signed-off-by: Helge Deller Reviewed-by: Pierrick Bouvier --- linux-user/syscall.c | 50 +++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 4594909242..d68edb7afd 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -2644,6 +2644,10 @@ get_timeout: if (ret < 0) { return ret; } + /* special case: destination address is NULL, return 0 */ + if (optval_addr) { + len =3D 0; + } if (len =3D=3D sizeof(struct target__kernel_sock_timeval)) { if (copy_to_user_timeval64(optval_addr, &tv)) { return -TARGET_EFAULT; @@ -2844,7 +2848,10 @@ get_timeout: } if (len > lv) len =3D lv; - if (len =3D=3D 4) { + if (!optval_addr) { + /* writing to NULL does not give error */ + len =3D 0; + } else if (len =3D=3D 4) { if (put_user_u32(val, optval_addr)) return -TARGET_EFAULT; } else { @@ -2877,18 +2884,24 @@ get_timeout: return -TARGET_EINVAL; lv =3D sizeof(lv); ret =3D get_errno(getsockopt(sockfd, level, optname, &val, &lv= )); +write_ret: if (ret < 0) return ret; - if (len < sizeof(int) && len > 0 && val >=3D 0 && val < 255) { + if (!optval_addr) { + len =3D 0; + } else if (len < sizeof(int) && len > 0 && val >=3D 0 && val <= 255) { len =3D 1; - if (put_user_u32(len, optlen) - || put_user_u8(val, optval_addr)) + if (put_user_u8(val, optval_addr)) { return -TARGET_EFAULT; + } } else { if (len > sizeof(int)) len =3D sizeof(int); - if (put_user_u32(len, optlen) - || put_user_u32(val, optval_addr)) + if (put_user_u32(val, optval_addr)) { + return -TARGET_EFAULT; + } + } + if (put_user_u32(len, optlen)) { return -TARGET_EFAULT; } break; @@ -2939,20 +2952,7 @@ get_timeout: return -TARGET_EINVAL; lv =3D sizeof(lv); ret =3D get_errno(getsockopt(sockfd, level, optname, &val, &lv= )); - if (ret < 0) - return ret; - if (len < sizeof(int) && len > 0 && val >=3D 0 && val < 255) { - len =3D 1; - if (put_user_u32(len, optlen) - || put_user_u8(val, optval_addr)) - return -TARGET_EFAULT; - } else { - if (len > sizeof(int)) - len =3D sizeof(int); - if (put_user_u32(len, optlen) - || put_user_u32(val, optval_addr)) - return -TARGET_EFAULT; - } + goto write_ret; break; default: ret =3D -TARGET_ENOPROTOOPT; @@ -2986,8 +2986,14 @@ get_timeout: if (ret < 0) { return ret; } - if (put_user_u32(lv, optlen) - || put_user_u32(val, optval_addr)) { + if (optval_addr) { + if (put_user_u32(val, optval_addr)) { + return -TARGET_EFAULT; + } + } else { + lv =3D 0; + } + if (put_user_u32(lv, optlen)) { return -TARGET_EFAULT; } break; --=20 2.53.0 From nobody Sat May 30 19:21:05 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1777533592; cv=none; d=zohomail.com; s=zohoarc; b=Gsq+YIbGY1WnSvz3ZKHg3XaMCkFF/SeaWChzLDhJCCeJM1qk0uKHAkiZt8+AuBHnewxFNHzwqsWZ0CKyGxCrthFfvk46kP/EcgiwmV8SvPRkDcAfYOxUFfjyfXiOqNh6kEoxoIxxPzESyWY3VVgDe8KvMV1NcXbhzL3KaENm9v8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777533592; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=bkX4qiKhrmgUDJxjqibG4s0YlitoSvblSwbNLM7RFfg=; b=dJrywgIkh3jnLfex4YvyqeQPjFxThLg+dPuPM9O88agS60POu3/Qi1Cao3I7aq+AkElBF87/ugnBRv+ij73uedWkkWVGHHSf/bdjdi30yE+kCM6blVNJ8GrLR4shj3NusaLQBjftKLDiE7D0LRuDq4mUabcv0Hrs3Z/GhK4CdaE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777533592538897.1435050577583; Thu, 30 Apr 2026 00:19:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wILgQ-0003aq-2Q; Thu, 30 Apr 2026 03:19:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgM-0003ZA-Ia for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:34 -0400 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wILgK-00014D-ST for qemu-devel@nongnu.org; Thu, 30 Apr 2026 03:19:34 -0400 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 404596132D; Thu, 30 Apr 2026 07:19:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D780BC2BCB4; Thu, 30 Apr 2026 07:19:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1777533572; bh=xPd4mYwGCWKwRuBmVbsvO0gF+W85kx/Ix/pQDEmxgro=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZCnitvkC022m6HcRIF0szQqHYhPEKt8ugaYjka8uks7LrSa/z77Nu5nbnmYnd8KqH pHu6jcUp7sp3RWdzOotRV75Ztfsnjm3KSi8zRFufzFk321cN6OOq5O6lowonTa7+Nn /uCtKaHC+YJj0tqX5+EOufZrz9UZI/aLUJs2fcIiED+zslYTkWSp+2Gpcyfe3GiwT2 eaKlJPTYsImzXwHxOPimP4ORrdzsV8EwTTYiaC1M3t6yLtjqUUp78F1nzqf7bHQeJf Il8trewOdxLP4YXulMI+TZFOzMCZ/N/4MbrwYotjtqS6DDTQzfPw/eizaPZ7eJwvPC GEPgxHLKWZlRQ== From: Helge Deller To: qemu-devel@nongnu.org Cc: Laurent Vivier , Helge Deller , Pierrick Bouvier Subject: [PULL 4/4] linux-user: Translate errno in IP_RECVERR and IPV6_RECVERR Date: Thu, 30 Apr 2026 09:19:22 +0200 Message-ID: <20260430071922.15341-5-deller@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260430071922.15341-1-deller@kernel.org> References: <20260430071922.15341-1-deller@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=2600:3c04:e001:324:0:1991:8:25; envelope-from=deller@kernel.org; helo=tor.source.kernel.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @kernel.org) X-ZM-MESSAGEID: 1777533594489154100 Content-Type: text/plain; charset="utf-8" From: Helge Deller Translate host error codes of IP_RECVERR and IPV6_RECVERR control messages = to target error codes before returning to the caller. For example, this is important for architectures (e.g. hppa, alpha, sparc, mips) on which the value of ECONNREFUSED is different to the value on a x86= _64 host. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/602 Signed-off-by: Helge Deller --- linux-user/syscall.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index d68edb7afd..d3d9fffb54 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -2008,7 +2008,8 @@ static inline abi_long host_to_target_cmsg(struct tar= get_msghdr *target_msgh, tgt_len !=3D sizeof(struct errhdr_t)) { goto unimplemented; } - __put_user(errh->ee.ee_errno, &target_errh->ee.ee_errno); + __put_user(host_to_target_errno(errh->ee.ee_errno), + &target_errh->ee.ee_errno); __put_user(errh->ee.ee_origin, &target_errh->ee.ee_origin); __put_user(errh->ee.ee_type, &target_errh->ee.ee_type); __put_user(errh->ee.ee_code, &target_errh->ee.ee_code); @@ -2062,7 +2063,8 @@ static inline abi_long host_to_target_cmsg(struct tar= get_msghdr *target_msgh, tgt_len !=3D sizeof(struct errhdr6_t)) { goto unimplemented; } - __put_user(errh->ee.ee_errno, &target_errh->ee.ee_errno); + __put_user(host_to_target_errno(errh->ee.ee_errno), + &target_errh->ee.ee_errno); __put_user(errh->ee.ee_origin, &target_errh->ee.ee_origin); __put_user(errh->ee.ee_type, &target_errh->ee.ee_type); __put_user(errh->ee.ee_code, &target_errh->ee.ee_code); --=20 2.53.0