From patchwork Sun Dec 11 12:56:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 9469759 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 892E060476 for ; Sun, 11 Dec 2016 13:00:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8005F2847B for ; Sun, 11 Dec 2016 13:00:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 70E8E28492; Sun, 11 Dec 2016 13:00:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 76CE52847B for ; Sun, 11 Dec 2016 13:00:27 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1cG3iH-0006Nb-0l; Sun, 11 Dec 2016 12:58:45 +0000 Received: from mail-bl2nam02on0077.outbound.protection.outlook.com ([104.47.38.77] helo=NAM02-BL2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1cG3i9-0006FZ-DT for linux-arm-kernel@lists.infradead.org; Sun, 11 Dec 2016 12:58:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-caviumnetworks-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=/Lmg+n20OROf/rIJyLGV9+IBOaDID3FnTjlnvODmGvk=; b=iEGts/KdPol0fCXkZd55AOtH0RC4l1Kxop46jaKgaeZ8wkzmD3V1KBM03rPz6fTgListuSU+I4mCWDbT2q5C2HxxrPx9dDe8PbiwIG9nZy8P7jedLo+fxw19+CBmLFKTezQPx0eUkRbrJ3IRZcFxGXgC6KdYHJbDn9fp42wssUc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; Received: from localhost (111.125.246.42) by CY1PR07MB2247.namprd07.prod.outlook.com (10.164.112.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9; Sun, 11 Dec 2016 12:58:11 +0000 From: Yury Norov To: Subject: [PATCH 2/3] sys_mmap64() Date: Sun, 11 Dec 2016 18:26:41 +0530 Message-ID: <1481461003-14361-3-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1481461003-14361-1-git-send-email-ynorov@caviumnetworks.com> References: <1481461003-14361-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.125.246.42] X-ClientProxiedBy: HE1PR0802CA0004.eurprd08.prod.outlook.com (10.172.123.142) To CY1PR07MB2247.namprd07.prod.outlook.com (10.164.112.149) X-MS-Office365-Filtering-Correlation-Id: b275446a-2a04-44b9-dcac-08d421c55e61 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR07MB2247; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2247; 3:GmGGVsFLe8EPeMscJ1puu5fGgQyxU8/y3c2wc7fg6+fXxTrFdlI63SN1WnmtH1cEvBkQg8YSb7dUJv4ubFU9QWS5JUpCcTXyd8fSo7/HWbC7tYj0HYrWKBVB7LnnQJgpa9cs7rsWq9x0SBPlmAjKLKlAE2cHRZUc7//diJGBUGufHYY2EzJwBMNQmEJthGEsEntbZErtaoM37l42sMsaOMjlEa29jB+UMpUELB7Qp/uSgin1PW/b4iaZYIo2j8MAOgon2UbmK9ZRF+Qe4up8rQ==; 25:eVomXwY+rGQkZoW8ZKvuvpavmg1DRE8bYhgte6W6FTtnKwaWf9SYMGjjfgi8Gs7Pxu3Gpy+0FVEkzlS/4SYUprnGzD+apdbEJQaOmR9HDcv78CdzWkUATYJIWC6GrHZs0/ylNosFNfu+IHJpSyZk4wzQAV1D2GsXbJxSc9gHZrDnojLIXDXg24aMc7qH5eW8p0cD6x7kTmffjf6z1jVZcr8YbeN5Tlvnje3xJF/NbROFoa+agxnH53CwAnEBJf/pjlIlLeYn9frwhcwqWkUT8EX6ZkxS3Fy///dqKISfOiA23JfVpj5el9pPeXWXUdSeCleqxJGLw8QHE0sdL4I1aW4yGVzG/gDmuBkBOEV4YC0NiOqZpbZHoIc+SFQIODmB9B7IqFK5npdXnmJUA34Vex0w/B0Z94OpEg1I/oHzggcpJP+r3KKYlDG2MQikxH4Yw68aibWzbghObi3IEA1vvQ== X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2247; 31:3xVyPcPnD5WP/RwdorDM2mU3g2TYprkMwejxrZ6Un+JLT2ryJBoqc7f9WhAHXO7jyLbxGEDszLZkO7MsI3bdGDoHgTC+4E8as1f8m7rYffhKaJvGHYTdXV+/uHqdiUeCzVYL0pr2P8tM8A4h+5EO0v9ZS9W6gZ9gfe0wjZEW8OU1lmrdtVCZtEYt1LlFyQx64oV/eoOUhHwkTOY+PKhpO1zlkec9tP+iKnLtpdGd9lHqsBujHvIt6cHosFtnwRotmnnkSbs0eAlCY8lYww+40A==; 20:xNcs1adwUWJnqwJwpPVdvD3I1sj06ozZHpp9SWTBc3t3dRYVkB7KJg3y8OfXRUi9/qfIVmfLHn4GzfxG/6m4b61a+u7tnpUiNvmyESQ7ptmTxdcqXJ86sU88wcM4ZnQECN8AnTCgasCq6N+MC2HiuO3gvUcGsEacB+tD6S6QArn5zyVNt9ex7Y+Qjj01zOophk6cvE04T+P/3UxPPn8oJBgWHR+KAmpe3sDyoYIRI7iBCt4o6K6dHP7knoHf1VGsn6VCuMtNH6HurKGRSj3JxFZFykY8UmVy+gcvKrtHAH8jRxEfNzrr4C3yyBYGyG5up6AUQozVQhY+OVaR3wTjMNBvhiamyBJReErs3KeyH85zuzuJ+qxeHRu0xoLabkJvpsnGMS0jIiZSukckfJOXDiy4baSSW5scwikYYWEEtSmcVIq55AeLfhqEr3bRnahPC4QNBOTvCfdNX7iDCde5roexqomps8F1PBaFoW02e5vFmetsWpvJJbcQ0XzW+CVtbdxNWlvhR+GgFeF7SVDEkZ2SN6cMJhN/w++xP+iJSSbR11EzlR6jx3osXpGWmf2z2QzCYQ089vgLyuPP/PCtT/WVSHjabg8BZ7+rqeEbJ9k= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123564025)(20161123560025)(20161123555025)(6072148); SRVR:CY1PR07MB2247; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2247; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2247; 4:My/xq5BW2DyCpjV75pZXhb7ROVfZ6LmiGH+MUA1Ae9bAGoeg7wqLB8hV16sHndVto9oeUnJhZEiRM9CmfznIUweBRDmE70oom+Nz/7Fh+RZZs1KdpXKYr7zN4DzYlOGeJG3f0JZ0MShkLpwgI5oMNw7rZqnAZl4N1DajsW8FtUvfjDLW368H+RFODmx3xvnyZbaqX0V/T9MJbXncr+PM4nBtb2EixWjEHCgX0kpA4sgDS/xyFUAKjDAT2gr8th/UK8yjnbIZpJ9aIjhpiUpid9QV3D2XhSFx9yZMPb/+8ohR8pJjzz5GqCcM7j+xRCT952MnGh++QcV/P97UPrnWj6fpDqamd5JSClB/12AS0d5zsNidlppQJPrqW1L74finlP+B9KeS+B7HiSGFQEUfmF+W7a6566JqI4Iyp3Doje9KGa+fxh7lIx4TG0laJAZEBr47KIXJ8uCLX9Rw7GqOaG/CqeXOjxtUeLZJoHWmNZetahZwtmNGz2F6dGm0GputBUAf6S33p92mjvEnSomrASWJztsdfEVwASsE44/ueEeo9xyaW+VifB1iVxN//Ed1McQIyX2Kk9qJpTAP7EBwcA== X-Forefront-PRVS: 0153A8321A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(39840400002)(39410400002)(189002)(199003)(39060400001)(4326007)(50226002)(7416002)(101416001)(1671002)(305945005)(50986999)(76176999)(7736002)(97736004)(81166006)(42186005)(109986004)(6496003)(5660300001)(6486002)(5009440100003)(81156014)(105586002)(8676002)(2906002)(47776003)(2950100002)(76506005)(6666003)(110136003)(106356001)(48376002)(36756003)(189998001)(68736007)(92566002)(3846002)(66066001)(50466002)(5003940100001)(6116002)(33646002)(38730400001)(266003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2247; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR07MB2247; 23:qiw+beOfODcyfuDpwNd6HegGtsVXkOl4aFeBK67Xc?= =?us-ascii?Q?ZRPhRk/QrjS5Fb64De9jlGFkd4t0hjcqYw1SOR+z15vrj/WMV4ni/9db/QTK?= =?us-ascii?Q?9cDhVyI/tikP2s6EmKTJWQjtBxBjQNETyAmzxEXciiOxkeaT6GdcFWFqc94E?= =?us-ascii?Q?EklvfCnDM1HTSmVyYf9SB99AVsYCxntZ8Ee7Nw3gANav1MSXtM7fs9FfhnDZ?= =?us-ascii?Q?xpp4m1PSWjHjPdyqUbXg/Gx8IGUzYbUefdiCofnDb6n09k/vGpjYorKWUB1C?= =?us-ascii?Q?PeKzrWKFO7mlYWAk2/NLqso0GxK8RYFoPCYG3rmFCJXEA+VybwcIUFuw66cX?= =?us-ascii?Q?XRlp4CeA+o8fHqEfbz0kgbJy7FBtg9UqI8IOkuNSprGOosU5IeeoTrzkwXpB?= =?us-ascii?Q?dSw/NY4tzKhDS82dw4/tNPqNZK0yMsvWk0JKokMLIs7tGarMB9/6/kEKD3Gu?= =?us-ascii?Q?KcY4W/KGvzNhNNpDUQ9RI8Ww3VzuM18swecUAnmveety0Qx5fogajZMbtzM0?= =?us-ascii?Q?Atcau5N36O0/ALdNCM+Gt3rqNFN1TFHLuQU1zRDT+MZd3/wT+olmZjuBoUb9?= =?us-ascii?Q?vWjLR8Tj9nmYzNR8/+nTH7D6yXrrj8ct00dxXzcp4JDVAqySlh1KnioJeFjx?= =?us-ascii?Q?fezfzanCO9zxE9xo6CkSBlygJVAJK/FaMKnz36W/mxR9elaVh3x0vX9OyO/L?= =?us-ascii?Q?UIxsTttV3eBGZ27rDePWxfmFY726BTKLXgm+WrjGndugMHpe+cuZm7cRLTY6?= =?us-ascii?Q?SYqBs6dF0XTrtdWwHl1oAZntvT3/XsSTw8q1SyXHKpPEJnn7BVBInD4SUCXa?= =?us-ascii?Q?SeNgSsu2U8Pk4D9+QF9bvvLttGHf2w6inhsiS2PCbJ4s6LJoZBUHrJ/5ct9w?= =?us-ascii?Q?xamGEjUh8NL6MNBgh1PU5ZFp9QIIOE0F8qK3TTt8WCklhSAW7N0hglR9SJgx?= =?us-ascii?Q?B91xNzuQd9T5YnZUeNN76crEeDfmgcn6K6aj1zbBtrvP0u/1wOCHGGQElKfU?= =?us-ascii?Q?yrenzHraCUmEBiWoyiKsg0MUf20sW0eLoCdcC510V7agmIbi52/VvXl6mPLU?= =?us-ascii?Q?dhqEQfT9iNTY4H7/BtuippYiByZt3yBurmjdlC6oJ+Y5Og9K2WvlCmoMCMjd?= =?us-ascii?Q?xGWyWuZxp5Ww1xL10GyUkr81aPdr/0GmRMPAIO/Zpbqm2v4MdTU1WdTByfOo?= =?us-ascii?Q?FrmPVakvSm2Q4/cOS8DE+m9auRtIVIe9qMOuTHk3XfJqTpfRbPidH4rXw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2247; 6:UDP7DqNf+gvGrdYaPhjbSeSc++QvHc/wVuE+LTP8HnqEz2WXnxsgy86cxM0xjz/vb/y61sSH8lO+oloO4VL08D8a5Swk+sOMnlXMq6T4thPvonGS0bS7YSuwxNlCcYqCliKt7CxAVDPOwpcWgDdLYFJtSnHvTqUuQRZ/TVHF2vgOZWXR5fyJLKDFrjDIkEpE4B53YNKu96PLpyA4E757SDnHevP9yqb3LMvK7GRc5Hk+TJz/Kx9WEGsx8HddNlphVh3aQKMlSkAYVOhvvZQgoISAoVprbNRv1U13axNEZIpTf82h3vb6KNzbznAilrdQDuYfmOtNOb3j1/MMoFodBg/GcNq96uO4W3oqKVAhsufBw1CpV2YvsVIohRRbcZOPpWI6QXtz5kvdWpNC8gro6g8Pma7AEZ6B3eopFsh+yes=; 5:pXiB9wLT27H3uladOme+j5gXm6Kre/HB9WZr+WjOrxyL754RwfYHiVOVvaMCAJXwD/2D/e6tthMhHM5eLaaOz/CEBe/HYLYecZoIGjHjm480aiyTlvg5qgY9N6k+9uCQNfLtF84IdTSX7p6JIvaJOywOnvglFf4R6+njaRx51kE=; 24:jcXiqZh22lrY0PBbSCV2VNeGAn8quAnscwhUoYhap2oA2eTgjkgHgx4lgzbyrEzVcBaEou83VPWdzj2JVPE/VOs/MUzlbwQDg2TB4LXSHM8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2247; 7:99XEvsQtrGIKkImb5ObYZp1AcWvW07uCS6MIEaQwk1u5440xIDnomlu5jFBiGiKqzfhsCY6qI3WkJzCi/AeYyjKMax4IrU+jexuQpfzADJNhTPOIwpEmIiypeaq+dlw2Sn910jI8ZsCdCzQWFhSdMxfvE4oRdQ7gJMD8L8Xi48s7CWMhub39xoyZKa3N0MQfM+T8LUoWSNm+v1b6KmXFCse4bSTo4gOkjqcoaBm51o3VRZ3isbecR1ETZ7nz1WY+gZhiigIA6jHeEbDBy3JJluH9aXp2Tov7DyWQENFTWfT2zBNjLLstD2VOMPrfR5rTOMEq/6xFvCVoanrPY5SEFMwdg0bO8IFgG7rA0LqWR/c+YPyQrEa7iTExNnwHbyKW8Qc0zwvhlDjj8IBFIqItYu5gt+iHRKiJr15WC7wKxyEqSITBHAE8KTgbGGV0xagXc/DVAR0Mq7b9tpDionC5ow== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2016 12:58:11.8579 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2247 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161211_045837_695585_4ECB3DD6 X-CRM114-Status: UNSURE ( 8.85 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: szabolcs.nagy@arm.com, Catalin Marinas , heiko.carstens@de.ibm.com, cmetcalf@ezchip.com, Yury Norov , "Dr. Philipp Tomsich" , "Joseph S. Myers" , linux-arch@vger.kernel.org, zhouchengming1@huawei.com, "Kapoor, Prasun" , Alexander Graf , geert@linux-m68k.org, kilobyte@angband.pl, manuel.montezelo@gmail.com, Arnd Bergmann , Andrew Pinski , linyongting@huawei.com, Alexey Klimov , broonie@kernel.org, "Zhangjian \(Bamvor\)" , linux-arm-kernel , Maxim Kuvyrkov , libc-alpha@sourceware.org, Nathan Lynch , LKML , Martin Schwidefsky , davem@davemloft.net, christoph.muellner@theobroma-systems.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Yury Norov --- include/linux/syscalls.h | 3 +++ include/uapi/asm-generic/unistd.h | 4 +++- mm/mmap.c | 25 +++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 91a740f..869ca76 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h @@ -857,6 +857,9 @@ asmlinkage long sys_perf_event_open( asmlinkage long sys_mmap_pgoff(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); +asmlinkage long sys_mmap64(unsigned long addr, unsigned long len, + unsigned long prot, unsigned long flags, + unsigned long fd, unsigned long long *offset); asmlinkage long sys_old_mmap(struct mmap_arg_struct __user *arg); asmlinkage long sys_name_to_handle_at(int dfd, const char __user *name, struct file_handle __user *handle, diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index d65e232..f9ca919 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -734,9 +734,11 @@ __SYSCALL(__NR_pkey_mprotect, sys_pkey_mprotect) __SYSCALL(__NR_pkey_alloc, sys_pkey_alloc) #define __NR_pkey_free 290 __SYSCALL(__NR_pkey_free, sys_pkey_free) +#define __NR_mmap64 291 +__SYSCALL(__NR_mmap64, sys_mmap64) #undef __NR_syscalls -#define __NR_syscalls 291 +#define __NR_syscalls 292 /* * All syscalls below here should go away really, diff --git a/mm/mmap.c b/mm/mmap.c index fc1c943..6c6b95a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1504,6 +1504,31 @@ static int mmap_pgoff_prepare(struct file **f, unsigned long *l, return 0; } +SYSCALL_DEFINE6(mmap64, unsigned long, addr, unsigned long, len, + unsigned long, prot, unsigned long, flags, + unsigned long, fd, unsigned long long __user *, offset) +{ + int err; + unsigned long long koffset; + unsigned long retval; + struct file *file = NULL; + + if (copy_from_user(&koffset, offset, sizeof(koffset))) + return -EFAULT; + if (offset_in_page(koffset)) + return -EINVAL; + + err = mmap_pgoff_prepare(&file, &len, &flags, fd); + if (err) + return err; + + retval = vm_mmap_pgoff(file, addr, len, prot, + flags, koffset >> PAGE_SHIFT); + if (file) + fput(file); + return retval; +} + SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len, unsigned long, prot, unsigned long, flags, unsigned long, fd, unsigned long, pgoff)