From patchwork Tue Jul 19 14:12:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 1658065 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=Usjv+ad7; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LnLQV2xbpz9sGG for ; Wed, 20 Jul 2022 00:13:06 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 459B83851C29 for ; Tue, 19 Jul 2022 14:13:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 459B83851C29 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1658239984; bh=fuT9/CF3EUnFj9cWrjMYqeUnZouK6sIRTL/I/Pw+6Gw=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=Usjv+ad7/C60BMrNWpQUfP2ao8G6jbhyWSb0szZqrV4tMRBueb0O2eJJIAElRqaeo 4TAFC2nrQYOGimYkVs9cO0eURUY4ML3aDZyAhlpbVQhypO1yPripZhg7Z5qNajD4Zp KJ5mxMmFiLUWMY13rgqwh+aapUwNZ0Ij4IU5sH2Q= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10044.outbound.protection.outlook.com [40.107.1.44]) by sourceware.org (Postfix) with ESMTPS id D17023857036 for ; Tue, 19 Jul 2022 14:12:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D17023857036 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=W2k7s/j0a9c1gRJeXAJvjlcLeSYCp9LeD+GZQsFTxRnE0AKVLSPJgSHS2+tLsqwzlhFXLfeFO7ZX/RsnCJRKR+Smtc4CJncvh5T+Gbf+Q73fZlwrnEUZ9WjA+KQHjHvQMRPGO5VRxvtqj+QQkR2wszvUFlPrUraFCNCNyS6+WbxDeeNi6gPI4TiRpv+L7ZsGBOxHyyhwNUcTf/RVhARqx/nia2Ghove3IHZY0pAsK0g2cOxmRudOqSBCQtR3aSA9Ab8kVBCH8TsdlRzVoki+QPuCXO50cdAUMBIF5Tf7Sq6Kt7V6rhzmQW6LqYwgQjlBeo3Z+Oor68652Deqtv2ViA== 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=fuT9/CF3EUnFj9cWrjMYqeUnZouK6sIRTL/I/Pw+6Gw=; b=HM+OFuTPEtouMwAYoUunEhdWowAo+cTttZhHzw3Ntp74Bri0cOBa5mM8fjn3EnDZ7FZW9DlSNQHaO4A6BRq+On7KRYgEi5PTSwiCuK3ECZOkPxR9kU3gemOrpajapw43qLUbBQQh7mKmekPSLUruZZS15hbSqUyDa5XTvoQJjZPeGpKfXaOxL/mtXYdU7kYTOX76M//2ExnvSXdTJg7GEGfszXGItKxcI16sINEBruTOs1KoycXVlz33TP6l3RixHHw0hPHxRRtgIlll5qrn/2NJdT/ALTm2bHed7LHC4pH+W3ySkcvbzKT9l9nI3xXycSOX8yfcMU3yxQY97YP2kQ== 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 DB6PR07CA0064.eurprd07.prod.outlook.com (2603:10a6:6:2a::26) by DBBPR08MB4377.eurprd08.prod.outlook.com (2603:10a6:10:c6::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.20; Tue, 19 Jul 2022 14:12:44 +0000 Received: from DBAEUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:2a:cafe::94) by DB6PR07CA0064.outlook.office365.com (2603:10a6:6:2a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.16 via Frontend Transport; Tue, 19 Jul 2022 14:12:44 +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 DBAEUR03FT043.mail.protection.outlook.com (100.127.143.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.12 via Frontend Transport; Tue, 19 Jul 2022 14:12:44 +0000 Received: ("Tessian outbound c883b5ba7b70:v123"); Tue, 19 Jul 2022 14:12:44 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4e1f446ce5097c47 X-CR-MTA-TID: 64aa7808 Received: from d6dc8797296f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3F3AD14E-DB98-4B9D-A80A-9E86A5A96871.1; Tue, 19 Jul 2022 14:12:37 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d6dc8797296f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 19 Jul 2022 14:12:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dg+07nKkLtDswlcglqkLjTljw0QMgvUbnQVct9qXasqtYudkE7ZjMBssGk7E4Wq90UPV+oPjighaXHsZRSA70x3hYHYH/iiUEuEH9f17sOtFn3RaHPg4jYVYonba54u6hKfyT1I5Ce9E3gy0GLX/rnRC9vLGRADfTkk8ebqkWy5LuPTwOIJXLkQHD9/yWrA8NBxhzNMpXPSlTKcu2mg81wKXULcysrcUrJY7YBiQr+g/y4YH/5eRLzvddHIMhvU0bhHi8srPypGPMqb+qB+zwXQTbCzLjWUlueHBI6vGoYKShGtWZMi1M8oBv4ky5GxLhvnHK8Q7g7q90iy9uLYDag== 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=fuT9/CF3EUnFj9cWrjMYqeUnZouK6sIRTL/I/Pw+6Gw=; b=Hzj7AC9Gh5XJ2FX8mat5QqBt+982VsDlky8/A7Ilk5Xz1ezdLT5T08Zcbfuu8t8Jzojrh1daS9aD976WrcQFJ01t3UU3FgyECCpWaGjGlx/TZW6K5DMQ49qmQtUjXwTvfKCL1sgt9RQw+Ula3kwh8ldBg0LUt1HcDLK6ZiBa9ffqE/NqlpwqIJeJP3Bo1k3HKmxRBHN57EsT/rGwtg9u9Orb5o8jky4m0CcAhjA58vMhVAqcCOaEsO+ZPAut+K2g+j/3e0yQnjnd/P+/bKQQ5MG5+sR86JfoYxm1bWKYYPcEEViwu2fh14Oq9xMehZtyKUD8GUF7z2ZYMbkC+Ymxhg== 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 AM5PR0801MB1668.eurprd08.prod.outlook.com (2603:10a6:203:3c::14) by VI1PR0801MB1998.eurprd08.prod.outlook.com (2603:10a6:800:89::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.20; Tue, 19 Jul 2022 14:12:35 +0000 Received: from AM5PR0801MB1668.eurprd08.prod.outlook.com ([fe80::845f:5b9c:410a:f581]) by AM5PR0801MB1668.eurprd08.prod.outlook.com ([fe80::845f:5b9c:410a:f581%5]) with mapi id 15.20.5438.023; Tue, 19 Jul 2022 14:12:35 +0000 To: 'GNU C Library' Subject: [PATCH 2/4] Use builtin atomics for compare_and_exchange_val/bool Thread-Topic: [PATCH 2/4] Use builtin atomics for compare_and_exchange_val/bool Thread-Index: AQHYm3kcE2gWFVE4ikm+GIqIXwnMEw== Date: Tue, 19 Jul 2022 14:12:35 +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: 8709d3bf-4aab-43c6-a985-08da6990c036 x-ms-traffictypediagnostic: VI1PR0801MB1998:EE_|DBAEUR03FT043:EE_|DBBPR08MB4377:EE_ 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: /QpQFlxXZXrUIuciAwE8v71p5JeKsBmwccVylTBFonvcIdngE4fdciXRJtDupoxwJ6eu8d85GExW8wXhl3PBU5wLVxG3LqPhUNzVvbHCqIP+DQT9YRHe0V6KVCxm54DMGZevQhQV9LYK9dyNEcsv+iGaPlTzRtNqGrxL6rbsU8GtoGM80rDqPmbKn7+pSmSXdiPwoD6tudoh/pc4dh7VBShhzWiqrsm72ERE9uzqXdPxw2O/XN3X0haBewwSWkj5FKTM0A8OYcojZo0eDmOP7pF2IeIzYskYK78GtfdOGYpL6pMhMP6kRzqNUhT6YfhTfFE+OmhLRQi4xmrBTwQerDLkGpfSVHF6CCVoCznUXncTP+pfFjjwFJEeFppC0SznfpX4LqXAKyTFeyr7Od1xYSYSWtGEc914+dcwTGlZ02bXv4h9DnpeAjtZkSiCCyInkBb3GMHwchsW2WTC3tNT1p6iWTj180SQvmQ1txZKKvMTPTKRN6rN/eK/p3ywa9p7V6pvuFOJrFwiXNO1dz7MkgQQNSDgIYeJy796g/7K0dvqbxVrEwXNaBa8p5KW6GlvOie1AcWy91VhdkTczA5Um3U7dVursebRR7nOCMBlzKOxc3bqzUVtjPBnzO6m9auIUZfyGQ9P0FmJ+HU6QNUcXhc8ghTkKV+vT1eyW/Iqm1/yeX66kVn7hH2f970i8itb2F3B6cnNwLqZEErq9WhwWGynTpKqtHRQVwXCae4y4rckwS2pYRoYB/su2LjFXEFVtSSU9PGOPwa2aTlPdmX20rETeByc9eIxLhoebj6gT8/n6v11MOzeNlNNGAPPGWkN X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM5PR0801MB1668.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(376002)(396003)(136003)(346002)(366004)(71200400001)(478600001)(86362001)(38070700005)(41300700001)(6916009)(316002)(6506007)(186003)(26005)(52536014)(66946007)(66446008)(8936002)(66476007)(66556008)(8676002)(5660300002)(76116006)(122000001)(91956017)(83380400001)(7696005)(33656002)(9686003)(2906002)(38100700002)(64756008)(55016003); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1998 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: DBAEUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: a652248f-bb87-4433-c0af-08da6990bacc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x0jsExfK1OoKeZQPrdKEwqwld+ol7PRGQ62nmzsgebi5KJeUULVzvVx3yantPFEisk/6rGnyt5CoPvE5Uoqo+jE1glQXrYQhqQJkkNURGjFcE+RoYTgvWAVH7QqJH/F/FKSorUO02iI+ji6QAZqHaClNrrsTXQM+HakOAOPwwziip+G5UQziiUpukunOadBPdy+RpLbqTknHVuVtXAF12Za2f5uuF0UrK4j2JDStAGgqShPZaQpfp7SAiiV+ABG4YkhciCvJSTXyqDZK1i+nhNjNjBIZAn4+y2aUXEtGPHEY28uh5r/wVm/j68F4vCbfoBBPGWDS1eSTyp0h5K2uF43U5cE3/Borwf/VvJvvQkEUi8x/1LESzWSdgyw4F4/rkw/InOQUKg1mKbLrAaMa0GkuZIDfFDy/YqKL7bCeOTDxRNvsfDjYD69Vu65fDoMCiv9V9HpFX7CqbBp7r/MJU/jFvcnGMFmbsZkKuVCaWgc9jLeH5I2M1khB9BQWds01XVHmNEHGHOftgWgTdwmSF26C0AxYPxLxDmUY+15Wlw88qSobk9skndGUaFq33SOqtr0/TboSHp2/vj0z4h+/Qn4ZZ1uz0+Ma6nDcGgO9Ojq90+1S2TkuhkuRzDsFq+0pORT/qVeOcFIHP+xWZdS+xTQXglk4K0+oddmmgpTk+wBwqBz699oAK/s+dWAv6hHmQfEQEmqt/tStIF5xuxGnSL05PMiZ4EieWxTMlu/NR+r2+krZF/WU1zhhG5wy7ALmChobCkbFzox5kru3BOsgS9RbxVM4HBn13/jch/pUzkFdWawDuMqp6UmDcMnIQhfB 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:(13230016)(4636009)(396003)(376002)(136003)(39860400002)(346002)(40470700004)(46966006)(36840700001)(70586007)(8676002)(8936002)(70206006)(52536014)(55016003)(40480700001)(86362001)(478600001)(356005)(26005)(41300700001)(6506007)(9686003)(36860700001)(40460700003)(2906002)(7696005)(336012)(5660300002)(47076005)(33656002)(6916009)(186003)(83380400001)(316002)(81166007)(82310400005)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jul 2022 14:12:44.7361 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8709d3bf-4aab-43c6-a985-08da6990c036 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: DBAEUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4377 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, 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+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" Define atomic_compare_and_exchange_val/bool_* in terms of standard atomics. Later cleanups will replace existing uses given the interface is very confusing. A minor change is needed in nscd-client.h which has a volatile parameter. diff --git a/include/atomic.h b/include/atomic.h index bf6417621a34458a1d7585ee6a7a24cea6670a07..e59e210e83fa301f48c4cdb3676d37e4980cc4a2 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -78,37 +78,30 @@ /* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL. Return the old *MEM value. */ -#if !defined atomic_compare_and_exchange_val_acq \ - && defined __arch_compare_and_exchange_val_32_acq +#undef atomic_compare_and_exchange_val_acq # define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \ - __atomic_val_bysize (__arch_compare_and_exchange_val,acq, \ - mem, newval, oldval) -#endif - - -#ifndef atomic_compare_and_exchange_val_rel -# define atomic_compare_and_exchange_val_rel(mem, newval, oldval) \ - atomic_compare_and_exchange_val_acq (mem, newval, oldval) -#endif + ({ \ + __typeof (*(mem)) __atg3_old = (oldval); \ + atomic_compare_exchange_acquire (mem, (void*)&__atg3_old, newval); \ + __atg3_old; \ + }) +#undef atomic_compare_and_exchange_val_rel +#define atomic_compare_and_exchange_val_rel(mem, newval, oldval) \ + ({ \ + __typeof (*(mem)) __atg3_old = (oldval); \ + atomic_compare_exchange_release (mem, (void*)&__atg3_old, newval); \ + __atg3_old; \ + }) /* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL. Return zero if *MEM was changed or non-zero if no exchange happened. */ -#ifndef atomic_compare_and_exchange_bool_acq -# ifdef __arch_compare_and_exchange_bool_32_acq -# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ - __atomic_bool_bysize (__arch_compare_and_exchange_bool,acq, \ - mem, newval, oldval) -# else -# define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ - ({ /* Cannot use __oldval here, because macros later in this file might \ - call this macro with __oldval argument. */ \ - __typeof (oldval) __atg3_old = (oldval); \ - atomic_compare_and_exchange_val_acq (mem, newval, __atg3_old) \ - != __atg3_old; \ +#undef atomic_compare_and_exchange_bool_acq +#define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \ + ({ \ + __typeof (*(mem)) __atg3_old = (oldval); \ + !atomic_compare_exchange_acquire (mem, (void*)&__atg3_old, newval); \ }) -# endif -#endif /* Store NEWVALUE in *MEM and return the old value. */ @@ -333,6 +326,19 @@ void __atomic_link_error (void); __atomic_compare_exchange_n ((mem), (expected), (desired), 1, \ __ATOMIC_RELEASE, __ATOMIC_RELAXED); }) +# define atomic_compare_exchange_relaxed(mem, expected, desired) \ + ({ __atomic_check_size((mem)); \ + __atomic_compare_exchange_n ((mem), (expected), (desired), 0, \ + __ATOMIC_RELAXED, __ATOMIC_RELAXED); }) +# define atomic_compare_exchange_acquire(mem, expected, desired) \ + ({ __atomic_check_size((mem)); \ + __atomic_compare_exchange_n ((mem), (expected), (desired), 0, \ + __ATOMIC_ACQUIRE, __ATOMIC_RELAXED); }) +# define atomic_compare_exchange_release(mem, expected, desired) \ + ({ __atomic_check_size((mem)); \ + __atomic_compare_exchange_n ((mem), (expected), (desired), 0, \ + __ATOMIC_RELEASE, __ATOMIC_RELAXED); }) + # define atomic_exchange_relaxed(mem, desired) \ ({ __atomic_check_size((mem)); \ __atomic_exchange_n ((mem), (desired), __ATOMIC_RELAXED); }) diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h index ca9e6def1a88ff14c5e8b39f0e236aa8a30f95ae..89bac1899f1173c63699013f27e58571d9df9994 100644 --- a/nscd/nscd-client.h +++ b/nscd/nscd-client.h @@ -367,8 +367,9 @@ struct locked_map_ptr /* Try acquiring lock for mapptr, returns true if it succeeds, false if not. */ static inline bool -__nscd_acquire_maplock (volatile struct locked_map_ptr *mapptr) +__nscd_acquire_maplock (volatile struct locked_map_ptr *mapptr_in) { + struct locked_map_ptr *mapptr = (struct locked_map_ptr *) mapptr_in; int cnt = 0; while (__builtin_expect (atomic_compare_and_exchange_val_acq (&mapptr->lock, 1, 0) != 0, 0))