From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2073.outbound.protection.outlook.com [40.107.21.73]) by sourceware.org (Postfix) with ESMTPS id 852633858C53 for ; Tue, 29 Nov 2022 08:55:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 852633858C53 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oaxfrH0ntPPn3Oay9uxjzwwQVveflQDm92qruoM6IsRoIorvknOf5Kc+K4HK6vVtUOQN0f4QGvgUCH90/hhD39GMrt2CKkrgpHrZ7drfJJM1qmT89Cp4fZDqoeEmLLgtm/6AIyWGPSO+22L0cRXeChPqFI2kM56KWs8qs60s0cZCcRZMl+9lKW7St4VfQbYWmJAgOa61LB0xRZxCBht4QeYdqU9bkSvys1oFSdh/Sfn0iGOThtZz87NHQMMSlN8HUzeOvLsyFEBC7qkMWMaYxVo6CfI+MlaMVRELTPX7aPuHQ62q/HlWgtL9L4JdDoLQj4gkRbm/lvb5+jJClWH/pw== 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=jmFh4rXVLHdWNWBTciBhjNBfeo8nAv4d0SUNUzl1vy0=; b=CrSuXjKOYQsq/8syhmxz+4UbcyI+BCP4KVuB7AIW0664W2XYPFTFB8dRkIkP761axHmGDta8spkfOgqFdT7eJF7v852A9w3yZtguJpabB9ZGcvVgqqelYhlJq0Zv0eUNGccli+xf9J23L4+kYRhPlmyQDdPW0K9ScoJP49ZA+OhzOhNKng/S+dnNybRqjSRD+CDYSqhR5El3tJLN/u5Pza5CGFJFYQzWCoM+0K6X5ozxtPDEEP2jTAnR62+XI/DQHhxnzXwzbiMR0xK2Toi/AhQqMukkcSmk81W40AgW+BIDsIfmjoNJuUOuh5ihqzDIwENRGHbCHhMwLFjiDp4ETA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jmFh4rXVLHdWNWBTciBhjNBfeo8nAv4d0SUNUzl1vy0=; b=YM7VsDLjU+6ARcpuc+tcE/UhlsiEeYabHJ/XFOrenYSrSsSEkdjHn91L4LMvNpRtMRINUuSEeap01F9aIqVBFumaAVKA9U7SIgA8Y0LEXtmnSk3DqIJGxZTNCgaj3gD6oz8QohOTW5sMbMLT7aczQ285q5Du/dM6o6cn1tY2F6E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) by DB9PR08MB9657.eurprd08.prod.outlook.com (2603:10a6:10:454::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.6; Tue, 29 Nov 2022 08:55:45 +0000 Received: from DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::81ce:94a0:632d:7016]) by DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::81ce:94a0:632d:7016%4]) with mapi id 15.20.5880.008; Tue, 29 Nov 2022 08:55:45 +0000 Date: Tue, 29 Nov 2022 08:55:24 +0000 From: Szabolcs Nagy To: XingLi Cc: adhemerval.zanella@linaro.org, libc-alpha@sourceware.org, i.swmail@xen0n.name, xry111@xry111.site, caiyinyu@loongson.cn, wanghongliang@loongson.cn, hejinyang@loongson.cn Subject: Re: [PATCH] linux: Change syscall return value to long int Message-ID: References: <20221129031659.2263453-1-lixing@loongson.cn> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20221129031659.2263453-1-lixing@loongson.cn> X-ClientProxiedBy: SA0PR11CA0027.namprd11.prod.outlook.com (2603:10b6:806:d3::32) To DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9PR08MB7179:EE_|DB9PR08MB9657:EE_ X-MS-Office365-Filtering-Correlation-Id: e0558c49-5fd6-4486-0005-08dad1e780d1 NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gJ52drt32mEc5HDjQtDy45S75UZRDbffDvOLR3QQ0RL+Kf+GJtNR9+XYZ8uYFnVCB7MK0S6+fwc+vONp8NDXmYOpOmPVWSiDNdg1NJVS2KN8r6WXcVCuLyqQFG5tekM1DkSdmNNXHWK4PxgR96mJe2p13+3f2fnbJCDztsLbPDELKiskLGtpYhOpnqS6YFmpziOIis12HtIpbVF8QS7r42T/cUng+6BJb+REYUj8/4gpbi+BxS+DslXZX8j31g3T4xEF4zQKDcLgucTG4R8mKWBPp/rVNb+DxLNKH7uUU929P7jQW6VXDsI0GJ1YUMl/EByFUhFH2HPC2c+dZ9/sd1deNc3Gn8e3NpuBF4ocVs8DsEi5q351eW59ev8cRRmUzSGxtK85QJZRuvUYrIPideBg6UgnnJ5u8aNNZ+x2dDGwyMCZ2B1elaN3UjanmaDpYUDiC2v+cRxmuwY4ixIMNpC27l/Pdu0l//47U4ovVGhIwRb++9zYCSQRK7lmu92JQfexUS7LYBKWZxDvEaiHFJw9gPWNUy1n7vm2KPS9i82nFvYRrlHHYIHI/C1kjTLbjm/lyKecX8cc9Bp6li8x+ogCYwhVN94KbfBHrQepWL2CtAWgFNhshZ/jEzZGpL8kuGkv8I8efL7tnax3fSE0dg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7179.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(396003)(366004)(39860400002)(376002)(346002)(136003)(451199015)(6512007)(36756003)(86362001)(6506007)(6486002)(6666004)(8936002)(6916009)(478600001)(66476007)(44832011)(2906002)(5660300002)(2616005)(41300700001)(4326008)(316002)(66946007)(8676002)(66556008)(38100700002)(186003)(26005)(83380400001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NnhwMUUyZWRwd2N4a1NjWWUyczFIOUxGWXZBcGduc09oZ0hHR0gvRHRHR0ZJ?= =?utf-8?B?NDdieHV0ZU9YMjNlZi9DSURjNGFqN3owUVR6dGZraVBVU3hpeGRiZ215dm5W?= =?utf-8?B?c2dsbzQ4QVlndm4vM2ZLNUNyanBxYTNWTUFrMGRiSjRVZmNQSmMybnFDcFVv?= =?utf-8?B?RlUxcEhHQlZ5b3RTQjhnVG84TXNHeXFlRWdIZGxNVHpSZ0liYmEwYjF6OVpK?= =?utf-8?B?VW5tZ1VmU2N4YmQ1cEQ0TEhpOElzUFlpZjhzckdjckIzbVQ2ZWkwRUtyYTVF?= =?utf-8?B?Uk5GdjAvNWRmUEhNbGk1MVc1ZnRRd3RuSlhweVhDNFBwUjUvNjltWVEwbm1y?= =?utf-8?B?YkN4d29oNCszQzBheWxRQzNlQXRUNkZwV000Nnl4bHNyR3FocENNQ1JzTWRU?= =?utf-8?B?TVNvWjR6dkUwbmFJMmNTKzRmMUVheVRxZ2JMcWJGTGxCNTdYVkYvNVFwM243?= =?utf-8?B?QXpDbFM2NTZnWmcreSt3Tk5qMUxLaUxoYXhFTE1FRFhydnRSVndvMmxpT0Zn?= =?utf-8?B?K0lZTjQ4WnNBcTBSajJXdWQvUUxraDhUMnZMeS9EUEpjR2llamZmNTNvZExt?= =?utf-8?B?QnJqdGl1blorYzdpTEMyUUFMTjFVQ3drMFRVL0gwbWdjdEYzVXFodnNTSUpM?= =?utf-8?B?MG9lYzIwdXplVWZkZFZERTBUTDhTWGtjejVhU1FvRXhDQ3hYeTJYZ2pRYm5v?= =?utf-8?B?MG4zNzBMcEgxSnQ0dkZqazJLak4xdWxEc1ZSZ1prSUJsOWk5M1Q0YWpuaVdz?= =?utf-8?B?NUhEaDhybVNHcjErSmdkdExwTkRWTk9YTTR3eHkxQnYycFNVZkU3RG1OQ1h1?= =?utf-8?B?TXk4QklpZmg2TU1FcVp0NzRmU1ZJOE0yWldZeGkxY2hKeUxPQ0pvQTkyTlRD?= =?utf-8?B?OStQU0Z3NDUwcVFLeXZ1THlldXhHVE5zTWgrbHpwRUVUZ040YjN4NHBRKy9y?= =?utf-8?B?RWd0Y2ZlVkxJdGxsd2VZbHFzaUxvTm1DUGNIV3NoOXQrRkhSdzN5T1liYllx?= =?utf-8?B?WnNkcTBSbHFLdnpyeWpqZkk0LzJmQUpLU1ZaUkRyT2RlaWlKUWx5MU80d3pr?= =?utf-8?B?clg0WmFsQStJTXR2bHB5UmRacVpYN1FUZ05mbjRQM2VpbG1TbTIyWEt6RFBI?= =?utf-8?B?V2pKYkZnV2M0Rzk1R1l5eXZOSzVCK1R4YTJqY1BTenNRWlNpbFZwRFFBbHNu?= =?utf-8?B?Y2V5aThaV3dFemtZbnp3OC9tTklBU3hnMjFpL2I1ZDdIWjd4NTYwRnlDTmhz?= =?utf-8?B?MUMvNGtXb0dzM25oQmoxU0xlb01CRnU4WmVDZHgvU053Wk0xTW94YkloYTJZ?= =?utf-8?B?cEZlNzBvdXZDTFZhTGVtWUpQQVNiRk9DNnJtdWJ3MVJNZzNHTTI1MGEyUlRL?= =?utf-8?B?SGpTNi9NTGtySUJ3bHpSOTIyL1NwbzdON2liMzRReEV3YmpYUjhTSzF4b1pi?= =?utf-8?B?OHZkN3d4S044YVl1RDNpVWIyRTcwUU93MkJjVzNFalUybkhadWxVL0J5TDlH?= =?utf-8?B?c2Nxc0tzZWNHWkJSeWlFNC9oN2VsVEhVbUh2SFBuR0I4YkdSRlp4NFFheXhR?= =?utf-8?B?cmRycmdBUDdrekJtVUtkcGJ4dDc0MjkvbG5uRHhZYXpleFlpMlZ4TVozMzFP?= =?utf-8?B?Zy8zUDVzeEFhTGh0V1M1VktWWFB4VlN6RUd2YThUUy9QSHVCU1ZGRTM3TFF4?= =?utf-8?B?RkVkclZUbWtEbXFDVGRPOHVqcmlzMUhZRVoxQklhbU5aM3VNSlBoTVVnQTFw?= =?utf-8?B?ajg3OWJtMzVMcXJObEJCVC9WMGI1dVVLTmJ2VUlta21rUEEvUmtlMzk4dmND?= =?utf-8?B?N2kxUFZjM1dpMG1MU2haY0RSd2kydzZwak04TnB6blZUZWhVL1hlS0tON1lh?= =?utf-8?B?UkYxYW5EbjVGUFlrcTVCVjB5ekZnMmtoWUNWQklneWo2MEVOaC9yQ2FSZytK?= =?utf-8?B?OXM4bVpyU1l5RTdnb3pDajFlZTFEejZlQUFpMFZtK0M3S0w4NVNWeldGVk90?= =?utf-8?B?SDRQWnVFdFAveTMramZDaEUzdjVUL1VvQkV2TGNEbVhPZFMzdGZQN3h6dm9j?= =?utf-8?B?aXdSNXFQN2p0WVVBYlhXZFc4Q1djVWdmS29zUmdCSkJMT0RqWVB2NXJsOHRM?= =?utf-8?Q?gpC3ep2h5Bq1tqfHs/TlcL8gq?= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0558c49-5fd6-4486-0005-08dad1e780d1 X-MS-Exchange-CrossTenant-AuthSource: DB9PR08MB7179.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Nov 2022 08:55:45.7197 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 34Yn6qZbvR2CrEb+/nvwA2ZypdsXJckenE40z42GiXo1uBfL8krf2v4+b4d6e/siXm4qSzTgU84yXEhh5mxEFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9657 X-Spam-Status: No, score=-11.1 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 autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The 11/29/2022 11:16, XingLi wrote: > From: Xing Li > > The kernel syscall return is long value. > The generic syscall interface return value > is int, which may lead to incorrect return value. it's not clear what you mean here, the generic syscall function returns long (according to unistd.h). > > The following test is syscall with mmap executed on LoongArch, > only 32bits and sign extension value returned leading to mmap failure, > which should be with 47bits address returned. > > Testcase: > > #include > #include > #include > > void main() > { > long int ret; > ret = syscall(SYS_mmap, NULL, 0x801000, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); Note: there are many reasons why direct calls to syscall may not work. syscall is a variadic argument function that takes long arguments, but you pass ints that may *not* be sign/zero extended on the caller site so e.g. the top 32bits of size and offset can be arbitrary on a 64bit system. (you have to cast args to long to make the example valid). and some systems use SYS_mmap2. > printf("map address is %lx\n",ret); > } > > Result: > [lixing@Sunhaiyong test]$ ./mmap > map address is fffffffff008c000 > --- > sysdeps/unix/sysv/linux/syscall.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/sysdeps/unix/sysv/linux/syscall.c b/sysdeps/unix/sysv/linux/syscall.c > index 7303ba7188..8cb0b66b1c 100644 > --- a/sysdeps/unix/sysv/linux/syscall.c > +++ b/sysdeps/unix/sysv/linux/syscall.c > @@ -33,7 +33,7 @@ syscall (long int number, ...) > long int a5 = va_arg (args, long int); > va_end (args); > > - int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5); > + long int r = INTERNAL_SYSCALL_NCS_CALL (number, a0, a1, a2, a3, a4, a5); > if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (r))) this change looks reasonable to me. > { > __set_errno (-r); > -- > 2.31.1 >