From nobody Wed Jun 17 06:11:41 2026 Received: from ZR1P278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazon11022087.outbound.protection.outlook.com [40.107.168.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DFAE323183F for ; Mon, 27 Apr 2026 13:46:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.168.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777297609; cv=fail; b=KutXA1u8rrh49AC2vadjkAxW/E0+3hLYwQKsOZ4KTP5zhetYWOyLDz5tIw8TvJXm9LEOH7EKKiWrNypOE/688b5DnYOIZVzjPK8EafJvUDJNb1SFJEAggCtb4Fke/HfD1B3R0CgO/DDTp81mx4GZu4OoveeNjMbxtVL1wU4b7k4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777297609; c=relaxed/simple; bh=Z8f/FXoP+nRnRciTBM079xvjKVcEk3eCb9jE43vv51o=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=pnM6J9QqH+J1EhMP8SUGDBn5RyGg2B+Z9WE4jDrIThQ2hdAsUJWzoRZAGY3cjc8LDLj208jHxdywfwhGLlAZiAbphg0qVchqQhSVgK3qPyiZZXlidq+6m1BM7eYw2Oz0ShPJfKX5NCSLvI8ixIvAyNFaAN/oZNXa8PqCXs5hrAA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=duagon.com; spf=pass smtp.mailfrom=duagon.com; dkim=pass (1024-bit key) header.d=duagon.com header.i=@duagon.com header.b=IHnkWkJb; arc=fail smtp.client-ip=40.107.168.87 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=duagon.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=duagon.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=duagon.com header.i=@duagon.com header.b="IHnkWkJb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DWePUWWNVzW0LZE/pPseEzRpsh62SnokAOkxhlc1AfoJPWcRe19cLlbuk8rBH4X8A0AEDxDz2ungLYZ9Fz4SjlYgLZTMoOhn/NyVkXI8O3wtEIksKRC3rVtRQW2hYlJ+v3FeEGreLp2SdTYdPsQJI4ai8VbIxqDggJITPaHhE+JFFMh4NAVWqwRc5JePT7chOsI2jGz/QSdqFZnh0kQtqhIRgFGOiA07AK49PERUNYImPyMGuBxhx+7aDRM2tyXWVt1zZmc09783TRmJVtUDzkArBXuHx/oNIvfFF7f6u8oJpanCrlIO4dr6fC4aFiFVR/zuaZdCAa//WUaYF1wefw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=84dowveKqkqU+BvhlBdxun4QPZ4LdL9oJe0ZtHBc17g=; b=D0i8DTX4gE+9HoT7bLHF736Esl/d1dn31xXeuQgn7psg6EQYGsac8o7gOkZ6YKQ0u2E7waQleV2QXqo/lr2lnGMcp+JCppjxVjP5v5W+nzwADvHtRcle6guqBt/xxbGpur+LLLXHmHGCtavmxZ/9OsoT3s20L6nFZiC6wNZIEQDLsxvVz8o+w5e1bnJLW1hHgYTuoRW2wmHkTYXbH0SyuFRKQd5DV4YJLxKoejehyXgzE7+/7fIdZcK02pnArQwlQL6/rSX7SSnVRQWzNXbwbiYLLeAIbdVMSOSd0/pZn51KRfVdhCirFS66SAFjnGNChPNtvOB5oJbvT1fP/euePA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.93.86.3) smtp.rcpttodomain=gmail.com smtp.mailfrom=duagon.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=duagon.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=duagon.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=84dowveKqkqU+BvhlBdxun4QPZ4LdL9oJe0ZtHBc17g=; b=IHnkWkJbX1u+tUPuVhd7MGF3n220Jd4gZx1+NAv3RLj9vbvt1Gmzan2HIAl1kXmSU6IDkX6HsUkeF9TRh2Xt2ro5CyVV73s6jMCMLJS52FDtTahvPO141c7LNCE/NGLvhHLwX+ZAs34+Fc32phN7sZyaWezkMFlUfyIpdqOYNWw= Received: from CWLP265CA0482.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:18a::7) by GV0P278MB1539.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:66::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Mon, 27 Apr 2026 13:46:44 +0000 Received: from AMS1EPF00000049.eurprd04.prod.outlook.com (2603:10a6:400:18a:cafe::66) by CWLP265CA0482.outlook.office365.com (2603:10a6:400:18a::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.26 via Frontend Transport; Mon, 27 Apr 2026 13:46:44 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.93.86.3) smtp.mailfrom=duagon.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=duagon.com; Received-SPF: Pass (protection.outlook.com: domain of duagon.com designates 40.93.86.3 as permitted sender) receiver=protection.outlook.com; client-ip=40.93.86.3; helo=GVAP278CU002.outbound.protection.outlook.com; pr=C Received: from hz-deliver02.de.seppmail.cloud (162.55.72.218) by AMS1EPF00000049.mail.protection.outlook.com (10.167.16.133) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.18 via Frontend Transport; Mon, 27 Apr 2026 13:46:43 +0000 Received: from hz-glue02.de.seppmail.cloud (unknown [10.11.0.31]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hz-deliver02.de.seppmail.cloud (Postfix) with ESMTPS id 4g44c33xy1z115L; Mon, 27 Apr 2026 15:46:43 +0200 (CEST) Received: from hz-glue02.de.seppmail.cloud (unknown [172.18.0.4]) by hz-glue02.de.seppmail.cloud (Postfix) with ESMTP id 4g44c33kryz1xJF; Mon, 27 Apr 2026 15:46:43 +0200 (CEST) X-SEPP-Suspect: ce46bfebf1e948eb895456e8cd9567e9 Received: from hz-scan04.de.seppmail.cloud (unknown [10.11.0.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by hz-glue06.de.seppmail.cloud (Postfix) with ESMTPS id 4g44c33BkVz1wNc; Mon, 27 Apr 2026 15:46:43 +0200 (CEST) Received: from hz-scan04 (localhost [127.0.0.1]) by hz-scan04.de.seppmail.cloud (Postfix) with SMTP id 4g44c32kkBz6qlf; Mon, 27 Apr 2026 15:46:43 +0200 (CEST) Received: from hz-m365gate02.de.seppmail.cloud (unknown [10.11.0.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hz-scan04.de.seppmail.cloud (Postfix) with ESMTPS; Mon, 27 Apr 2026 15:46:42 +0200 (CEST) Received: from GVAP278CU002.outbound.protection.outlook.com (mail-switzerlandwestazlp17010003.outbound.protection.outlook.com [40.93.86.3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.protection.outlook.com", Issuer "DigiCert Cloud Services CA-1" (not verified)) by hz-m365gate02.de.seppmail.cloud (Postfix) with ESMTPS id 4g44c20mJ4z2xDk; Mon, 27 Apr 2026 15:46:42 +0200 (CEST) Received: from ZR0P278MB0523.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:34::6) by ZR0P278MB0847.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:4e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Mon, 27 Apr 2026 13:46:39 +0000 Received: from ZR0P278MB0523.CHEP278.PROD.OUTLOOK.COM ([fe80::30b2:3be9:48ab:c354]) by ZR0P278MB0523.CHEP278.PROD.OUTLOOK.COM ([fe80::30b2:3be9:48ab:c354%6]) with mapi id 15.20.9846.025; Mon, 27 Apr 2026 13:46:38 +0000 From: Jose Javier Rodriguez Barbarin To: morbidrsa@gmail.com Cc: linux-kernel@vger.kernel.org, Jose Javier Rodriguez Barbarin , Filip Jensen Subject: [PATCH] mcb: fix KASAN bug slab-use-after-free while removing mcb-pci Date: Mon, 27 Apr 2026 15:46:08 +0200 Message-ID: <20260427134608.37474-1-dev-josejavier.rodriguez@duagon.com> X-Mailer: git-send-email 2.53.0 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MR1P264CA0109.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:50::20) To ZR0P278MB0523.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:34::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: ZR0P278MB0523:EE_|ZR0P278MB0847:EE_|AMS1EPF00000049:EE_|GV0P278MB1539:EE_ X-MS-Office365-Filtering-Correlation-Id: db5aa76d-0ca9-4b63-def8-08dea4636b1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|366016|1800799024|376014|52116014|56012099003|18002099003|38350700014; X-Microsoft-Antispam-Message-Info-Original: YDNY0J7fVnpj+c4Iv7NcNxW7yi7JRlupPNlO7iveyd5NSCO1osKXAY6T674om7MPsWB5Vm6QayXfPPNOMdwsx87qLtG2bLRGNgees66yfEsTEJ4GZiF1bOdz7fF3/jPIK1lYPXm3tljflVDcIcyKx0EQF2NkSHQf0KgVc34vYuI++6i1xp0i/bVO3g6xpZwjqF8GdCr53oC0DzTu9daRP/n3aFLuXz6nQhJ4XCgQ/qN9qneOCrlvd7gHPDNJfbetwSp/Iep3+VXtdNGcYxKkhvhavlGNbRDsSjokLOCbfHM7n8hanPxE3acz19XrZcvfyUAKifBKPxbdIXqGANk86+a6MT0UFPytSVtRhXDOeZ0HRvmzu/k0OdjWjcS26+SDieL5pJE8G9Do6l/zTRoiGbPq9z8n3g4Dj0B83t5WL1MLf5LZ6NAUG0oLOwUyhLbYWCwA92SGw0K9ZYVHqnKNJrZWdLxevi0Lmogmqam0UlxMzgsM4wDmXLZDXV+bMAO/cVTKIGfuvFXidTkaBy6/VHMdq3fvF/38IGg+m7xH8wDi1Mc/Nabq2ldu19IoVDeP44PmeuQyZMrBV0il5n07rNLcytnYcKNSMeseVkCc+yV7bIBz0hTVDcauUFKINDGaJcn/xAhm+EI47qe1br/b8Lc7N/ZCo1q9uFqMLj3IlF1VUubctg+nArZMZ94eqQp/nlKx8UmbaQF70h0hEr8Jwj+KNUUOH8Y4zreALB5+yjRL882C4c3G7EMrCwYvyRQyEX9FKgvBBc5tjcrfWzG9RqSZMXnAGAaAXECmDV8hnpk= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZR0P278MB0523.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(52116014)(56012099003)(18002099003)(38350700014);DIR:OUT;SFP:1102; X-Exchange-RoutingPolicyChecked: ef0EpgMYDfBy+dJAaM+LVPxPN7+7RJikh70hB2dkFoFX0MwkWWm2ne5dFKqbEaNsxXbbtathuQcua9jxkVpCdYs54lLwrq70yIggjpEuAXgXbJtUn7J0FYlQ6c5t97I9YrAATNvExfZUciBLxl+K24bPQXy+HkGekdIrbVB0nOBrRiPlCDSA1uv+/hCeckklo1KUDsa46JSIFs9vdLkDDaGJ1P6D0jeyhnlcuLRMGgxC64pJqTkbTujVhTvWAGliZ4nZ8Bro2ntWY8pqnEs/8tsmv3UgBwCVonASMrlEXosLUm4hoiiS8c9lHfiBa2TPNe0Cg8rl6t2SdqaAgUk4TA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR0P278MB0847 X-SEPP-CCCVersion: 2026-03-30T09:40:10+02:00 639c564b X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[40.93.86.3];domain=GVAP278CU002.outbound.protection.outlook.com X-MS-Exchange-ExternalOriginalInternetSender: ip=[40.93.86.3];domain=GVAP278CU002.outbound.protection.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000049.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 20365c67-f1b5-4aab-0210-08dea46367aa X-SM-ruleversion: 2.1.0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|14060799003|35042699022|156008|376014|36860700016|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?j0+XsF4WnUyqfbtmnzFQ5eHpQNYYE1sggfBn0VUC09au2/FPNLbgTQC7jFE8?= =?us-ascii?Q?f6jWq0+NWNXj3iG2KWsXXBWT2dSx4HJyLDY307y/40sGWkmtu12FlqJwIzbs?= =?us-ascii?Q?76dBklRl6jiIHz5Q3jjeBxSTfdI3BXeTWA/iZ/yH3Upe0yN8X+QGC08071vM?= =?us-ascii?Q?viXRZVzc/cVhxoCiw3qPY2qXP5E1Z7B/FzJvEjUmB4958KQ43Rbl6t9QZ80i?= =?us-ascii?Q?DWU4y5yZaN5GuxgSaGcC7d4DuAU7Bi9Eijzx4uvu5ASnCozoEUOuRm2NDcI8?= =?us-ascii?Q?F26v12pKxalsWwFX1zmDIxTuoiy604zPQePlHB2U+Fnqsa8tubID752YwFgA?= =?us-ascii?Q?n3916AQGbMvf4XLnIXAogW2bUbvzMlq7g1Pfr2h1jryfXLZmO+hhJrNjUndX?= =?us-ascii?Q?hxdTlRTyY71F9c4k3BdPNKcnnJvgT2FZU6tP7XjvwpVI6Dz6qsIdwIuaWpcU?= =?us-ascii?Q?xyFL2nSXjbuKj3ZBleFwhlC5Nqumh1JJ78BH4xPx6VEfn86LbyCZXwa2z0rE?= =?us-ascii?Q?J25TzX5cLe3SyxUpbRo6L0/sBnRlZYCFNZfv98ZBgTHh3ETUzUR9UyNmgfyY?= =?us-ascii?Q?4j9VFCyVXINIxOvzpP09we5KT/mAsWV0J6wMnGH8J5mVJnaOiIJ452ByvcsD?= =?us-ascii?Q?icry6ravjAjjzpeDMFJBpRLpVE8t4f7GdVd124AoBTi4sGIGtz1v+tGpFORe?= =?us-ascii?Q?zqEeT/5OHsCpIU+f/Rsy+M+Y0baKh45ctehNUazsDUqhUDkEXftvuRFARrhp?= =?us-ascii?Q?PNAlZmmN+E8KjOo+LKkF9Qt5lNKkAgUgUwP200EDQjF/rY0xUorfImvwmUIX?= =?us-ascii?Q?czxkCKey7bmUmxgikzUKXgYQbjMBA8MH5gIuhsuQOl87hABth3iNf0sQ1yDD?= =?us-ascii?Q?01gpsvuys7UIXOfFkTC/zOZTCoxtfp44fpxsQ0nphv2xIr0lLnqoSSPo/NkA?= =?us-ascii?Q?2p9oETE3FqyB9nWlLRBV4UL6fW4OZYfIk2h4KqyzaVncnZvcVyyHKql4Xcd6?= =?us-ascii?Q?/p+Rq/WcKniznCtPgUNim6QoyZGJuuxPI4PSBDQ2JkQEynpC7AK8JdzMqR1/?= =?us-ascii?Q?vwoohwdsGWKVBP7USfXuLI1w2AGpf7Nw7j2eozZrYDsm4X5QYp0LEDqYfVsV?= =?us-ascii?Q?yuXkcRGGvAib1cwBVSh1EqiN3evtkdE00E5R++DhkLGjdh+1aWt0Lzk4U1h9?= =?us-ascii?Q?E5aLTCboFPwxIH+rT5fpjmvofWlIxKilMjzzn7TL5LwtIszVgHXbJVOLTuY?= =?us-ascii?Q?=3D?= X-Forefront-Antispam-Report: CIP:162.55.72.218;CTRY:CH;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVAP278CU002.outbound.protection.outlook.com;PTR:mail-switzerlandwestazlp17010003.outbound.protection.outlook.com;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(14060799003)(35042699022)(156008)(376014)(36860700016)(18002099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XuB1Roqi7vIF65Wt6M209SGXB2uDH0IGve61uNUobVMqjQ95Pl+o63fAJHgzsVfEkVLPr4ZdANXdFmd9DK/5BlCN/UBr74xN+5Or10ksUSrBt6la+aCufsYwMvSEHdX8Xjzz4mgHcYdoqj/Pd2LZC1zDeF/nIklBSm1+QUXGnKe8c9rDupCtBAfuWZbzz7T68IETwDiTpQaMBCiYaxnkWgqqCvkju99YfxqXxTGMYrM08/+Ljb1bfNsPeklZUkmd4T+vTYkUubzF5xQqcBq4GvX4A6bAgt5EKCYamG8uF8w1WVjulpddvV+Lz31dkstimPZyzzVM3bVqo7d8qTBDHPgSu1/IJu3d1+h2ahDGeTeA30eV85POL738YqUqk0WBXV5P38fjk/SA9Hm0ycvOuNqtOBH6ujTgaEkA0WzkggNf03ICbcAqFZLMy1yVWelu X-OriginatorOrg: duagon.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2026 13:46:43.8424 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: db5aa76d-0ca9-4b63-def8-08dea4636b1f X-MS-Exchange-CrossTenant-Id: e5e7e96e-8a28-45d6-9093-a40dd5b51a57 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=e5e7e96e-8a28-45d6-9093-a40dd5b51a57;Ip=[162.55.72.218];Helo=[hz-deliver02.de.seppmail.cloud] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF00000049.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV0P278MB1539 Content-Type: text/plain; charset="utf-8" Fix KASAN bug reported when removing mcb-pci module. slab-use-after-free in mcb_release_bus drivers/mcb/mcb-core.c:73 Read of size 8 at addr ffff888101e52060 by task modprobe/4993 mcb_release_bus+0x3e/0x40 drivers/mcb/mcb-core.c:73 mcb_pci_remove+0x4e/0x70 [mcb_pci] pci_device_remove+0xaa/0x1d0 drivers/pci/pci-driver.c:503 ... The bug is caused by an incorrect usage of bus_for_each_dev(), thus if there are more than one pci mcb board, __mcb_bus_add_devices() adds all bus devices recursively, so for mcb:0 it adds its devices and for mcb:1 it adds the devices of mcb:0 and mcb:1. The same behaviour is observed on __mcb_devices_unregister(). So when unregistering process happens, for mcb:1, all devices are unregisted, even the devices of mcb:0 so when mcb:0 tries to unregister its devices, slab-use-after-free happens. To fix that, just register/unregister the devices on the correct bus. Additonally, with this change, mcb_bus have to be explicitly unregistered. Reviewed-by: Filip Jensen Signed-off-by: Jose Javier Rodriguez Barbarin --- drivers/mcb/mcb-core.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/mcb/mcb-core.c b/drivers/mcb/mcb-core.c index e6e7c11bac6c..13c30db803b2 100644 --- a/drivers/mcb/mcb-core.c +++ b/drivers/mcb/mcb-core.c @@ -308,13 +308,21 @@ EXPORT_SYMBOL_NS_GPL(mcb_alloc_bus, "MCB"); =20 static int __mcb_devices_unregister(struct device *dev, void *data) { + struct mcb_device *mdev =3D to_mcb_device(dev); + int bus_nr =3D *(int *)data; + + if (mdev->bus->bus_nr !=3D bus_nr) + return 0; + device_unregister(dev); return 0; } =20 static void mcb_devices_unregister(struct mcb_bus *bus) { - bus_for_each_dev(bus->dev.bus, NULL, NULL, __mcb_devices_unregister); + int bus_nr =3D bus->bus_nr; + + bus_for_each_dev(bus->dev.bus, NULL, &bus_nr, __mcb_devices_unregister); } /** * mcb_release_bus() - Free a @mcb_bus @@ -325,6 +333,7 @@ static void mcb_devices_unregister(struct mcb_bus *bus) void mcb_release_bus(struct mcb_bus *bus) { mcb_devices_unregister(bus); + device_unregister(&bus->dev); } EXPORT_SYMBOL_NS_GPL(mcb_release_bus, "MCB"); =20 @@ -390,8 +399,13 @@ EXPORT_SYMBOL_NS_GPL(mcb_free_dev, "MCB"); =20 static int __mcb_bus_add_devices(struct device *dev, void *data) { + struct mcb_device *mdev =3D to_mcb_device(dev); + int bus_nr =3D *(int *)data; int retval; =20 + if (mdev->bus->bus_nr !=3D bus_nr) + return 0; + retval =3D device_attach(dev); if (retval < 0) { dev_err(dev, "Error adding device (%d)\n", retval); @@ -409,7 +423,9 @@ static int __mcb_bus_add_devices(struct device *dev, vo= id *data) */ void mcb_bus_add_devices(const struct mcb_bus *bus) { - bus_for_each_dev(bus->dev.bus, NULL, NULL, __mcb_bus_add_devices); + int bus_nr =3D bus->bus_nr; + + bus_for_each_dev(bus->dev.bus, NULL, &bus_nr, __mcb_bus_add_devices); } EXPORT_SYMBOL_NS_GPL(mcb_bus_add_devices, "MCB"); =20 --=20 2.53.0