From patchwork Thu May 19 15:10:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 54235 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 10DCC3954434 for ; Thu, 19 May 2022 15:10:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 10DCC3954434 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1652973058; bh=s9BAMwTnhVdGLDwvf75Y/Rm5DYgS1OjcdnwyG6TkPyE=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=A+hUZtDAzFUnNUTlAPnaaAOnuFxal7CxDw7OQ2aUlPVUDpSeipTViFiSvDmYO+x7B rDI1tLsrKIq4vqkx+yMy9FwfsBOoTf4UaTTooqzN0chUzIsKyNm0Pz3KcEJ7xf0Y2w qz0uKmXZheoi82Kke/8FZSjD7dVGyul98CE9o6jc= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2052.outbound.protection.outlook.com [40.107.21.52]) by sourceware.org (Postfix) with ESMTPS id 09C6A394BE17 for ; Thu, 19 May 2022 15:10:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 09C6A394BE17 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=TnE8fvY5tGqGGndfevGfy5o5Thh9cObg2k7j4t8+V8w7c9wf7mLM6UVCHFPXjsHj7kjgoiRHJO60kJ0epaQNhi2Fr8YotUbFZTr2wkAMjFCOxZf8WQNMDUmYHhxiqqg3HHnBDkqIdLqdyaAlIK4QXDwfCP81/yrfq0bt8qH3deMgSHTOVc1w2VExcyNVOwVKQa/1gDAg8eavGo4Skgg0I12ueQuUl+dq8dki3029U+be4oysOn7LEyzZXl3xCn6vZEsycR8inlx5x3uKuWR9/HJj8r+4zmDXd6cMmLkKZl5Kiw3c7fmYXWxixkrtlW7QFKcCiPzr4KxLP1ndgTSDqA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=s9BAMwTnhVdGLDwvf75Y/Rm5DYgS1OjcdnwyG6TkPyE=; b=XJiHMEJh3o68kwxLh8niCSe18q3AuLQAGleohF5zEoDXNVd11lQu9Ml/KzyyeZzF6oNUC5MPHDD4f2ztkWsmm9y3s8wOv6nRs7Pgnpqtg+4iQNV6DPcvoRmgQAfzb8u7Bj1WOI9ZM+u0YM49A8sSBTSi087Aib1EnkbZ2Jd36P4nrJJ5201f6x8g3oVvCRAMbf7+lStc7pAdz6a2uPzuBFb4Q7oyXFHGkda60N8BVO/I4icpVMR5azZc0XNbj5MHWTPLXu/xNpFrhuXmaSs2Ja4TXBnBsuEtmhtHY5F0EP+aqk0E342SDff4XIn8SnhWbqCMGqKfnOX5h8TtQrzjTg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DB6PR0301CA0068.eurprd03.prod.outlook.com (2603:10a6:6:30::15) by AM6PR08MB4740.eurprd08.prod.outlook.com (2603:10a6:20b:ca::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Thu, 19 May 2022 15:10:32 +0000 Received: from DBAEUR03FT006.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:30:cafe::b7) by DB6PR0301CA0068.outlook.office365.com (2603:10a6:6:30::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.16 via Frontend Transport; Thu, 19 May 2022 15:10:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT006.mail.protection.outlook.com (100.127.142.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14 via Frontend Transport; Thu, 19 May 2022 15:10:32 +0000 Received: ("Tessian outbound c1f35bac1852:v119"); Thu, 19 May 2022 15:10:32 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a75d5110f3b7a78a X-CR-MTA-TID: 64aa7808 Received: from dfd4991e0467.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D7D14EDE-7698-40C8-AA76-C1E4EAC8EA9A.1; Thu, 19 May 2022 15:10:25 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dfd4991e0467.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 19 May 2022 15:10:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ACsCC96Crj331Yds0Fv4SZ9MFpK0gfQbCM/B3Zhfdyx7jb9s917rHBrbM/jSswiY/+4yS6/gdZ5Q6wWPVgOC1Lgv17oT1d6U/hUUEj5nvbxrg0od0sBmhX9+/syvWe2IKmPnS8uM2Ibm8jEE/GzsQ/5i7rh+cne8JyS8bQoq48jJGinsQd/u0jxtrXHbOHATPqe7jioV4Fhjz5f/e1rXYhTKA2cIU5GjUIG1oKlIoqw3Fqg9gY777zk+MfnRgXJ9stE25ca6xmoJe4K0zAW0IpLHRsJFifc3OBFn9AYcjmVIHFxFINn6Hso3NGGNxaJQYv4Txdmh1Cf8MOjQyA+JwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=s9BAMwTnhVdGLDwvf75Y/Rm5DYgS1OjcdnwyG6TkPyE=; b=O1323Bap0Fw2vp5qvdO5n+ichP+DT0JvS/zlbo4KVf8IBkyrTCAiQWBgF1/gZP2dWVCrnTfYyRzCtGDHDv8Rtz8ruxSRKimETzI72g3WX0FetCf1/6YLT7bqSXOFFL5fRV0nHNs/p+FXBfN8XvC0nzLT/dzufYsSIodGp2TePazFWMWLD+y2SG5L7tknd09nHj/+8DQpFJLJHF8r6AsG1k0KsXJMNOTueYsjhK6e3CsbB9fGGiu+VkQKlUkyWWWOsB3WM3jBpRQWQAxyUET0X+PI6+WAKjCt7vESyNc8rZ6TqeBPVti6EZ7Z5WpYansjTVLtjdhfa15Pgpbv0MYoJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from DB6PR0801MB1879.eurprd08.prod.outlook.com (2603:10a6:4:73::9) by VI1PR0801MB2096.eurprd08.prod.outlook.com (2603:10a6:800:8b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.16; Thu, 19 May 2022 15:10:23 +0000 Received: from DB6PR0801MB1879.eurprd08.prod.outlook.com ([fe80::4c79:5ff3:ff33:7ee1]) by DB6PR0801MB1879.eurprd08.prod.outlook.com ([fe80::4c79:5ff3:ff33:7ee1%11]) with mapi id 15.20.5273.016; Thu, 19 May 2022 15:10:22 +0000 To: 'GNU C Library' Subject: [PATCH] Avoid RMW of flags2 outside lock (BZ #27842) Thread-Topic: [PATCH] Avoid RMW of flags2 outside lock (BZ #27842) Thread-Index: AQHYa5JSAJa6BcYBU0GjgjmKmoALdw== Date: Thu, 19 May 2022 15:10:22 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: ec40ada2-c50a-44d2-64e2-08da39a9b7dd x-ms-traffictypediagnostic: VI1PR0801MB2096:EE_|DBAEUR03FT006:EE_|AM6PR08MB4740:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 2ygyF1Mjx2cyoeWyoQJ5pfNTPj0iXku3MX1KeDTLehTfyhyxWHwFwLAVb6HbrDW/x1rRbnyoljK6IOe/LxlTvlVn8Pxa6r1Hx1sQZyLLNfFFi8C1tMu2nJTo3tqrzqQRGcqiAnoQaWlk6y/FHe45uy1giE9i/xq80lMxzcT+8C/2JKRxyobCN0Hz9lVk8Xj1SGWaeGX5z2j2fJ2xAjifF0BgKjTRwY1cgUL0YAkGyasPr+1Z+tTA+rH8vvfdYJxqQtvUizUZbfAWHwJiCBMQQHRIMosPOLy+R1R/Al/KDHqujARdaPYSju0HYw2iB0s/K6pPFsiJ/XVd1l92RbvEIiHmf3cP35n8C0Rhyg+Cqg9fBXrDt2tSWHRLcmseEobLhboVq9xGiRSD0qzB8s1vaN4FsoSOVAxF3efH4iCEaVIRgPbA2dNIA2iIn6/NUdwho1yWHNUagR3tjrbDJcdO0ch8zeQDeN++t3CGG0NnLgEzv9oSNqlWxupky3ZFaOPr3TUI8MM45iCNaeVH6+5lRgUmXUOkXLipxwN3G5K6a07HilwJ0uGIPf/qOwBplBnzXrmgjN1YFvWSedoNq6loBtw9TaBA8/Ray0BqXal5BO4k43fiPc9TYgjfNM/y8zb6HzoWauxTc5VyKxHaFdDFjU9r5lrOhOsLS/7akb1wEO4P8NzQmWtewAQ46qTPqM+tZHDoTfSRyXjItMK7Pfgrtg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0801MB1879.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6506007)(66446008)(66476007)(26005)(66556008)(64756008)(4326008)(6916009)(5660300002)(8676002)(186003)(66946007)(76116006)(91956017)(86362001)(9686003)(38100700002)(2906002)(8936002)(55016003)(508600001)(52536014)(7696005)(33656002)(122000001)(83380400001)(4744005)(316002)(38070700005)(71200400001); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB2096 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 33350deb-b3c0-4c7f-1d28-08da39a9b222 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ApdMUCD19hhiRqXGu9fV2vBirDXQu0pvkj7yHnkiGPI3/K1VQzLbgca5mRIMTqwne6t8w1RTqZbaaWKtTJybHpMHrtGL1mmurUGBl/gRhe2LPUMaXAn6TFzx5P9eked+xXhHfTBwXhXxuCOSd5q0/AP/ZaAM3JwobM4NkXXAloWMMnAJN3Che/dueymKNa4rG/Y71YqdXTBOObiHeckntUU/KgwkFwAc71Kt3ctRVFQqhkfODPtn3j3Vw/jPFO0vUZ6b33OwCHuhOn7SjUonLM035M3JT9GbUk6gsjKCDTQ4T138ibf5U2SWNJfwAvQPLw5kQRA/tcRnKnIW7KLbO8F7EFmblPOeNZGPkjW4iOO0m22KLJwPTaYRP4BisFVs8nHR+KwzT7P9ultkH4v3w4Mh7fbeb11zWGGbIdx+OhAIz3yh/LxU2uOcn0SD+TCxHUOPGVxfxIarJQNWpW+R7+sUxXQxACVhVQBPht9V2iIwTtih2Dk2IG7hStSiUyYOzvryu+LzSwOG4xzRURtP6aeh9UeJHKTF7ZKYnDQIK0blr5UhhQzaROm0rl5wDtkYPat5z+5ZfvdC5CLgMherOxbIuT+tdh1oRjtkSaZBnrxoyJvfKge50WJoV4DVYGJUxqb8pkehR2QWyow0WiIv1v5Fg3Xr5yzLwOYqTz+r2AZC967hqF/2mV90E3/3i8gf X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230001)(4636009)(46966006)(40470700004)(36840700001)(4326008)(7696005)(356005)(107886003)(186003)(9686003)(86362001)(4744005)(81166007)(82310400005)(70586007)(70206006)(8676002)(5660300002)(6506007)(2906002)(26005)(36860700001)(508600001)(83380400001)(40460700003)(316002)(6916009)(52536014)(336012)(47076005)(33656002)(55016003)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2022 15:10:32.3342 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec40ada2-c50a-44d2-64e2-08da39a9b7dd X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4740 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilco Dijkstra via Libc-alpha From: Wilco Dijkstra Reply-To: Wilco Dijkstra Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Remove an unconditional RMW on flags2 in flockfile - if _IO_FLAGS2_NEED_LOCK is set, we are single-threaded and we can safely clear the flag. This fixes BZ #27842. diff --git a/stdio-common/flockfile.c b/stdio-common/flockfile.c index a5decb450f8d477e3105d02661282afeab58f88b..7ba9ab59082d2c1dfba7d5e9a91175c9dec7ec49 100644 --- a/stdio-common/flockfile.c +++ b/stdio-common/flockfile.c @@ -22,7 +22,10 @@ void __flockfile (FILE *stream) { - stream->_flags2 |= _IO_FLAGS2_NEED_LOCK; + /* If we're single-threaded, turn off single-thread optimizations + when locking a file. Avoid updating flags2 if multi-threaded. */ + if (!_IO_need_lock (stream)) + stream->_flags2 |= _IO_FLAGS2_NEED_LOCK; _IO_lock_lock (*stream->_lock); } weak_alias (__flockfile, flockfile);