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 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 39FD7C4321E for ; Sun, 9 Oct 2022 23:55:29 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EA12E10E5C7; Sun, 9 Oct 2022 23:55:25 +0000 (UTC) Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F7CC10E5B8 for ; Sun, 9 Oct 2022 23:55:18 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id EC5A7B80C74; Sun, 9 Oct 2022 23:55:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90117C43141; Sun, 9 Oct 2022 23:55:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665359715; bh=HmoANf9Uw6rvQWT7WsnNwfX8qNgo1J7uEFFslLv4mKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eGEkZVJFfA/VZwTzf99G7ygJYiBQaN7IKBkqulUtBidZ6Y7JLAujxOyc8TeHPQ54z rq3cFZ4RBHfL0vxryxaY4Zul30XmCTXrWQj1Wj80GQ6pIKHGLbhMDrqUOzeVw+fx/z /67FwVhZ4VgF887pflFOwtpKWHL9CG5Sq7vpKeuw2glxUI0kjdUBR1hRFj56JbrOb6 8q3HsrkmUrjvkJ2GcrBfr6axmCLQmzj/qqyBjmFZZqeEBd2nddge4Jfb96r8o2fIrO C5MUWz521rAQMgdy+oNTsd9lzIzTB3uheoDMVhemixGaasUO1r/DH70ag48UZRWaQi 7w34xKrkqssug== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: [PATCH AUTOSEL 5.15 20/25] drm/meson: explicitly remove aggregate driver at module unload time Date: Sun, 9 Oct 2022 19:54:20 -0400 Message-Id: <20221009235426.1231313-20-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221009235426.1231313-1-sashal@kernel.org> References: <20221009235426.1231313-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sasha Levin , Neil Armstrong , khilman@baylibre.com, =?UTF-8?q?Adri=C3=A1n=20Larumbe?= , dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: Adrián Larumbe [ Upstream commit 8616f2a0589a80e08434212324250eb22f6a66ce ] Because component_master_del wasn't being called when unloading the meson_drm module, the aggregate device would linger forever in the global aggregate_devices list. That means when unloading and reloading the meson_dw_hdmi module, component_add would call into try_to_bring_up_aggregate_device and find the unbound meson_drm aggregate device. This would in turn dereference some of the aggregate_device's struct entries which point to memory automatically freed by the devres API when unbinding the aggregate device from meson_drv_unbind, and trigger an use-after-free bug: [ +0.000014] ============================================================= [ +0.000007] BUG: KASAN: use-after-free in find_components+0x468/0x500 [ +0.000017] Read of size 8 at addr ffff000006731688 by task modprobe/2536 [ +0.000018] CPU: 4 PID: 2536 Comm: modprobe Tainted: G C O 5.19.0-rc6-lrmbkasan+ #1 [ +0.000010] Hardware name: Hardkernel ODROID-N2Plus (DT) [ +0.000008] Call trace: [ +0.000005] dump_backtrace+0x1ec/0x280 [ +0.000011] show_stack+0x24/0x80 [ +0.000007] dump_stack_lvl+0x98/0xd4 [ +0.000010] print_address_description.constprop.0+0x80/0x520 [ +0.000011] print_report+0x128/0x260 [ +0.000007] kasan_report+0xb8/0xfc [ +0.000007] __asan_report_load8_noabort+0x3c/0x50 [ +0.000009] find_components+0x468/0x500 [ +0.000008] try_to_bring_up_aggregate_device+0x64/0x390 [ +0.000009] __component_add+0x1dc/0x49c [ +0.000009] component_add+0x20/0x30 [ +0.000008] meson_dw_hdmi_probe+0x28/0x34 [meson_dw_hdmi] [ +0.000013] platform_probe+0xd0/0x220 [ +0.000008] really_probe+0x3ac/0xa80 [ +0.000008] __driver_probe_device+0x1f8/0x400 [ +0.000008] driver_probe_device+0x68/0x1b0 [ +0.000008] __driver_attach+0x20c/0x480 [ +0.000009] bus_for_each_dev+0x114/0x1b0 [ +0.000007] driver_attach+0x48/0x64 [ +0.000009] bus_add_driver+0x390/0x564 [ +0.000007] driver_register+0x1a8/0x3e4 [ +0.000009] __platform_driver_register+0x6c/0x94 [ +0.000007] meson_dw_hdmi_platform_driver_init+0x30/0x1000 [meson_dw_hdmi] [ +0.000014] do_one_initcall+0xc4/0x2b0 [ +0.000008] do_init_module+0x154/0x570 [ +0.000010] load_module+0x1a78/0x1ea4 [ +0.000008] __do_sys_init_module+0x184/0x1cc [ +0.000008] __arm64_sys_init_module+0x78/0xb0 [ +0.000008] invoke_syscall+0x74/0x260 [ +0.000008] el0_svc_common.constprop.0+0xcc/0x260 [ +0.000009] do_el0_svc+0x50/0x70 [ +0.000008] el0_svc+0x68/0x1a0 [ +0.000009] el0t_64_sync_handler+0x11c/0x150 [ +0.000009] el0t_64_sync+0x18c/0x190 [ +0.000014] Allocated by task 902: [ +0.000007] kasan_save_stack+0x2c/0x5c [ +0.000009] __kasan_kmalloc+0x90/0xd0 [ +0.000007] __kmalloc_node+0x240/0x580 [ +0.000010] memcg_alloc_slab_cgroups+0xa4/0x1ac [ +0.000010] memcg_slab_post_alloc_hook+0xbc/0x4c0 [ +0.000008] kmem_cache_alloc_node+0x1d0/0x490 [ +0.000009] __alloc_skb+0x1d4/0x310 [ +0.000010] alloc_skb_with_frags+0x8c/0x620 [ +0.000008] sock_alloc_send_pskb+0x5ac/0x6d0 [ +0.000010] unix_dgram_sendmsg+0x2e0/0x12f0 [ +0.000010] sock_sendmsg+0xcc/0x110 [ +0.000007] sock_write_iter+0x1d0/0x304 [ +0.000008] new_sync_write+0x364/0x460 [ +0.000007] vfs_write+0x420/0x5ac [ +0.000008] ksys_write+0x19c/0x1f0 [ +0.000008] __arm64_sys_write+0x78/0xb0 [ +0.000007] invoke_syscall+0x74/0x260 [ +0.000008] el0_svc_common.constprop.0+0x1a8/0x260 [ +0.000009] do_el0_svc+0x50/0x70 [ +0.000007] el0_svc+0x68/0x1a0 [ +0.000008] el0t_64_sync_handler+0x11c/0x150 [ +0.000008] el0t_64_sync+0x18c/0x190 [ +0.000013] Freed by task 2509: [ +0.000008] kasan_save_stack+0x2c/0x5c [ +0.000007] kasan_set_track+0x2c/0x40 [ +0.000008] kasan_set_free_info+0x28/0x50 [ +0.000008] ____kasan_slab_free+0x128/0x1d4 [ +0.000008] __kasan_slab_free+0x18/0x24 [ +0.000007] slab_free_freelist_hook+0x108/0x230 [ +0.000010] kfree+0x110/0x35c [ +0.000008] release_nodes+0xf0/0x16c [ +0.000008] devres_release_all+0xfc/0x180 [ +0.000008] device_unbind_cleanup+0x24/0x164 [ +0.000008] device_release_driver_internal+0x3e8/0x5b0 [ +0.000010] driver_detach+0xac/0x1b0 [ +0.000008] bus_remove_driver+0x158/0x29c [ +0.000008] driver_unregister+0x70/0xb0 [ +0.000009] platform_driver_unregister+0x20/0x2c [ +0.000007] 0xffff800003722d98 [ +0.000012] __do_sys_delete_module+0x288/0x400 [ +0.000009] __arm64_sys_delete_module+0x5c/0x80 [ +0.000008] invoke_syscall+0x74/0x260 [ +0.000008] el0_svc_common.constprop.0+0xcc/0x260 [ +0.000008] do_el0_svc+0x50/0x70 [ +0.000007] el0_svc+0x68/0x1a0 [ +0.000008] el0t_64_sync_handler+0x11c/0x150 [ +0.000009] el0t_64_sync+0x18c/0x190 [ +0.000013] Last potentially related work creation: [ +0.000007] kasan_save_stack+0x2c/0x5c [ +0.000007] __kasan_record_aux_stack+0xb8/0xf0 [ +0.000009] kasan_record_aux_stack_noalloc+0x14/0x20 [ +0.000008] insert_work+0x54/0x290 [ +0.000009] __queue_work+0x48c/0xd24 [ +0.000008] queue_work_on+0x90/0x11c [ +0.000008] call_usermodehelper_exec+0x188/0x404 [ +0.000010] kobject_uevent_env+0x5a8/0x794 [ +0.000010] kobject_uevent+0x14/0x20 [ +0.000008] driver_register+0x230/0x3e4 [ +0.000009] __platform_driver_register+0x6c/0x94 [ +0.000007] gxbb_driver_init+0x28/0x34 [ +0.000010] do_one_initcall+0xc4/0x2b0 [ +0.000008] do_initcalls+0x20c/0x24c [ +0.000010] kernel_init_freeable+0x22c/0x278 [ +0.000009] kernel_init+0x3c/0x170 [ +0.000008] ret_from_fork+0x10/0x20 [ +0.000013] The buggy address belongs to the object at ffff000006731600 which belongs to the cache kmalloc-256 of size 256 [ +0.000009] The buggy address is located 136 bytes inside of 256-byte region [ffff000006731600, ffff000006731700) [ +0.000015] The buggy address belongs to the physical page: [ +0.000008] page:fffffc000019cc00 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff000006730a00 pfn:0x6730 [ +0.000011] head:fffffc000019cc00 order:2 compound_mapcount:0 compound_pincount:0 [ +0.000008] flags: 0xffff00000010200(slab|head|node=0|zone=0|lastcpupid=0xffff) [ +0.000016] raw: 0ffff00000010200 fffffc00000c3d08 fffffc0000ef2b08 ffff000000002680 [ +0.000009] raw: ffff000006730a00 0000000000150014 00000001ffffffff 0000000000000000 [ +0.000006] page dumped because: kasan: bad access detected [ +0.000011] Memory state around the buggy address: [ +0.000007] ffff000006731580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ +0.000007] ffff000006731600: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ +0.000007] >ffff000006731680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ +0.000007] ^ [ +0.000006] ffff000006731700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ +0.000007] ffff000006731780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ +0.000006] ================================================================== Fix by adding 'remove' driver callback for meson-drm, and explicitly deleting the aggregate device. Signed-off-by: Adrián Larumbe Reviewed-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20220919010940.419893-3-adrian.larumbe@collabora.com Signed-off-by: Sasha Levin --- drivers/gpu/drm/meson/meson_drv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c index 56c7daeb116a..6e37de4fcb46 100644 --- a/drivers/gpu/drm/meson/meson_drv.c +++ b/drivers/gpu/drm/meson/meson_drv.c @@ -520,6 +520,13 @@ static int meson_drv_probe(struct platform_device *pdev) return 0; }; +static int meson_drv_remove(struct platform_device *pdev) +{ + component_master_del(&pdev->dev, &meson_drv_master_ops); + + return 0; +} + static struct meson_drm_match_data meson_drm_gxbb_data = { .compat = VPU_COMPATIBLE_GXBB, }; @@ -557,6 +564,7 @@ static const struct dev_pm_ops meson_drv_pm_ops = { static struct platform_driver meson_drm_platform_driver = { .probe = meson_drv_probe, + .remove = meson_drv_remove, .shutdown = meson_drv_shutdown, .driver = { .name = "meson-drm", -- 2.35.1 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 181F0C433FE for ; Sun, 9 Oct 2022 23:56:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RoHsakedwc0xmVx30IBtpl2t7epHSirTsU5gQYyL9Kk=; b=ze5ZyUCZ5BjCOj SMhCdlPg2JS/v/ZQ7+KsM/qoaCcqE6y4OhLi9BnJ91QN8Ui7X5Hvy9llGmuAsQcODCGH0ZtvkqS1y q7YqdOvH3n5j/SysQ9Dbs6wA48lXeLR+Q0o6jv7PM43cIE0VguFjEW07SH75c/f7nTg5AUnldNe0l vpFb61OTE7bnUgREVIZb9pEYechbVOQ13LLV8PeUU2nosqIYS9D39m5KT8Pd7widWFSVQXfqVBUbJ l3fHPmxGfrK/Vo2xVmgGt2GDsDAhWsp4LR4IG/v2oqDcfZgQ6ZJSnhFckC0T7lTo7NQaNdj5y5h1B OsZqQF3/AvUmBRlQvgvQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ohg9T-00GUdY-Tk; Sun, 09 Oct 2022 23:56:11 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ohg8c-00GU8Q-Ex; Sun, 09 Oct 2022 23:55:20 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id EC5A7B80C74; Sun, 9 Oct 2022 23:55:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90117C43141; Sun, 9 Oct 2022 23:55:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665359715; bh=HmoANf9Uw6rvQWT7WsnNwfX8qNgo1J7uEFFslLv4mKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eGEkZVJFfA/VZwTzf99G7ygJYiBQaN7IKBkqulUtBidZ6Y7JLAujxOyc8TeHPQ54z rq3cFZ4RBHfL0vxryxaY4Zul30XmCTXrWQj1Wj80GQ6pIKHGLbhMDrqUOzeVw+fx/z /67FwVhZ4VgF887pflFOwtpKWHL9CG5Sq7vpKeuw2glxUI0kjdUBR1hRFj56JbrOb6 8q3HsrkmUrjvkJ2GcrBfr6axmCLQmzj/qqyBjmFZZqeEBd2nddge4Jfb96r8o2fIrO C5MUWz521rAQMgdy+oNTsd9lzIzTB3uheoDMVhemixGaasUO1r/DH70ag48UZRWaQi 7w34xKrkqssug== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Adri=C3=A1n=20Larumbe?= , Neil Armstrong , Sasha Levin , airlied@gmail.com, daniel@ffwll.ch, khilman@baylibre.com, dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.15 20/25] drm/meson: explicitly remove aggregate driver at module unload time Date: Sun, 9 Oct 2022 19:54:20 -0400 Message-Id: <20221009235426.1231313-20-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221009235426.1231313-1-sashal@kernel.org> References: <20221009235426.1231313-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221009_165518_858011_8299B947 X-CRM114-Status: GOOD ( 14.82 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org RnJvbTogQWRyacOhbiBMYXJ1bWJlIDxhZHJpYW4ubGFydW1iZUBjb2xsYWJvcmEuY29tPgoKWyBV cHN0cmVhbSBjb21taXQgODYxNmYyYTA1ODlhODBlMDg0MzQyMTIzMjQyNTBlYjIyZjZhNjZjZSBd CgpCZWNhdXNlIGNvbXBvbmVudF9tYXN0ZXJfZGVsIHdhc24ndCBiZWluZyBjYWxsZWQgd2hlbiB1 bmxvYWRpbmcgdGhlCm1lc29uX2RybSBtb2R1bGUsIHRoZSBhZ2dyZWdhdGUgZGV2aWNlIHdvdWxk IGxpbmdlciBmb3JldmVyIGluIHRoZSBnbG9iYWwKYWdncmVnYXRlX2RldmljZXMgbGlzdC4gVGhh dCBtZWFucyB3aGVuIHVubG9hZGluZyBhbmQgcmVsb2FkaW5nIHRoZQptZXNvbl9kd19oZG1pIG1v ZHVsZSwgY29tcG9uZW50X2FkZCB3b3VsZCBjYWxsIGludG8KdHJ5X3RvX2JyaW5nX3VwX2FnZ3Jl Z2F0ZV9kZXZpY2UgYW5kIGZpbmQgdGhlIHVuYm91bmQgbWVzb25fZHJtIGFnZ3JlZ2F0ZQpkZXZp Y2UuCgpUaGlzIHdvdWxkIGluIHR1cm4gZGVyZWZlcmVuY2Ugc29tZSBvZiB0aGUgYWdncmVnYXRl X2RldmljZSdzIHN0cnVjdAplbnRyaWVzIHdoaWNoIHBvaW50IHRvIG1lbW9yeSBhdXRvbWF0aWNh bGx5IGZyZWVkIGJ5IHRoZSBkZXZyZXMgQVBJIHdoZW4KdW5iaW5kaW5nIHRoZSBhZ2dyZWdhdGUg ZGV2aWNlIGZyb20gbWVzb25fZHJ2X3VuYmluZCwgYW5kIHRyaWdnZXIgYW4KdXNlLWFmdGVyLWZy ZWUgYnVnOgoKWyAgKzAuMDAwMDE0XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgICswLjAwMDAwN10gQlVHOiBLQVNBTjogdXNl LWFmdGVyLWZyZWUgaW4gZmluZF9jb21wb25lbnRzKzB4NDY4LzB4NTAwClsgICswLjAwMDAxN10g UmVhZCBvZiBzaXplIDggYXQgYWRkciBmZmZmMDAwMDA2NzMxNjg4IGJ5IHRhc2sgbW9kcHJvYmUv MjUzNgpbICArMC4wMDAwMThdIENQVTogNCBQSUQ6IDI1MzYgQ29tbTogbW9kcHJvYmUgVGFpbnRl ZDogRyAgICAgICAgIEMgTyAgICAgIDUuMTkuMC1yYzYtbHJtYmthc2FuKyAjMQpbICArMC4wMDAw MTBdIEhhcmR3YXJlIG5hbWU6IEhhcmRrZXJuZWwgT0RST0lELU4yUGx1cyAoRFQpClsgICswLjAw MDAwOF0gQ2FsbCB0cmFjZToKWyAgKzAuMDAwMDA1XSAgZHVtcF9iYWNrdHJhY2UrMHgxZWMvMHgy ODAKWyAgKzAuMDAwMDExXSAgc2hvd19zdGFjaysweDI0LzB4ODAKWyAgKzAuMDAwMDA3XSAgZHVt cF9zdGFja19sdmwrMHg5OC8weGQ0ClsgICswLjAwMDAxMF0gIHByaW50X2FkZHJlc3NfZGVzY3Jp cHRpb24uY29uc3Rwcm9wLjArMHg4MC8weDUyMApbICArMC4wMDAwMTFdICBwcmludF9yZXBvcnQr MHgxMjgvMHgyNjAKWyAgKzAuMDAwMDA3XSAga2FzYW5fcmVwb3J0KzB4YjgvMHhmYwpbICArMC4w MDAwMDddICBfX2FzYW5fcmVwb3J0X2xvYWQ4X25vYWJvcnQrMHgzYy8weDUwClsgICswLjAwMDAw OV0gIGZpbmRfY29tcG9uZW50cysweDQ2OC8weDUwMApbICArMC4wMDAwMDhdICB0cnlfdG9fYnJp bmdfdXBfYWdncmVnYXRlX2RldmljZSsweDY0LzB4MzkwClsgICswLjAwMDAwOV0gIF9fY29tcG9u ZW50X2FkZCsweDFkYy8weDQ5YwpbICArMC4wMDAwMDldICBjb21wb25lbnRfYWRkKzB4MjAvMHgz MApbICArMC4wMDAwMDhdICBtZXNvbl9kd19oZG1pX3Byb2JlKzB4MjgvMHgzNCBbbWVzb25fZHdf aGRtaV0KWyAgKzAuMDAwMDEzXSAgcGxhdGZvcm1fcHJvYmUrMHhkMC8weDIyMApbICArMC4wMDAw MDhdICByZWFsbHlfcHJvYmUrMHgzYWMvMHhhODAKWyAgKzAuMDAwMDA4XSAgX19kcml2ZXJfcHJv YmVfZGV2aWNlKzB4MWY4LzB4NDAwClsgICswLjAwMDAwOF0gIGRyaXZlcl9wcm9iZV9kZXZpY2Ur MHg2OC8weDFiMApbICArMC4wMDAwMDhdICBfX2RyaXZlcl9hdHRhY2grMHgyMGMvMHg0ODAKWyAg KzAuMDAwMDA5XSAgYnVzX2Zvcl9lYWNoX2RldisweDExNC8weDFiMApbICArMC4wMDAwMDddICBk cml2ZXJfYXR0YWNoKzB4NDgvMHg2NApbICArMC4wMDAwMDldICBidXNfYWRkX2RyaXZlcisweDM5 MC8weDU2NApbICArMC4wMDAwMDddICBkcml2ZXJfcmVnaXN0ZXIrMHgxYTgvMHgzZTQKWyAgKzAu MDAwMDA5XSAgX19wbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIrMHg2Yy8weDk0ClsgICswLjAwMDAw N10gIG1lc29uX2R3X2hkbWlfcGxhdGZvcm1fZHJpdmVyX2luaXQrMHgzMC8weDEwMDAgW21lc29u X2R3X2hkbWldClsgICswLjAwMDAxNF0gIGRvX29uZV9pbml0Y2FsbCsweGM0LzB4MmIwClsgICsw LjAwMDAwOF0gIGRvX2luaXRfbW9kdWxlKzB4MTU0LzB4NTcwClsgICswLjAwMDAxMF0gIGxvYWRf bW9kdWxlKzB4MWE3OC8weDFlYTQKWyAgKzAuMDAwMDA4XSAgX19kb19zeXNfaW5pdF9tb2R1bGUr MHgxODQvMHgxY2MKWyAgKzAuMDAwMDA4XSAgX19hcm02NF9zeXNfaW5pdF9tb2R1bGUrMHg3OC8w eGIwClsgICswLjAwMDAwOF0gIGludm9rZV9zeXNjYWxsKzB4NzQvMHgyNjAKWyAgKzAuMDAwMDA4 XSAgZWwwX3N2Y19jb21tb24uY29uc3Rwcm9wLjArMHhjYy8weDI2MApbICArMC4wMDAwMDldICBk b19lbDBfc3ZjKzB4NTAvMHg3MApbICArMC4wMDAwMDhdICBlbDBfc3ZjKzB4NjgvMHgxYTAKWyAg KzAuMDAwMDA5XSAgZWwwdF82NF9zeW5jX2hhbmRsZXIrMHgxMWMvMHgxNTAKWyAgKzAuMDAwMDA5 XSAgZWwwdF82NF9zeW5jKzB4MThjLzB4MTkwCgpbICArMC4wMDAwMTRdIEFsbG9jYXRlZCBieSB0 YXNrIDkwMjoKWyAgKzAuMDAwMDA3XSAga2FzYW5fc2F2ZV9zdGFjaysweDJjLzB4NWMKWyAgKzAu MDAwMDA5XSAgX19rYXNhbl9rbWFsbG9jKzB4OTAvMHhkMApbICArMC4wMDAwMDddICBfX2ttYWxs b2Nfbm9kZSsweDI0MC8weDU4MApbICArMC4wMDAwMTBdICBtZW1jZ19hbGxvY19zbGFiX2Nncm91 cHMrMHhhNC8weDFhYwpbICArMC4wMDAwMTBdICBtZW1jZ19zbGFiX3Bvc3RfYWxsb2NfaG9vaysw eGJjLzB4NGMwClsgICswLjAwMDAwOF0gIGttZW1fY2FjaGVfYWxsb2Nfbm9kZSsweDFkMC8weDQ5 MApbICArMC4wMDAwMDldICBfX2FsbG9jX3NrYisweDFkNC8weDMxMApbICArMC4wMDAwMTBdICBh bGxvY19za2Jfd2l0aF9mcmFncysweDhjLzB4NjIwClsgICswLjAwMDAwOF0gIHNvY2tfYWxsb2Nf c2VuZF9wc2tiKzB4NWFjLzB4NmQwClsgICswLjAwMDAxMF0gIHVuaXhfZGdyYW1fc2VuZG1zZysw eDJlMC8weDEyZjAKWyAgKzAuMDAwMDEwXSAgc29ja19zZW5kbXNnKzB4Y2MvMHgxMTAKWyAgKzAu MDAwMDA3XSAgc29ja193cml0ZV9pdGVyKzB4MWQwLzB4MzA0ClsgICswLjAwMDAwOF0gIG5ld19z eW5jX3dyaXRlKzB4MzY0LzB4NDYwClsgICswLjAwMDAwN10gIHZmc193cml0ZSsweDQyMC8weDVh YwpbICArMC4wMDAwMDhdICBrc3lzX3dyaXRlKzB4MTljLzB4MWYwClsgICswLjAwMDAwOF0gIF9f YXJtNjRfc3lzX3dyaXRlKzB4NzgvMHhiMApbICArMC4wMDAwMDddICBpbnZva2Vfc3lzY2FsbCsw eDc0LzB4MjYwClsgICswLjAwMDAwOF0gIGVsMF9zdmNfY29tbW9uLmNvbnN0cHJvcC4wKzB4MWE4 LzB4MjYwClsgICswLjAwMDAwOV0gIGRvX2VsMF9zdmMrMHg1MC8weDcwClsgICswLjAwMDAwN10g IGVsMF9zdmMrMHg2OC8weDFhMApbICArMC4wMDAwMDhdICBlbDB0XzY0X3N5bmNfaGFuZGxlcisw eDExYy8weDE1MApbICArMC4wMDAwMDhdICBlbDB0XzY0X3N5bmMrMHgxOGMvMHgxOTAKClsgICsw LjAwMDAxM10gRnJlZWQgYnkgdGFzayAyNTA5OgpbICArMC4wMDAwMDhdICBrYXNhbl9zYXZlX3N0 YWNrKzB4MmMvMHg1YwpbICArMC4wMDAwMDddICBrYXNhbl9zZXRfdHJhY2srMHgyYy8weDQwClsg ICswLjAwMDAwOF0gIGthc2FuX3NldF9mcmVlX2luZm8rMHgyOC8weDUwClsgICswLjAwMDAwOF0g IF9fX19rYXNhbl9zbGFiX2ZyZWUrMHgxMjgvMHgxZDQKWyAgKzAuMDAwMDA4XSAgX19rYXNhbl9z bGFiX2ZyZWUrMHgxOC8weDI0ClsgICswLjAwMDAwN10gIHNsYWJfZnJlZV9mcmVlbGlzdF9ob29r KzB4MTA4LzB4MjMwClsgICswLjAwMDAxMF0gIGtmcmVlKzB4MTEwLzB4MzVjClsgICswLjAwMDAw OF0gIHJlbGVhc2Vfbm9kZXMrMHhmMC8weDE2YwpbICArMC4wMDAwMDhdICBkZXZyZXNfcmVsZWFz ZV9hbGwrMHhmYy8weDE4MApbICArMC4wMDAwMDhdICBkZXZpY2VfdW5iaW5kX2NsZWFudXArMHgy NC8weDE2NApbICArMC4wMDAwMDhdICBkZXZpY2VfcmVsZWFzZV9kcml2ZXJfaW50ZXJuYWwrMHgz ZTgvMHg1YjAKWyAgKzAuMDAwMDEwXSAgZHJpdmVyX2RldGFjaCsweGFjLzB4MWIwClsgICswLjAw MDAwOF0gIGJ1c19yZW1vdmVfZHJpdmVyKzB4MTU4LzB4MjljClsgICswLjAwMDAwOF0gIGRyaXZl cl91bnJlZ2lzdGVyKzB4NzAvMHhiMApbICArMC4wMDAwMDldICBwbGF0Zm9ybV9kcml2ZXJfdW5y ZWdpc3RlcisweDIwLzB4MmMKWyAgKzAuMDAwMDA3XSAgMHhmZmZmODAwMDAzNzIyZDk4ClsgICsw LjAwMDAxMl0gIF9fZG9fc3lzX2RlbGV0ZV9tb2R1bGUrMHgyODgvMHg0MDAKWyAgKzAuMDAwMDA5 XSAgX19hcm02NF9zeXNfZGVsZXRlX21vZHVsZSsweDVjLzB4ODAKWyAgKzAuMDAwMDA4XSAgaW52 b2tlX3N5c2NhbGwrMHg3NC8weDI2MApbICArMC4wMDAwMDhdICBlbDBfc3ZjX2NvbW1vbi5jb25z dHByb3AuMCsweGNjLzB4MjYwClsgICswLjAwMDAwOF0gIGRvX2VsMF9zdmMrMHg1MC8weDcwClsg ICswLjAwMDAwN10gIGVsMF9zdmMrMHg2OC8weDFhMApbICArMC4wMDAwMDhdICBlbDB0XzY0X3N5 bmNfaGFuZGxlcisweDExYy8weDE1MApbICArMC4wMDAwMDldICBlbDB0XzY0X3N5bmMrMHgxOGMv MHgxOTAKClsgICswLjAwMDAxM10gTGFzdCBwb3RlbnRpYWxseSByZWxhdGVkIHdvcmsgY3JlYXRp b246ClsgICswLjAwMDAwN10gIGthc2FuX3NhdmVfc3RhY2srMHgyYy8weDVjClsgICswLjAwMDAw N10gIF9fa2FzYW5fcmVjb3JkX2F1eF9zdGFjaysweGI4LzB4ZjAKWyAgKzAuMDAwMDA5XSAga2Fz YW5fcmVjb3JkX2F1eF9zdGFja19ub2FsbG9jKzB4MTQvMHgyMApbICArMC4wMDAwMDhdICBpbnNl cnRfd29yaysweDU0LzB4MjkwClsgICswLjAwMDAwOV0gIF9fcXVldWVfd29yaysweDQ4Yy8weGQy NApbICArMC4wMDAwMDhdICBxdWV1ZV93b3JrX29uKzB4OTAvMHgxMWMKWyAgKzAuMDAwMDA4XSAg Y2FsbF91c2VybW9kZWhlbHBlcl9leGVjKzB4MTg4LzB4NDA0ClsgICswLjAwMDAxMF0gIGtvYmpl Y3RfdWV2ZW50X2VudisweDVhOC8weDc5NApbICArMC4wMDAwMTBdICBrb2JqZWN0X3VldmVudCsw eDE0LzB4MjAKWyAgKzAuMDAwMDA4XSAgZHJpdmVyX3JlZ2lzdGVyKzB4MjMwLzB4M2U0ClsgICsw LjAwMDAwOV0gIF9fcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKzB4NmMvMHg5NApbICArMC4wMDAw MDddICBneGJiX2RyaXZlcl9pbml0KzB4MjgvMHgzNApbICArMC4wMDAwMTBdICBkb19vbmVfaW5p dGNhbGwrMHhjNC8weDJiMApbICArMC4wMDAwMDhdICBkb19pbml0Y2FsbHMrMHgyMGMvMHgyNGMK WyAgKzAuMDAwMDEwXSAga2VybmVsX2luaXRfZnJlZWFibGUrMHgyMmMvMHgyNzgKWyAgKzAuMDAw MDA5XSAga2VybmVsX2luaXQrMHgzYy8weDE3MApbICArMC4wMDAwMDhdICByZXRfZnJvbV9mb3Jr KzB4MTAvMHgyMAoKWyAgKzAuMDAwMDEzXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRo ZSBvYmplY3QgYXQgZmZmZjAwMDAwNjczMTYwMAogICAgICAgICAgICAgICB3aGljaCBiZWxvbmdz IHRvIHRoZSBjYWNoZSBrbWFsbG9jLTI1NiBvZiBzaXplIDI1NgpbICArMC4wMDAwMDldIFRoZSBi dWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgMTM2IGJ5dGVzIGluc2lkZSBvZgogICAgICAgICAgICAg ICAyNTYtYnl0ZSByZWdpb24gW2ZmZmYwMDAwMDY3MzE2MDAsIGZmZmYwMDAwMDY3MzE3MDApCgpb ICArMC4wMDAwMTVdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBoeXNpY2FsIHBh Z2U6ClsgICswLjAwMDAwOF0gcGFnZTpmZmZmZmMwMDAwMTljYzAwIHJlZmNvdW50OjEgbWFwY291 bnQ6MCBtYXBwaW5nOjAwMDAwMDAwMDAwMDAwMDAgaW5kZXg6MHhmZmZmMDAwMDA2NzMwYTAwIHBm bjoweDY3MzAKWyAgKzAuMDAwMDExXSBoZWFkOmZmZmZmYzAwMDAxOWNjMDAgb3JkZXI6MiBjb21w b3VuZF9tYXBjb3VudDowIGNvbXBvdW5kX3BpbmNvdW50OjAKWyAgKzAuMDAwMDA4XSBmbGFnczog MHhmZmZmMDAwMDAwMTAyMDAoc2xhYnxoZWFkfG5vZGU9MHx6b25lPTB8bGFzdGNwdXBpZD0weGZm ZmYpClsgICswLjAwMDAxNl0gcmF3OiAwZmZmZjAwMDAwMDEwMjAwIGZmZmZmYzAwMDAwYzNkMDgg ZmZmZmZjMDAwMGVmMmIwOCBmZmZmMDAwMDAwMDAyNjgwClsgICswLjAwMDAwOV0gcmF3OiBmZmZm MDAwMDA2NzMwYTAwIDAwMDAwMDAwMDAxNTAwMTQgMDAwMDAwMDFmZmZmZmZmZiAwMDAwMDAwMDAw MDAwMDAwClsgICswLjAwMDAwNl0gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nl c3MgZGV0ZWN0ZWQKClsgICswLjAwMDAxMV0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kg YWRkcmVzczoKWyAgKzAuMDAwMDA3XSAgZmZmZjAwMDAwNjczMTU4MDogZmMgZmMgZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKWyAgKzAuMDAwMDA3XSAgZmZmZjAwMDAw NjczMTYwMDogZmEgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIK WyAgKzAuMDAwMDA3XSA+ZmZmZjAwMDAwNjczMTY4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgKzAuMDAwMDA3XSAgICAgICAgICAgICAgICAgICAg ICAgXgpbICArMC4wMDAwMDZdICBmZmZmMDAwMDA2NzMxNzAwOiBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICArMC4wMDAwMDddICBmZmZmMDAwMDA2NzMx NzgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICAr MC4wMDAwMDZdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKRml4IGJ5IGFkZGluZyAncmVtb3ZlJyBkcml2ZXIgY2FsbGJh Y2sgZm9yIG1lc29uLWRybSwgYW5kIGV4cGxpY2l0bHkgZGVsZXRpbmcgdGhlCmFnZ3JlZ2F0ZSBk ZXZpY2UuCgpTaWduZWQtb2ZmLWJ5OiBBZHJpw6FuIExhcnVtYmUgPGFkcmlhbi5sYXJ1bWJlQGNv bGxhYm9yYS5jb20+ClJldmlld2VkLWJ5OiBOZWlsIEFybXN0cm9uZyA8bmVpbC5hcm1zdHJvbmdA bGluYXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogTmVpbCBBcm1zdHJvbmcgPG5laWwuYXJtc3Ryb25n QGxpbmFyby5vcmc+Ckxpbms6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRj aC9tc2dpZC8yMDIyMDkxOTAxMDk0MC40MTk4OTMtMy1hZHJpYW4ubGFydW1iZUBjb2xsYWJvcmEu Y29tClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmMgfCA4ICsrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29u L21lc29uX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jCmluZGV4IDU2 YzdkYWViMTE2YS4uNmUzN2RlNGZjYjQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jCkBA IC01MjAsNiArNTIwLDEzIEBAIHN0YXRpYyBpbnQgbWVzb25fZHJ2X3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9OwogCitzdGF0aWMgaW50IG1lc29uX2Ry dl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwljb21wb25lbnRfbWFz dGVyX2RlbCgmcGRldi0+ZGV2LCAmbWVzb25fZHJ2X21hc3Rlcl9vcHMpOworCisJcmV0dXJuIDA7 Cit9CisKIHN0YXRpYyBzdHJ1Y3QgbWVzb25fZHJtX21hdGNoX2RhdGEgbWVzb25fZHJtX2d4YmJf ZGF0YSA9IHsKIAkuY29tcGF0ID0gVlBVX0NPTVBBVElCTEVfR1hCQiwKIH07CkBAIC01NTcsNiAr NTY0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIG1lc29uX2Rydl9wbV9vcHMg PSB7CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1lc29uX2RybV9wbGF0Zm9ybV9k cml2ZXIgPSB7CiAJLnByb2JlICAgICAgPSBtZXNvbl9kcnZfcHJvYmUsCisJLnJlbW92ZSAgICAg PSBtZXNvbl9kcnZfcmVtb3ZlLAogCS5zaHV0ZG93biAgID0gbWVzb25fZHJ2X3NodXRkb3duLAog CS5kcml2ZXIgICAgID0gewogCQkubmFtZQk9ICJtZXNvbi1kcm0iLAotLSAKMi4zNS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dp YyBtYWlsaW5nIGxpc3QKbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo= 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CE3A5C433FE for ; Sun, 9 Oct 2022 23:57:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mrM3LWHDvGm55aXEsfGL3ipauekK5tu28ej0WrZu/nU=; b=AD4a7p5HF2gwSM Db/YLQljld5+mpkd+qcjTRuZPVdgqZjo4hjF41Vo9Xu5DgmnTn/BMlGyK8flWz4BnUKr6vnc1Spz6 P3VhMoTpiniu7x8VhhH9ZavCNCgn7Ltq5Cz9FEHBG/Ox+TDngGC9KNHOX3NuWDop1gfMWRFZfzn9h 2zjoaoeIPo3PJH3g2aATR5VgS5JldktpMQMsmUKizpUPqMBvtFhEwC0x/pPxC0RBqBJ+VekpaCuAy fF4bZlerw0SIH/4S8eo3QzuFduQf7CSJ9WYSlxUqTSQiRTmkJNHFwsHjeXYKcG6Ug7nDrZ5Pj6/PH s+pm8wqTKFY+9wXNB5Iw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ohg9X-00GUee-GG; Sun, 09 Oct 2022 23:56:15 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ohg8c-00GU8Q-Ex; Sun, 09 Oct 2022 23:55:20 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id EC5A7B80C74; Sun, 9 Oct 2022 23:55:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90117C43141; Sun, 9 Oct 2022 23:55:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665359715; bh=HmoANf9Uw6rvQWT7WsnNwfX8qNgo1J7uEFFslLv4mKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eGEkZVJFfA/VZwTzf99G7ygJYiBQaN7IKBkqulUtBidZ6Y7JLAujxOyc8TeHPQ54z rq3cFZ4RBHfL0vxryxaY4Zul30XmCTXrWQj1Wj80GQ6pIKHGLbhMDrqUOzeVw+fx/z /67FwVhZ4VgF887pflFOwtpKWHL9CG5Sq7vpKeuw2glxUI0kjdUBR1hRFj56JbrOb6 8q3HsrkmUrjvkJ2GcrBfr6axmCLQmzj/qqyBjmFZZqeEBd2nddge4Jfb96r8o2fIrO C5MUWz521rAQMgdy+oNTsd9lzIzTB3uheoDMVhemixGaasUO1r/DH70ag48UZRWaQi 7w34xKrkqssug== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Adri=C3=A1n=20Larumbe?= , Neil Armstrong , Sasha Levin , airlied@gmail.com, daniel@ffwll.ch, khilman@baylibre.com, dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.15 20/25] drm/meson: explicitly remove aggregate driver at module unload time Date: Sun, 9 Oct 2022 19:54:20 -0400 Message-Id: <20221009235426.1231313-20-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221009235426.1231313-1-sashal@kernel.org> References: <20221009235426.1231313-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221009_165518_858011_8299B947 X-CRM114-Status: GOOD ( 14.82 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RnJvbTogQWRyacOhbiBMYXJ1bWJlIDxhZHJpYW4ubGFydW1iZUBjb2xsYWJvcmEuY29tPgoKWyBV cHN0cmVhbSBjb21taXQgODYxNmYyYTA1ODlhODBlMDg0MzQyMTIzMjQyNTBlYjIyZjZhNjZjZSBd CgpCZWNhdXNlIGNvbXBvbmVudF9tYXN0ZXJfZGVsIHdhc24ndCBiZWluZyBjYWxsZWQgd2hlbiB1 bmxvYWRpbmcgdGhlCm1lc29uX2RybSBtb2R1bGUsIHRoZSBhZ2dyZWdhdGUgZGV2aWNlIHdvdWxk IGxpbmdlciBmb3JldmVyIGluIHRoZSBnbG9iYWwKYWdncmVnYXRlX2RldmljZXMgbGlzdC4gVGhh dCBtZWFucyB3aGVuIHVubG9hZGluZyBhbmQgcmVsb2FkaW5nIHRoZQptZXNvbl9kd19oZG1pIG1v ZHVsZSwgY29tcG9uZW50X2FkZCB3b3VsZCBjYWxsIGludG8KdHJ5X3RvX2JyaW5nX3VwX2FnZ3Jl Z2F0ZV9kZXZpY2UgYW5kIGZpbmQgdGhlIHVuYm91bmQgbWVzb25fZHJtIGFnZ3JlZ2F0ZQpkZXZp Y2UuCgpUaGlzIHdvdWxkIGluIHR1cm4gZGVyZWZlcmVuY2Ugc29tZSBvZiB0aGUgYWdncmVnYXRl X2RldmljZSdzIHN0cnVjdAplbnRyaWVzIHdoaWNoIHBvaW50IHRvIG1lbW9yeSBhdXRvbWF0aWNh bGx5IGZyZWVkIGJ5IHRoZSBkZXZyZXMgQVBJIHdoZW4KdW5iaW5kaW5nIHRoZSBhZ2dyZWdhdGUg ZGV2aWNlIGZyb20gbWVzb25fZHJ2X3VuYmluZCwgYW5kIHRyaWdnZXIgYW4KdXNlLWFmdGVyLWZy ZWUgYnVnOgoKWyAgKzAuMDAwMDE0XSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgICswLjAwMDAwN10gQlVHOiBLQVNBTjogdXNl LWFmdGVyLWZyZWUgaW4gZmluZF9jb21wb25lbnRzKzB4NDY4LzB4NTAwClsgICswLjAwMDAxN10g UmVhZCBvZiBzaXplIDggYXQgYWRkciBmZmZmMDAwMDA2NzMxNjg4IGJ5IHRhc2sgbW9kcHJvYmUv MjUzNgpbICArMC4wMDAwMThdIENQVTogNCBQSUQ6IDI1MzYgQ29tbTogbW9kcHJvYmUgVGFpbnRl ZDogRyAgICAgICAgIEMgTyAgICAgIDUuMTkuMC1yYzYtbHJtYmthc2FuKyAjMQpbICArMC4wMDAw MTBdIEhhcmR3YXJlIG5hbWU6IEhhcmRrZXJuZWwgT0RST0lELU4yUGx1cyAoRFQpClsgICswLjAw MDAwOF0gQ2FsbCB0cmFjZToKWyAgKzAuMDAwMDA1XSAgZHVtcF9iYWNrdHJhY2UrMHgxZWMvMHgy ODAKWyAgKzAuMDAwMDExXSAgc2hvd19zdGFjaysweDI0LzB4ODAKWyAgKzAuMDAwMDA3XSAgZHVt cF9zdGFja19sdmwrMHg5OC8weGQ0ClsgICswLjAwMDAxMF0gIHByaW50X2FkZHJlc3NfZGVzY3Jp cHRpb24uY29uc3Rwcm9wLjArMHg4MC8weDUyMApbICArMC4wMDAwMTFdICBwcmludF9yZXBvcnQr MHgxMjgvMHgyNjAKWyAgKzAuMDAwMDA3XSAga2FzYW5fcmVwb3J0KzB4YjgvMHhmYwpbICArMC4w MDAwMDddICBfX2FzYW5fcmVwb3J0X2xvYWQ4X25vYWJvcnQrMHgzYy8weDUwClsgICswLjAwMDAw OV0gIGZpbmRfY29tcG9uZW50cysweDQ2OC8weDUwMApbICArMC4wMDAwMDhdICB0cnlfdG9fYnJp bmdfdXBfYWdncmVnYXRlX2RldmljZSsweDY0LzB4MzkwClsgICswLjAwMDAwOV0gIF9fY29tcG9u ZW50X2FkZCsweDFkYy8weDQ5YwpbICArMC4wMDAwMDldICBjb21wb25lbnRfYWRkKzB4MjAvMHgz MApbICArMC4wMDAwMDhdICBtZXNvbl9kd19oZG1pX3Byb2JlKzB4MjgvMHgzNCBbbWVzb25fZHdf aGRtaV0KWyAgKzAuMDAwMDEzXSAgcGxhdGZvcm1fcHJvYmUrMHhkMC8weDIyMApbICArMC4wMDAw MDhdICByZWFsbHlfcHJvYmUrMHgzYWMvMHhhODAKWyAgKzAuMDAwMDA4XSAgX19kcml2ZXJfcHJv YmVfZGV2aWNlKzB4MWY4LzB4NDAwClsgICswLjAwMDAwOF0gIGRyaXZlcl9wcm9iZV9kZXZpY2Ur MHg2OC8weDFiMApbICArMC4wMDAwMDhdICBfX2RyaXZlcl9hdHRhY2grMHgyMGMvMHg0ODAKWyAg KzAuMDAwMDA5XSAgYnVzX2Zvcl9lYWNoX2RldisweDExNC8weDFiMApbICArMC4wMDAwMDddICBk cml2ZXJfYXR0YWNoKzB4NDgvMHg2NApbICArMC4wMDAwMDldICBidXNfYWRkX2RyaXZlcisweDM5 MC8weDU2NApbICArMC4wMDAwMDddICBkcml2ZXJfcmVnaXN0ZXIrMHgxYTgvMHgzZTQKWyAgKzAu MDAwMDA5XSAgX19wbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIrMHg2Yy8weDk0ClsgICswLjAwMDAw N10gIG1lc29uX2R3X2hkbWlfcGxhdGZvcm1fZHJpdmVyX2luaXQrMHgzMC8weDEwMDAgW21lc29u X2R3X2hkbWldClsgICswLjAwMDAxNF0gIGRvX29uZV9pbml0Y2FsbCsweGM0LzB4MmIwClsgICsw LjAwMDAwOF0gIGRvX2luaXRfbW9kdWxlKzB4MTU0LzB4NTcwClsgICswLjAwMDAxMF0gIGxvYWRf bW9kdWxlKzB4MWE3OC8weDFlYTQKWyAgKzAuMDAwMDA4XSAgX19kb19zeXNfaW5pdF9tb2R1bGUr MHgxODQvMHgxY2MKWyAgKzAuMDAwMDA4XSAgX19hcm02NF9zeXNfaW5pdF9tb2R1bGUrMHg3OC8w eGIwClsgICswLjAwMDAwOF0gIGludm9rZV9zeXNjYWxsKzB4NzQvMHgyNjAKWyAgKzAuMDAwMDA4 XSAgZWwwX3N2Y19jb21tb24uY29uc3Rwcm9wLjArMHhjYy8weDI2MApbICArMC4wMDAwMDldICBk b19lbDBfc3ZjKzB4NTAvMHg3MApbICArMC4wMDAwMDhdICBlbDBfc3ZjKzB4NjgvMHgxYTAKWyAg KzAuMDAwMDA5XSAgZWwwdF82NF9zeW5jX2hhbmRsZXIrMHgxMWMvMHgxNTAKWyAgKzAuMDAwMDA5 XSAgZWwwdF82NF9zeW5jKzB4MThjLzB4MTkwCgpbICArMC4wMDAwMTRdIEFsbG9jYXRlZCBieSB0 YXNrIDkwMjoKWyAgKzAuMDAwMDA3XSAga2FzYW5fc2F2ZV9zdGFjaysweDJjLzB4NWMKWyAgKzAu MDAwMDA5XSAgX19rYXNhbl9rbWFsbG9jKzB4OTAvMHhkMApbICArMC4wMDAwMDddICBfX2ttYWxs b2Nfbm9kZSsweDI0MC8weDU4MApbICArMC4wMDAwMTBdICBtZW1jZ19hbGxvY19zbGFiX2Nncm91 cHMrMHhhNC8weDFhYwpbICArMC4wMDAwMTBdICBtZW1jZ19zbGFiX3Bvc3RfYWxsb2NfaG9vaysw eGJjLzB4NGMwClsgICswLjAwMDAwOF0gIGttZW1fY2FjaGVfYWxsb2Nfbm9kZSsweDFkMC8weDQ5 MApbICArMC4wMDAwMDldICBfX2FsbG9jX3NrYisweDFkNC8weDMxMApbICArMC4wMDAwMTBdICBh bGxvY19za2Jfd2l0aF9mcmFncysweDhjLzB4NjIwClsgICswLjAwMDAwOF0gIHNvY2tfYWxsb2Nf c2VuZF9wc2tiKzB4NWFjLzB4NmQwClsgICswLjAwMDAxMF0gIHVuaXhfZGdyYW1fc2VuZG1zZysw eDJlMC8weDEyZjAKWyAgKzAuMDAwMDEwXSAgc29ja19zZW5kbXNnKzB4Y2MvMHgxMTAKWyAgKzAu MDAwMDA3XSAgc29ja193cml0ZV9pdGVyKzB4MWQwLzB4MzA0ClsgICswLjAwMDAwOF0gIG5ld19z eW5jX3dyaXRlKzB4MzY0LzB4NDYwClsgICswLjAwMDAwN10gIHZmc193cml0ZSsweDQyMC8weDVh YwpbICArMC4wMDAwMDhdICBrc3lzX3dyaXRlKzB4MTljLzB4MWYwClsgICswLjAwMDAwOF0gIF9f YXJtNjRfc3lzX3dyaXRlKzB4NzgvMHhiMApbICArMC4wMDAwMDddICBpbnZva2Vfc3lzY2FsbCsw eDc0LzB4MjYwClsgICswLjAwMDAwOF0gIGVsMF9zdmNfY29tbW9uLmNvbnN0cHJvcC4wKzB4MWE4 LzB4MjYwClsgICswLjAwMDAwOV0gIGRvX2VsMF9zdmMrMHg1MC8weDcwClsgICswLjAwMDAwN10g IGVsMF9zdmMrMHg2OC8weDFhMApbICArMC4wMDAwMDhdICBlbDB0XzY0X3N5bmNfaGFuZGxlcisw eDExYy8weDE1MApbICArMC4wMDAwMDhdICBlbDB0XzY0X3N5bmMrMHgxOGMvMHgxOTAKClsgICsw LjAwMDAxM10gRnJlZWQgYnkgdGFzayAyNTA5OgpbICArMC4wMDAwMDhdICBrYXNhbl9zYXZlX3N0 YWNrKzB4MmMvMHg1YwpbICArMC4wMDAwMDddICBrYXNhbl9zZXRfdHJhY2srMHgyYy8weDQwClsg ICswLjAwMDAwOF0gIGthc2FuX3NldF9mcmVlX2luZm8rMHgyOC8weDUwClsgICswLjAwMDAwOF0g IF9fX19rYXNhbl9zbGFiX2ZyZWUrMHgxMjgvMHgxZDQKWyAgKzAuMDAwMDA4XSAgX19rYXNhbl9z bGFiX2ZyZWUrMHgxOC8weDI0ClsgICswLjAwMDAwN10gIHNsYWJfZnJlZV9mcmVlbGlzdF9ob29r KzB4MTA4LzB4MjMwClsgICswLjAwMDAxMF0gIGtmcmVlKzB4MTEwLzB4MzVjClsgICswLjAwMDAw OF0gIHJlbGVhc2Vfbm9kZXMrMHhmMC8weDE2YwpbICArMC4wMDAwMDhdICBkZXZyZXNfcmVsZWFz ZV9hbGwrMHhmYy8weDE4MApbICArMC4wMDAwMDhdICBkZXZpY2VfdW5iaW5kX2NsZWFudXArMHgy NC8weDE2NApbICArMC4wMDAwMDhdICBkZXZpY2VfcmVsZWFzZV9kcml2ZXJfaW50ZXJuYWwrMHgz ZTgvMHg1YjAKWyAgKzAuMDAwMDEwXSAgZHJpdmVyX2RldGFjaCsweGFjLzB4MWIwClsgICswLjAw MDAwOF0gIGJ1c19yZW1vdmVfZHJpdmVyKzB4MTU4LzB4MjljClsgICswLjAwMDAwOF0gIGRyaXZl cl91bnJlZ2lzdGVyKzB4NzAvMHhiMApbICArMC4wMDAwMDldICBwbGF0Zm9ybV9kcml2ZXJfdW5y ZWdpc3RlcisweDIwLzB4MmMKWyAgKzAuMDAwMDA3XSAgMHhmZmZmODAwMDAzNzIyZDk4ClsgICsw LjAwMDAxMl0gIF9fZG9fc3lzX2RlbGV0ZV9tb2R1bGUrMHgyODgvMHg0MDAKWyAgKzAuMDAwMDA5 XSAgX19hcm02NF9zeXNfZGVsZXRlX21vZHVsZSsweDVjLzB4ODAKWyAgKzAuMDAwMDA4XSAgaW52 b2tlX3N5c2NhbGwrMHg3NC8weDI2MApbICArMC4wMDAwMDhdICBlbDBfc3ZjX2NvbW1vbi5jb25z dHByb3AuMCsweGNjLzB4MjYwClsgICswLjAwMDAwOF0gIGRvX2VsMF9zdmMrMHg1MC8weDcwClsg ICswLjAwMDAwN10gIGVsMF9zdmMrMHg2OC8weDFhMApbICArMC4wMDAwMDhdICBlbDB0XzY0X3N5 bmNfaGFuZGxlcisweDExYy8weDE1MApbICArMC4wMDAwMDldICBlbDB0XzY0X3N5bmMrMHgxOGMv MHgxOTAKClsgICswLjAwMDAxM10gTGFzdCBwb3RlbnRpYWxseSByZWxhdGVkIHdvcmsgY3JlYXRp b246ClsgICswLjAwMDAwN10gIGthc2FuX3NhdmVfc3RhY2srMHgyYy8weDVjClsgICswLjAwMDAw N10gIF9fa2FzYW5fcmVjb3JkX2F1eF9zdGFjaysweGI4LzB4ZjAKWyAgKzAuMDAwMDA5XSAga2Fz YW5fcmVjb3JkX2F1eF9zdGFja19ub2FsbG9jKzB4MTQvMHgyMApbICArMC4wMDAwMDhdICBpbnNl cnRfd29yaysweDU0LzB4MjkwClsgICswLjAwMDAwOV0gIF9fcXVldWVfd29yaysweDQ4Yy8weGQy NApbICArMC4wMDAwMDhdICBxdWV1ZV93b3JrX29uKzB4OTAvMHgxMWMKWyAgKzAuMDAwMDA4XSAg Y2FsbF91c2VybW9kZWhlbHBlcl9leGVjKzB4MTg4LzB4NDA0ClsgICswLjAwMDAxMF0gIGtvYmpl Y3RfdWV2ZW50X2VudisweDVhOC8weDc5NApbICArMC4wMDAwMTBdICBrb2JqZWN0X3VldmVudCsw eDE0LzB4MjAKWyAgKzAuMDAwMDA4XSAgZHJpdmVyX3JlZ2lzdGVyKzB4MjMwLzB4M2U0ClsgICsw LjAwMDAwOV0gIF9fcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKzB4NmMvMHg5NApbICArMC4wMDAw MDddICBneGJiX2RyaXZlcl9pbml0KzB4MjgvMHgzNApbICArMC4wMDAwMTBdICBkb19vbmVfaW5p dGNhbGwrMHhjNC8weDJiMApbICArMC4wMDAwMDhdICBkb19pbml0Y2FsbHMrMHgyMGMvMHgyNGMK WyAgKzAuMDAwMDEwXSAga2VybmVsX2luaXRfZnJlZWFibGUrMHgyMmMvMHgyNzgKWyAgKzAuMDAw MDA5XSAga2VybmVsX2luaXQrMHgzYy8weDE3MApbICArMC4wMDAwMDhdICByZXRfZnJvbV9mb3Jr KzB4MTAvMHgyMAoKWyAgKzAuMDAwMDEzXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRo ZSBvYmplY3QgYXQgZmZmZjAwMDAwNjczMTYwMAogICAgICAgICAgICAgICB3aGljaCBiZWxvbmdz IHRvIHRoZSBjYWNoZSBrbWFsbG9jLTI1NiBvZiBzaXplIDI1NgpbICArMC4wMDAwMDldIFRoZSBi dWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgMTM2IGJ5dGVzIGluc2lkZSBvZgogICAgICAgICAgICAg ICAyNTYtYnl0ZSByZWdpb24gW2ZmZmYwMDAwMDY3MzE2MDAsIGZmZmYwMDAwMDY3MzE3MDApCgpb ICArMC4wMDAwMTVdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBoeXNpY2FsIHBh Z2U6ClsgICswLjAwMDAwOF0gcGFnZTpmZmZmZmMwMDAwMTljYzAwIHJlZmNvdW50OjEgbWFwY291 bnQ6MCBtYXBwaW5nOjAwMDAwMDAwMDAwMDAwMDAgaW5kZXg6MHhmZmZmMDAwMDA2NzMwYTAwIHBm bjoweDY3MzAKWyAgKzAuMDAwMDExXSBoZWFkOmZmZmZmYzAwMDAxOWNjMDAgb3JkZXI6MiBjb21w b3VuZF9tYXBjb3VudDowIGNvbXBvdW5kX3BpbmNvdW50OjAKWyAgKzAuMDAwMDA4XSBmbGFnczog MHhmZmZmMDAwMDAwMTAyMDAoc2xhYnxoZWFkfG5vZGU9MHx6b25lPTB8bGFzdGNwdXBpZD0weGZm ZmYpClsgICswLjAwMDAxNl0gcmF3OiAwZmZmZjAwMDAwMDEwMjAwIGZmZmZmYzAwMDAwYzNkMDgg ZmZmZmZjMDAwMGVmMmIwOCBmZmZmMDAwMDAwMDAyNjgwClsgICswLjAwMDAwOV0gcmF3OiBmZmZm MDAwMDA2NzMwYTAwIDAwMDAwMDAwMDAxNTAwMTQgMDAwMDAwMDFmZmZmZmZmZiAwMDAwMDAwMDAw MDAwMDAwClsgICswLjAwMDAwNl0gcGFnZSBkdW1wZWQgYmVjYXVzZToga2FzYW46IGJhZCBhY2Nl c3MgZGV0ZWN0ZWQKClsgICswLjAwMDAxMV0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kg YWRkcmVzczoKWyAgKzAuMDAwMDA3XSAgZmZmZjAwMDAwNjczMTU4MDogZmMgZmMgZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKWyAgKzAuMDAwMDA3XSAgZmZmZjAwMDAw NjczMTYwMDogZmEgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIK WyAgKzAuMDAwMDA3XSA+ZmZmZjAwMDAwNjczMTY4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgKzAuMDAwMDA3XSAgICAgICAgICAgICAgICAgICAg ICAgXgpbICArMC4wMDAwMDZdICBmZmZmMDAwMDA2NzMxNzAwOiBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICArMC4wMDAwMDddICBmZmZmMDAwMDA2NzMx NzgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICAr MC4wMDAwMDZdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQoKRml4IGJ5IGFkZGluZyAncmVtb3ZlJyBkcml2ZXIgY2FsbGJh Y2sgZm9yIG1lc29uLWRybSwgYW5kIGV4cGxpY2l0bHkgZGVsZXRpbmcgdGhlCmFnZ3JlZ2F0ZSBk ZXZpY2UuCgpTaWduZWQtb2ZmLWJ5OiBBZHJpw6FuIExhcnVtYmUgPGFkcmlhbi5sYXJ1bWJlQGNv bGxhYm9yYS5jb20+ClJldmlld2VkLWJ5OiBOZWlsIEFybXN0cm9uZyA8bmVpbC5hcm1zdHJvbmdA bGluYXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogTmVpbCBBcm1zdHJvbmcgPG5laWwuYXJtc3Ryb25n QGxpbmFyby5vcmc+Ckxpbms6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRj aC9tc2dpZC8yMDIyMDkxOTAxMDk0MC40MTk4OTMtMy1hZHJpYW4ubGFydW1iZUBjb2xsYWJvcmEu Y29tClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmMgfCA4ICsrKysrKysrCiAxIGZpbGUgY2hh bmdlZCwgOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lc29u L21lc29uX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jCmluZGV4IDU2 YzdkYWViMTE2YS4uNmUzN2RlNGZjYjQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2Rydi5jCkBA IC01MjAsNiArNTIwLDEzIEBAIHN0YXRpYyBpbnQgbWVzb25fZHJ2X3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9OwogCitzdGF0aWMgaW50IG1lc29uX2Ry dl9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwljb21wb25lbnRfbWFz dGVyX2RlbCgmcGRldi0+ZGV2LCAmbWVzb25fZHJ2X21hc3Rlcl9vcHMpOworCisJcmV0dXJuIDA7 Cit9CisKIHN0YXRpYyBzdHJ1Y3QgbWVzb25fZHJtX21hdGNoX2RhdGEgbWVzb25fZHJtX2d4YmJf ZGF0YSA9IHsKIAkuY29tcGF0ID0gVlBVX0NPTVBBVElCTEVfR1hCQiwKIH07CkBAIC01NTcsNiAr NTY0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIG1lc29uX2Rydl9wbV9vcHMg PSB7CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG1lc29uX2RybV9wbGF0Zm9ybV9k cml2ZXIgPSB7CiAJLnByb2JlICAgICAgPSBtZXNvbl9kcnZfcHJvYmUsCisJLnJlbW92ZSAgICAg PSBtZXNvbl9kcnZfcmVtb3ZlLAogCS5zaHV0ZG93biAgID0gbWVzb25fZHJ2X3NodXRkb3duLAog CS5kcml2ZXIgICAgID0gewogCQkubmFtZQk9ICJtZXNvbi1kcm0iLAotLSAKMi4zNS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo= 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7F85C433FE for ; Mon, 10 Oct 2022 00:22:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232103AbiJJAW5 (ORCPT ); Sun, 9 Oct 2022 20:22:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51812 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232376AbiJJAVH (ORCPT ); Sun, 9 Oct 2022 20:21:07 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AAF783AE7D; Sun, 9 Oct 2022 16:55:16 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 498BF60DD1; Sun, 9 Oct 2022 23:55:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 90117C43141; Sun, 9 Oct 2022 23:55:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1665359715; bh=HmoANf9Uw6rvQWT7WsnNwfX8qNgo1J7uEFFslLv4mKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=eGEkZVJFfA/VZwTzf99G7ygJYiBQaN7IKBkqulUtBidZ6Y7JLAujxOyc8TeHPQ54z rq3cFZ4RBHfL0vxryxaY4Zul30XmCTXrWQj1Wj80GQ6pIKHGLbhMDrqUOzeVw+fx/z /67FwVhZ4VgF887pflFOwtpKWHL9CG5Sq7vpKeuw2glxUI0kjdUBR1hRFj56JbrOb6 8q3HsrkmUrjvkJ2GcrBfr6axmCLQmzj/qqyBjmFZZqeEBd2nddge4Jfb96r8o2fIrO C5MUWz521rAQMgdy+oNTsd9lzIzTB3uheoDMVhemixGaasUO1r/DH70ag48UZRWaQi 7w34xKrkqssug== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: =?UTF-8?q?Adri=C3=A1n=20Larumbe?= , Neil Armstrong , Sasha Levin , airlied@gmail.com, daniel@ffwll.ch, khilman@baylibre.com, dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.15 20/25] drm/meson: explicitly remove aggregate driver at module unload time Date: Sun, 9 Oct 2022 19:54:20 -0400 Message-Id: <20221009235426.1231313-20-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221009235426.1231313-1-sashal@kernel.org> References: <20221009235426.1231313-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Adrián Larumbe [ Upstream commit 8616f2a0589a80e08434212324250eb22f6a66ce ] Because component_master_del wasn't being called when unloading the meson_drm module, the aggregate device would linger forever in the global aggregate_devices list. That means when unloading and reloading the meson_dw_hdmi module, component_add would call into try_to_bring_up_aggregate_device and find the unbound meson_drm aggregate device. This would in turn dereference some of the aggregate_device's struct entries which point to memory automatically freed by the devres API when unbinding the aggregate device from meson_drv_unbind, and trigger an use-after-free bug: [ +0.000014] ============================================================= [ +0.000007] BUG: KASAN: use-after-free in find_components+0x468/0x500 [ +0.000017] Read of size 8 at addr ffff000006731688 by task modprobe/2536 [ +0.000018] CPU: 4 PID: 2536 Comm: modprobe Tainted: G C O 5.19.0-rc6-lrmbkasan+ #1 [ +0.000010] Hardware name: Hardkernel ODROID-N2Plus (DT) [ +0.000008] Call trace: [ +0.000005] dump_backtrace+0x1ec/0x280 [ +0.000011] show_stack+0x24/0x80 [ +0.000007] dump_stack_lvl+0x98/0xd4 [ +0.000010] print_address_description.constprop.0+0x80/0x520 [ +0.000011] print_report+0x128/0x260 [ +0.000007] kasan_report+0xb8/0xfc [ +0.000007] __asan_report_load8_noabort+0x3c/0x50 [ +0.000009] find_components+0x468/0x500 [ +0.000008] try_to_bring_up_aggregate_device+0x64/0x390 [ +0.000009] __component_add+0x1dc/0x49c [ +0.000009] component_add+0x20/0x30 [ +0.000008] meson_dw_hdmi_probe+0x28/0x34 [meson_dw_hdmi] [ +0.000013] platform_probe+0xd0/0x220 [ +0.000008] really_probe+0x3ac/0xa80 [ +0.000008] __driver_probe_device+0x1f8/0x400 [ +0.000008] driver_probe_device+0x68/0x1b0 [ +0.000008] __driver_attach+0x20c/0x480 [ +0.000009] bus_for_each_dev+0x114/0x1b0 [ +0.000007] driver_attach+0x48/0x64 [ +0.000009] bus_add_driver+0x390/0x564 [ +0.000007] driver_register+0x1a8/0x3e4 [ +0.000009] __platform_driver_register+0x6c/0x94 [ +0.000007] meson_dw_hdmi_platform_driver_init+0x30/0x1000 [meson_dw_hdmi] [ +0.000014] do_one_initcall+0xc4/0x2b0 [ +0.000008] do_init_module+0x154/0x570 [ +0.000010] load_module+0x1a78/0x1ea4 [ +0.000008] __do_sys_init_module+0x184/0x1cc [ +0.000008] __arm64_sys_init_module+0x78/0xb0 [ +0.000008] invoke_syscall+0x74/0x260 [ +0.000008] el0_svc_common.constprop.0+0xcc/0x260 [ +0.000009] do_el0_svc+0x50/0x70 [ +0.000008] el0_svc+0x68/0x1a0 [ +0.000009] el0t_64_sync_handler+0x11c/0x150 [ +0.000009] el0t_64_sync+0x18c/0x190 [ +0.000014] Allocated by task 902: [ +0.000007] kasan_save_stack+0x2c/0x5c [ +0.000009] __kasan_kmalloc+0x90/0xd0 [ +0.000007] __kmalloc_node+0x240/0x580 [ +0.000010] memcg_alloc_slab_cgroups+0xa4/0x1ac [ +0.000010] memcg_slab_post_alloc_hook+0xbc/0x4c0 [ +0.000008] kmem_cache_alloc_node+0x1d0/0x490 [ +0.000009] __alloc_skb+0x1d4/0x310 [ +0.000010] alloc_skb_with_frags+0x8c/0x620 [ +0.000008] sock_alloc_send_pskb+0x5ac/0x6d0 [ +0.000010] unix_dgram_sendmsg+0x2e0/0x12f0 [ +0.000010] sock_sendmsg+0xcc/0x110 [ +0.000007] sock_write_iter+0x1d0/0x304 [ +0.000008] new_sync_write+0x364/0x460 [ +0.000007] vfs_write+0x420/0x5ac [ +0.000008] ksys_write+0x19c/0x1f0 [ +0.000008] __arm64_sys_write+0x78/0xb0 [ +0.000007] invoke_syscall+0x74/0x260 [ +0.000008] el0_svc_common.constprop.0+0x1a8/0x260 [ +0.000009] do_el0_svc+0x50/0x70 [ +0.000007] el0_svc+0x68/0x1a0 [ +0.000008] el0t_64_sync_handler+0x11c/0x150 [ +0.000008] el0t_64_sync+0x18c/0x190 [ +0.000013] Freed by task 2509: [ +0.000008] kasan_save_stack+0x2c/0x5c [ +0.000007] kasan_set_track+0x2c/0x40 [ +0.000008] kasan_set_free_info+0x28/0x50 [ +0.000008] ____kasan_slab_free+0x128/0x1d4 [ +0.000008] __kasan_slab_free+0x18/0x24 [ +0.000007] slab_free_freelist_hook+0x108/0x230 [ +0.000010] kfree+0x110/0x35c [ +0.000008] release_nodes+0xf0/0x16c [ +0.000008] devres_release_all+0xfc/0x180 [ +0.000008] device_unbind_cleanup+0x24/0x164 [ +0.000008] device_release_driver_internal+0x3e8/0x5b0 [ +0.000010] driver_detach+0xac/0x1b0 [ +0.000008] bus_remove_driver+0x158/0x29c [ +0.000008] driver_unregister+0x70/0xb0 [ +0.000009] platform_driver_unregister+0x20/0x2c [ +0.000007] 0xffff800003722d98 [ +0.000012] __do_sys_delete_module+0x288/0x400 [ +0.000009] __arm64_sys_delete_module+0x5c/0x80 [ +0.000008] invoke_syscall+0x74/0x260 [ +0.000008] el0_svc_common.constprop.0+0xcc/0x260 [ +0.000008] do_el0_svc+0x50/0x70 [ +0.000007] el0_svc+0x68/0x1a0 [ +0.000008] el0t_64_sync_handler+0x11c/0x150 [ +0.000009] el0t_64_sync+0x18c/0x190 [ +0.000013] Last potentially related work creation: [ +0.000007] kasan_save_stack+0x2c/0x5c [ +0.000007] __kasan_record_aux_stack+0xb8/0xf0 [ +0.000009] kasan_record_aux_stack_noalloc+0x14/0x20 [ +0.000008] insert_work+0x54/0x290 [ +0.000009] __queue_work+0x48c/0xd24 [ +0.000008] queue_work_on+0x90/0x11c [ +0.000008] call_usermodehelper_exec+0x188/0x404 [ +0.000010] kobject_uevent_env+0x5a8/0x794 [ +0.000010] kobject_uevent+0x14/0x20 [ +0.000008] driver_register+0x230/0x3e4 [ +0.000009] __platform_driver_register+0x6c/0x94 [ +0.000007] gxbb_driver_init+0x28/0x34 [ +0.000010] do_one_initcall+0xc4/0x2b0 [ +0.000008] do_initcalls+0x20c/0x24c [ +0.000010] kernel_init_freeable+0x22c/0x278 [ +0.000009] kernel_init+0x3c/0x170 [ +0.000008] ret_from_fork+0x10/0x20 [ +0.000013] The buggy address belongs to the object at ffff000006731600 which belongs to the cache kmalloc-256 of size 256 [ +0.000009] The buggy address is located 136 bytes inside of 256-byte region [ffff000006731600, ffff000006731700) [ +0.000015] The buggy address belongs to the physical page: [ +0.000008] page:fffffc000019cc00 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff000006730a00 pfn:0x6730 [ +0.000011] head:fffffc000019cc00 order:2 compound_mapcount:0 compound_pincount:0 [ +0.000008] flags: 0xffff00000010200(slab|head|node=0|zone=0|lastcpupid=0xffff) [ +0.000016] raw: 0ffff00000010200 fffffc00000c3d08 fffffc0000ef2b08 ffff000000002680 [ +0.000009] raw: ffff000006730a00 0000000000150014 00000001ffffffff 0000000000000000 [ +0.000006] page dumped because: kasan: bad access detected [ +0.000011] Memory state around the buggy address: [ +0.000007] ffff000006731580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ +0.000007] ffff000006731600: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ +0.000007] >ffff000006731680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ +0.000007] ^ [ +0.000006] ffff000006731700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ +0.000007] ffff000006731780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ +0.000006] ================================================================== Fix by adding 'remove' driver callback for meson-drm, and explicitly deleting the aggregate device. Signed-off-by: Adrián Larumbe Reviewed-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20220919010940.419893-3-adrian.larumbe@collabora.com Signed-off-by: Sasha Levin --- drivers/gpu/drm/meson/meson_drv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c index 56c7daeb116a..6e37de4fcb46 100644 --- a/drivers/gpu/drm/meson/meson_drv.c +++ b/drivers/gpu/drm/meson/meson_drv.c @@ -520,6 +520,13 @@ static int meson_drv_probe(struct platform_device *pdev) return 0; }; +static int meson_drv_remove(struct platform_device *pdev) +{ + component_master_del(&pdev->dev, &meson_drv_master_ops); + + return 0; +} + static struct meson_drm_match_data meson_drm_gxbb_data = { .compat = VPU_COMPATIBLE_GXBB, }; @@ -557,6 +564,7 @@ static const struct dev_pm_ops meson_drv_pm_ops = { static struct platform_driver meson_drm_platform_driver = { .probe = meson_drv_probe, + .remove = meson_drv_remove, .shutdown = meson_drv_shutdown, .driver = { .name = "meson-drm", -- 2.35.1