From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02D69C43603 for ; Wed, 11 Dec 2019 20:47:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CD716222C4 for ; Wed, 11 Dec 2019 20:47:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726345AbfLKUrR (ORCPT ); Wed, 11 Dec 2019 15:47:17 -0500 Received: from mout.kundenserver.de ([217.72.192.75]:39917 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726368AbfLKUrR (ORCPT ); Wed, 11 Dec 2019 15:47:17 -0500 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.145]) with ESMTPA (Nemesis) id 1Mo73N-1hvNrF2EZP-00pfdu; Wed, 11 Dec 2019 21:46:42 +0100 From: Arnd Bergmann To: Jens Axboe , "James E.J. Bottomley" , "Martin K. Petersen" , Alexander Viro , Denis Efremov , Tim Waugh , Boris Ostrovsky , Juergen Gross , Konrad Rzeszutek Wilk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Cc: linux-kernel@vger.kernel.org, y2038@lists.linaro.org, Arnd Bergmann , Stefano Stabellini , Hannes Reinecke , Damien Le Moal , Bart Van Assche , linux-block@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH 11/24] compat_ioctl: block: handle cdrom compat ioctl in non-cdrom drivers Date: Wed, 11 Dec 2019 21:42:45 +0100 Message-Id: <20191211204306.1207817-12-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20191211204306.1207817-1-arnd@arndb.de> References: <20191211204306.1207817-1-arnd@arndb.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:J/m2/bKJ2+pQDxQ1q226bByLe0vDPb/F2fJ3RpYYYVapImzb8aV HWSvDBZiFBEiHXWH/xWL1jk4hQERohAteHEMq2lpbMCC2anNojNV6PsQ+gg2WufxemHktc1 LyPWs3HbVs920rfFkymL5JQsEGJs//HvxV5XmvoL8txVyvk9ot9sTr81q1MSSw2dd/7OnwF PZSWIVICg0YVKDXL6K7dQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:DV6o32cCptM=:l/Of3UL40h1Gs6yrtcWn+e 4767u/NI/4g42ftlcB1rmhfV1JWoVD4LaYYo0JaTG5s6dC/UvDLk5wUO/rzT35d0X74aGK/vw ZzuO5Sfiuyu3sh/R3qDuNr/OBJp8ZGii/aLBpIMxXHpzZMFfmKfvecMGNOmA+Gq50FsJkxQaR A2zIFRydZ47PpZefsLdEoTKcgvLPHb7Tm2GNslBvrDX6Rr0I67QRiTc3YLRBlX9ynDTUJXLwo LnOc0sqAlB/PtptI8I5TK/uxN/S5T//2LOTZDmsxpeWiocQBjRJO14A5K7cMEnIY5B+RHLxek gAAdg/nxcAUOceYLoJ1sP19//eXcqy50vqxRWFQNMqWG97Ve3eZdRRqduUhY+3JgZoF6FO6ZM aKBa4A1eJ/aKXU76mR9r9lvT4iABkg+0Sm/Cve2dyCTvhA7VAI7sksverbtJVW/2KJprZ72MV 08/bikqWwwtd6GA0LKYzaRw/wNglfuToitJxn/a5LHf8tW2PKFth3O94FGIpiM3E4sXQBfAhr 2WjnWXsWaxPtkJ6iijJeH9BfwCpmm5Qh4ConI9X0elJLxTbPZOGVFZPZQd+f07OvVTik2n8Fb 6OrV2ynOjoohTm2MB0FpMDmjqPLVBSRArhIsvcb7uccbkHxfyKOs863DIYP3ChrqLvP1P/eck R9A8Rw1bnHmWjp3UtoQC5renptBxT3Jkw9nS5C4tvW1jF0+DYl6fBO8tXkud7GXVPsmUnHc72 x+rBx1bA9kL3BV/2+7ZL27IZYx33bCjbMjeNGZFuOk5xhCQCnVUQDJicSDSNQwZCX7+86Y4eQ GEH8mehP/lSQ9dzTDymYLxem9zZdxhtFq5yFvsTCm1McKxM6Nf3brzo9Rm1bSQ/dHk1u2HGUz KOjNZeK9kNw+4KJDAdxQ== Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org Various block drivers implement the CDROMMULTISESSION, CDROM_GET_CAPABILITY, and CDROMEJECT ioctl commands, relying on the block layer to handle compat_ioctl mode for them. Move this into the drivers directly as a preparation for simplifying the block layer later. Since some of these commands need a compat_ptr() conversion, introduce a blkdev_compat_ptr_ioctl() helper function that can be used as the .compat_ioctl callback for those drivers that only support compatible commands. The actual CD-ROM drivers that call cdrom_ioctl() are converted in a separate patch. Signed-off-by: Arnd Bergmann --- block/ioctl.c | 21 +++++++++++++++++++++ drivers/block/floppy.c | 3 +++ drivers/block/paride/pd.c | 1 + drivers/block/paride/pf.c | 1 + drivers/block/sunvdc.c | 1 + drivers/block/xen-blkfront.c | 1 + include/linux/blkdev.h | 7 +++++++ 7 files changed, 35 insertions(+) diff --git a/block/ioctl.c b/block/ioctl.c index 5de98b97af2a..e728331d1a5b 100644 --- a/block/ioctl.c +++ b/block/ioctl.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include #include #include #include @@ -285,6 +286,26 @@ int __blkdev_driver_ioctl(struct block_device *bdev, fmode_t mode, */ EXPORT_SYMBOL_GPL(__blkdev_driver_ioctl); +#ifdef CONFIG_COMPAT +/* + * This is the equivalent of compat_ptr_ioctl(), to be used by block + * drivers that implement only commands that are completely compatible + * between 32-bit and 64-bit user space + */ +int blkdev_compat_ptr_ioctl(struct block_device *bdev, fmode_t mode, + unsigned cmd, unsigned long arg) +{ + struct gendisk *disk = bdev->bd_disk; + + if (disk->fops->ioctl) + return disk->fops->ioctl(bdev, mode, cmd, + (unsigned long)compat_ptr(arg)); + + return -ENOIOCTLCMD; +} +EXPORT_SYMBOL(blkdev_compat_ptr_ioctl); +#endif + static int blkdev_pr_register(struct block_device *bdev, struct pr_registration __user *arg) { diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 485865fd0412..cd3612e4e2e1 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -3879,6 +3879,9 @@ static int fd_compat_ioctl(struct block_device *bdev, fmode_t mode, unsigned int { int drive = (long)bdev->bd_disk->private_data; switch (cmd) { + case CDROMEJECT: /* CD-ROM eject */ + case 0x6470: /* SunOS floppy eject */ + case FDMSGON: case FDMSGOFF: case FDSETEMSGTRESH: diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index 6f9ad3fc716f..c0967507d085 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c @@ -874,6 +874,7 @@ static const struct block_device_operations pd_fops = { .open = pd_open, .release = pd_release, .ioctl = pd_ioctl, + .compat_ioctl = pd_ioctl, .getgeo = pd_getgeo, .check_events = pd_check_events, .revalidate_disk= pd_revalidate diff --git a/drivers/block/paride/pf.c b/drivers/block/paride/pf.c index 6b7d4cab3687..bb09f21ce21a 100644 --- a/drivers/block/paride/pf.c +++ b/drivers/block/paride/pf.c @@ -276,6 +276,7 @@ static const struct block_device_operations pf_fops = { .open = pf_open, .release = pf_release, .ioctl = pf_ioctl, + .compat_ioctl = pf_ioctl, .getgeo = pf_getgeo, .check_events = pf_check_events, }; diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c index 571612e233fe..39aeebc6837d 100644 --- a/drivers/block/sunvdc.c +++ b/drivers/block/sunvdc.c @@ -171,6 +171,7 @@ static const struct block_device_operations vdc_fops = { .owner = THIS_MODULE, .getgeo = vdc_getgeo, .ioctl = vdc_ioctl, + .compat_ioctl = blkdev_compat_ptr_ioctl, }; static void vdc_blk_queue_start(struct vdc_port *port) diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c index a74d03913822..23c86350a5ab 100644 --- a/drivers/block/xen-blkfront.c +++ b/drivers/block/xen-blkfront.c @@ -2632,6 +2632,7 @@ static const struct block_device_operations xlvbd_block_fops = .release = blkif_release, .getgeo = blkif_getgeo, .ioctl = blkif_ioctl, + .compat_ioctl = blkdev_compat_ptr_ioctl, }; diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 47eb22a3b7f9..3e0408618da7 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1711,6 +1711,13 @@ struct block_device_operations { const struct pr_ops *pr_ops; }; +#ifdef CONFIG_COMPAT +extern int blkdev_compat_ptr_ioctl(struct block_device *, fmode_t, + unsigned int, unsigned long); +#else +#define blkdev_compat_ptr_ioctl NULL +#endif + extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int, unsigned long); extern int bdev_read_page(struct block_device *, sector_t, struct page *); -- 2.20.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F572C43603 for ; Wed, 11 Dec 2019 20:47:07 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 36BD3206A5 for ; Wed, 11 Dec 2019 20:47:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 36BD3206A5 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arndb.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1if8sp-0004kv-Co; Wed, 11 Dec 2019 20:46:55 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1if8so-0004kp-08 for xen-devel@lists.xenproject.org; Wed, 11 Dec 2019 20:46:54 +0000 X-Inumbo-ID: 575cf7fe-1c57-11ea-a914-bc764e2007e4 Received: from mout.kundenserver.de (unknown [217.72.192.75]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 575cf7fe-1c57-11ea-a914-bc764e2007e4; Wed, 11 Dec 2019 20:46:44 +0000 (UTC) Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.145]) with ESMTPA (Nemesis) id 1Mo73N-1hvNrF2EZP-00pfdu; Wed, 11 Dec 2019 21:46:42 +0100 From: Arnd Bergmann To: Jens Axboe , "James E.J. Bottomley" , "Martin K. Petersen" , Alexander Viro , Denis Efremov , Tim Waugh , Boris Ostrovsky , Juergen Gross , Konrad Rzeszutek Wilk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Date: Wed, 11 Dec 2019 21:42:45 +0100 Message-Id: <20191211204306.1207817-12-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20191211204306.1207817-1-arnd@arndb.de> References: <20191211204306.1207817-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:J/m2/bKJ2+pQDxQ1q226bByLe0vDPb/F2fJ3RpYYYVapImzb8aV HWSvDBZiFBEiHXWH/xWL1jk4hQERohAteHEMq2lpbMCC2anNojNV6PsQ+gg2WufxemHktc1 LyPWs3HbVs920rfFkymL5JQsEGJs//HvxV5XmvoL8txVyvk9ot9sTr81q1MSSw2dd/7OnwF PZSWIVICg0YVKDXL6K7dQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:DV6o32cCptM=:l/Of3UL40h1Gs6yrtcWn+e 4767u/NI/4g42ftlcB1rmhfV1JWoVD4LaYYo0JaTG5s6dC/UvDLk5wUO/rzT35d0X74aGK/vw ZzuO5Sfiuyu3sh/R3qDuNr/OBJp8ZGii/aLBpIMxXHpzZMFfmKfvecMGNOmA+Gq50FsJkxQaR A2zIFRydZ47PpZefsLdEoTKcgvLPHb7Tm2GNslBvrDX6Rr0I67QRiTc3YLRBlX9ynDTUJXLwo LnOc0sqAlB/PtptI8I5TK/uxN/S5T//2LOTZDmsxpeWiocQBjRJO14A5K7cMEnIY5B+RHLxek gAAdg/nxcAUOceYLoJ1sP19//eXcqy50vqxRWFQNMqWG97Ve3eZdRRqduUhY+3JgZoF6FO6ZM aKBa4A1eJ/aKXU76mR9r9lvT4iABkg+0Sm/Cve2dyCTvhA7VAI7sksverbtJVW/2KJprZ72MV 08/bikqWwwtd6GA0LKYzaRw/wNglfuToitJxn/a5LHf8tW2PKFth3O94FGIpiM3E4sXQBfAhr 2WjnWXsWaxPtkJ6iijJeH9BfwCpmm5Qh4ConI9X0elJLxTbPZOGVFZPZQd+f07OvVTik2n8Fb 6OrV2ynOjoohTm2MB0FpMDmjqPLVBSRArhIsvcb7uccbkHxfyKOs863DIYP3ChrqLvP1P/eck R9A8Rw1bnHmWjp3UtoQC5renptBxT3Jkw9nS5C4tvW1jF0+DYl6fBO8tXkud7GXVPsmUnHc72 x+rBx1bA9kL3BV/2+7ZL27IZYx33bCjbMjeNGZFuOk5xhCQCnVUQDJicSDSNQwZCX7+86Y4eQ GEH8mehP/lSQ9dzTDymYLxem9zZdxhtFq5yFvsTCm1McKxM6Nf3brzo9Rm1bSQ/dHk1u2HGUz KOjNZeK9kNw+4KJDAdxQ== Subject: [Xen-devel] [PATCH 11/24] compat_ioctl: block: handle cdrom compat ioctl in non-cdrom drivers X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Damien Le Moal , Stefano Stabellini , Bart Van Assche , Arnd Bergmann , y2038@lists.linaro.org, Hannes Reinecke , linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, xen-devel@lists.xenproject.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VmFyaW91cyBibG9jayBkcml2ZXJzIGltcGxlbWVudCB0aGUgQ0RST01NVUxUSVNFU1NJT04sCkNE Uk9NX0dFVF9DQVBBQklMSVRZLCBhbmQgQ0RST01FSkVDVCBpb2N0bCBjb21tYW5kcywgcmVseWlu ZyBvbiB0aGUKYmxvY2sgbGF5ZXIgdG8gaGFuZGxlIGNvbXBhdF9pb2N0bCBtb2RlIGZvciB0aGVt LgoKTW92ZSB0aGlzIGludG8gdGhlIGRyaXZlcnMgZGlyZWN0bHkgYXMgYSBwcmVwYXJhdGlvbiBm b3Igc2ltcGxpZnlpbmcKdGhlIGJsb2NrIGxheWVyIGxhdGVyLgoKU2luY2Ugc29tZSBvZiB0aGVz ZSBjb21tYW5kcyBuZWVkIGEgY29tcGF0X3B0cigpIGNvbnZlcnNpb24sCmludHJvZHVjZSBhIGJs a2Rldl9jb21wYXRfcHRyX2lvY3RsKCkgaGVscGVyIGZ1bmN0aW9uIHRoYXQKY2FuIGJlIHVzZWQg YXMgdGhlIC5jb21wYXRfaW9jdGwgY2FsbGJhY2sgZm9yIHRob3NlIGRyaXZlcnMKdGhhdCBvbmx5 IHN1cHBvcnQgY29tcGF0aWJsZSBjb21tYW5kcy4KClRoZSBhY3R1YWwgQ0QtUk9NIGRyaXZlcnMg dGhhdCBjYWxsIGNkcm9tX2lvY3RsKCkgYXJlCmNvbnZlcnRlZCBpbiBhIHNlcGFyYXRlIHBhdGNo LgoKU2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KLS0tCiBibG9j ay9pb2N0bC5jICAgICAgICAgICAgICAgIHwgMjEgKysrKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2Jsb2NrL2Zsb3BweS5jICAgICAgIHwgIDMgKysrCiBkcml2ZXJzL2Jsb2NrL3BhcmlkZS9w ZC5jICAgIHwgIDEgKwogZHJpdmVycy9ibG9jay9wYXJpZGUvcGYuYyAgICB8ICAxICsKIGRyaXZl cnMvYmxvY2svc3VudmRjLmMgICAgICAgfCAgMSArCiBkcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9u dC5jIHwgIDEgKwogaW5jbHVkZS9saW51eC9ibGtkZXYuaCAgICAgICB8ICA3ICsrKysrKysKIDcg ZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2Jsb2NrL2lvY3Rs LmMgYi9ibG9jay9pb2N0bC5jCmluZGV4IDVkZTk4Yjk3YWYyYS4uZTcyODMzMWQxYTViIDEwMDY0 NAotLS0gYS9ibG9jay9pb2N0bC5jCisrKyBiL2Jsb2NrL2lvY3RsLmMKQEAgLTEsNSArMSw2IEBA CiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAogI2luY2x1ZGUgPGxpbnV4L2Nh cGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KICNpbmNsdWRlIDxsaW51eC9i bGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9nZnAu aD4KQEAgLTI4NSw2ICsyODYsMjYgQEAgaW50IF9fYmxrZGV2X2RyaXZlcl9pb2N0bChzdHJ1Y3Qg YmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUsCiAgKi8KIEVYUE9SVF9TWU1CT0xfR1BM KF9fYmxrZGV2X2RyaXZlcl9pb2N0bCk7CiAKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisvKgorICog VGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBjb21wYXRfcHRyX2lvY3RsKCksIHRvIGJlIHVzZWQg YnkgYmxvY2sKKyAqIGRyaXZlcnMgdGhhdCBpbXBsZW1lbnQgb25seSBjb21tYW5kcyB0aGF0IGFy ZSBjb21wbGV0ZWx5IGNvbXBhdGlibGUKKyAqIGJldHdlZW4gMzItYml0IGFuZCA2NC1iaXQgdXNl ciBzcGFjZQorICovCitpbnQgYmxrZGV2X2NvbXBhdF9wdHJfaW9jdGwoc3RydWN0IGJsb2NrX2Rl dmljZSAqYmRldiwgZm1vZGVfdCBtb2RlLAorCQkJdW5zaWduZWQgY21kLCB1bnNpZ25lZCBsb25n IGFyZykKK3sKKwlzdHJ1Y3QgZ2VuZGlzayAqZGlzayA9IGJkZXYtPmJkX2Rpc2s7CisKKwlpZiAo ZGlzay0+Zm9wcy0+aW9jdGwpCisJCXJldHVybiBkaXNrLT5mb3BzLT5pb2N0bChiZGV2LCBtb2Rl LCBjbWQsCisJCQkJCSAodW5zaWduZWQgbG9uZyljb21wYXRfcHRyKGFyZykpOworCisJcmV0dXJu IC1FTk9JT0NUTENNRDsKK30KK0VYUE9SVF9TWU1CT0woYmxrZGV2X2NvbXBhdF9wdHJfaW9jdGwp OworI2VuZGlmCisKIHN0YXRpYyBpbnQgYmxrZGV2X3ByX3JlZ2lzdGVyKHN0cnVjdCBibG9ja19k ZXZpY2UgKmJkZXYsCiAJCXN0cnVjdCBwcl9yZWdpc3RyYXRpb24gX191c2VyICphcmcpCiB7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2Zsb3BweS5jIGIvZHJpdmVycy9ibG9jay9mbG9wcHku YwppbmRleCA0ODU4NjVmZDA0MTIuLmNkMzYxMmU0ZTJlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9i bG9jay9mbG9wcHkuYworKysgYi9kcml2ZXJzL2Jsb2NrL2Zsb3BweS5jCkBAIC0zODc5LDYgKzM4 NzksOSBAQCBzdGF0aWMgaW50IGZkX2NvbXBhdF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi ZGV2LCBmbW9kZV90IG1vZGUsIHVuc2lnbmVkIGludAogewogCWludCBkcml2ZSA9IChsb25nKWJk ZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsKIAlzd2l0Y2ggKGNtZCkgeworCWNhc2UgQ0RST01F SkVDVDogLyogQ0QtUk9NIGVqZWN0ICovCisJY2FzZSAweDY0NzA6CSAvKiBTdW5PUyBmbG9wcHkg ZWplY3QgKi8KKwogCWNhc2UgRkRNU0dPTjoKIAljYXNlIEZETVNHT0ZGOgogCWNhc2UgRkRTRVRF TVNHVFJFU0g6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZC5jIGIvZHJpdmVy cy9ibG9jay9wYXJpZGUvcGQuYwppbmRleCA2ZjlhZDNmYzcxNmYuLmMwOTY3NTA3ZDA4NSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcGQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3Bh cmlkZS9wZC5jCkBAIC04NzQsNiArODc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBibG9ja19k ZXZpY2Vfb3BlcmF0aW9ucyBwZF9mb3BzID0gewogCS5vcGVuCQk9IHBkX29wZW4sCiAJLnJlbGVh c2UJPSBwZF9yZWxlYXNlLAogCS5pb2N0bAkJPSBwZF9pb2N0bCwKKwkuY29tcGF0X2lvY3RsCT0g cGRfaW9jdGwsCiAJLmdldGdlbwkJPSBwZF9nZXRnZW8sCiAJLmNoZWNrX2V2ZW50cwk9IHBkX2No ZWNrX2V2ZW50cywKIAkucmV2YWxpZGF0ZV9kaXNrPSBwZF9yZXZhbGlkYXRlCmRpZmYgLS1naXQg YS9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZi5jIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcGYuYwpp bmRleCA2YjdkNGNhYjM2ODcuLmJiMDlmMjFjZTIxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9j ay9wYXJpZGUvcGYuYworKysgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZi5jCkBAIC0yNzYsNiAr Mjc2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyBwZl9m b3BzID0gewogCS5vcGVuCQk9IHBmX29wZW4sCiAJLnJlbGVhc2UJPSBwZl9yZWxlYXNlLAogCS5p b2N0bAkJPSBwZl9pb2N0bCwKKwkuY29tcGF0X2lvY3RsCT0gcGZfaW9jdGwsCiAJLmdldGdlbwkJ PSBwZl9nZXRnZW8sCiAJLmNoZWNrX2V2ZW50cwk9IHBmX2NoZWNrX2V2ZW50cywKIH07CmRpZmYg LS1naXQgYS9kcml2ZXJzL2Jsb2NrL3N1bnZkYy5jIGIvZHJpdmVycy9ibG9jay9zdW52ZGMuYwpp bmRleCA1NzE2MTJlMjMzZmUuLjM5YWVlYmM2ODM3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9j ay9zdW52ZGMuYworKysgYi9kcml2ZXJzL2Jsb2NrL3N1bnZkYy5jCkBAIC0xNzEsNiArMTcxLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyB2ZGNfZm9wcyA9 IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLmdldGdlbwkJPSB2ZGNfZ2V0Z2VvLAogCS5p b2N0bAkJPSB2ZGNfaW9jdGwsCisJLmNvbXBhdF9pb2N0bAk9IGJsa2Rldl9jb21wYXRfcHRyX2lv Y3RsLAogfTsKIAogc3RhdGljIHZvaWQgdmRjX2Jsa19xdWV1ZV9zdGFydChzdHJ1Y3QgdmRjX3Bv cnQgKnBvcnQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jIGIvZHJp dmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwppbmRleCBhNzRkMDM5MTM4MjIuLjIzYzg2MzUwYTVh YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYworKysgYi9kcml2ZXJz L2Jsb2NrL3hlbi1ibGtmcm9udC5jCkBAIC0yNjMyLDYgKzI2MzIsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGJsb2NrX2RldmljZV9vcGVyYXRpb25zIHhsdmJkX2Jsb2NrX2ZvcHMgPQogCS5yZWxl YXNlID0gYmxraWZfcmVsZWFzZSwKIAkuZ2V0Z2VvID0gYmxraWZfZ2V0Z2VvLAogCS5pb2N0bCA9 IGJsa2lmX2lvY3RsLAorCS5jb21wYXRfaW9jdGwgPSBibGtkZXZfY29tcGF0X3B0cl9pb2N0bCwK IH07CiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBiL2luY2x1ZGUvbGlu dXgvYmxrZGV2LmgKaW5kZXggNDdlYjIyYTNiN2Y5Li4zZTA0MDg2MThkYTcgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvYmxrZGV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaApAQCAt MTcxMSw2ICsxNzExLDEzIEBAIHN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyB7CiAJY29u c3Qgc3RydWN0IHByX29wcyAqcHJfb3BzOwogfTsKIAorI2lmZGVmIENPTkZJR19DT01QQVQKK2V4 dGVybiBpbnQgYmxrZGV2X2NvbXBhdF9wdHJfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqLCBm bW9kZV90LAorCQkJCSAgICAgIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CisjZWxzZQor I2RlZmluZSBibGtkZXZfY29tcGF0X3B0cl9pb2N0bCBOVUxMCisjZW5kaWYKKwogZXh0ZXJuIGlu dCBfX2Jsa2Rldl9kcml2ZXJfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqLCBmbW9kZV90LCB1 bnNpZ25lZCBpbnQsCiAJCQkJIHVuc2lnbmVkIGxvbmcpOwogZXh0ZXJuIGludCBiZGV2X3JlYWRf cGFnZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIHNlY3Rvcl90LCBzdHJ1Y3QgcGFnZSAqKTsKLS0g CjIuMjAuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=