From nobody Mon Apr 6 14:11:58 2026 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 BEEFBECAAA1 for ; Tue, 6 Sep 2022 14:45:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234075AbiIFOpS (ORCPT ); Tue, 6 Sep 2022 10:45:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41066 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233551AbiIFOou (ORCPT ); Tue, 6 Sep 2022 10:44:50 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 50BAE55B2 for ; Tue, 6 Sep 2022 07:04:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662473069; x=1694009069; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=XPnExotcUv23Qjv9TfC7epqAhRejORbaVej69uQ1Tlk=; b=UbFPoo5zPr8NKk2T3fd9MOBzaUFvOuoZ8drqFsUH7pMK4V5S16wmoSEs P6mjr68fHW4d8MlgxSffR34uUkR64rUn0j7saH2LOxKYC2P7RWtbF45Ao j3vFwMJy3uOuGoZJ2of9jaC6Uq+8+ErLO2ZLQ/wwVSeVf54CTtGfEdpDW GzhZ6uVYAO8uQKmcXR+VJ9FyiWnqM8xEfsUTIiq9w2rtFlAIWdOByKS6K yEL73SIqChT046zezKpZD7JB4JwD2/Birr8d6dWmdw2DyX5cVKqwH14nD chLelX7c0dAftO+3lmMz+822OL9TW3uoU3iVFbruqS1SyzReifagcTjjA A==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="296600143" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="296600143" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 07:02:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="565102150" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 06 Sep 2022 07:02:00 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:00 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:01:59 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 6 Sep 2022 07:01:59 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 6 Sep 2022 07:01:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fVRDZEe0jgg3XqOBHo6RJEItlmVBgOrra0m+KJ9cUKrODD1KpdzpDHk+dGtfKCoZKZI7Bg6oKlW1ooX0ctMnIBnicsx4Gyjq3xvuCwvq+DT6g8IxQGcKDq9O5h7B9fVJwSn0TPCdFNdrvWAVSCAs3wwClsaTBN3G6OgT+eqepaUoQp4IWOZoUjlOr/mgOxbPGjJvCCMb9WkET4tsWcPMnya81xNbGZdELZLaLrkH0dkf8UlpXmR5bKhcKBaeM3c1fw7GXgz5csB6TyW/PxcgKRfiOtDwSKpbxyXizM1hr7Ywglp4tM6e9Sw0jjmqUYdmmBO+tTqT0JNHuY2vHxDKbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2pMg5E5jFzj3KtV8JUOOv7nChVtQDlBkI0eK1JX+5tY=; b=NAEhvsHZ4+Dw2n8J6dX+kjCRo2ZSMMME+KtdoISt99MyyyaP0+lxrI1gMhhuqYtMcHEpH1Ny/MHXCVOGySTLWrgb+m2yIXp9srJoDbSsfzDu7x7Hy3Cx9RzPJNcQLeT3pexy/pHIG322h471iPuQ4pqHc86pj5pwg1XKxnfRjyufoiDmBiigHvLjl2BN+XsqwEBJoCcmh97z4D5s8rv1LR67f44RjHEbwuzkIWPE1NGPsAoleTCJHHAk/VxCsfTgEp4HLGu+gClmF6zuhLkEaigJINqu158c0+FhMjcmzpnHmx+Pw0RHQNjhXnpsJ2qpoTDZfWuJLrSa/yQQ4pGZqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by BN7PR11MB2804.namprd11.prod.outlook.com (2603:10b6:406:ac::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.12; Tue, 6 Sep 2022 14:01:52 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e%9]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 14:01:52 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , CC: David Airlie , Daniel Vetter , "Maarten Lankhorst" , Maxime Ripard , Thomas Zimmermann , Simon Ser , Matthew Wilcox , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v3 1/4] drm: Expand max DRM device number to full MINORBITS Date: Tue, 6 Sep 2022 16:01:14 +0200 Message-ID: <20220906140117.409852-2-michal.winiarski@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220906140117.409852-1-michal.winiarski@intel.com> References: <20220906140117.409852-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0020.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::21) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 422db91c-3acb-4ce1-f6aa-08da901059be X-MS-TrafficTypeDiagnostic: BN7PR11MB2804:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ijp6rj9xduN8Q6wRj/ESes6t5Y+aFyZHTlamW0UpmFQmvw+Ez8W0h7IbQYICYdLHugDNRqJ+DfNEmB9bXVB1t3O8nnF/YApMnS8nJhP7Rbf5b8A3RjY/Iv6EaoVrVM1h2ta6IBCJkgHEJbz9tSeVqbHBFnmqzMk8ZAkcp9rDsoH6BUGlvBhuklGEURxDj7iKE7KMIu+8mOhO21kMl54c1MAcl4dqNJeQus7ucyhHO7pU9yi3ao6fsW1rIgF0a4nZwLhZGrKH3eubPHWXlpJtjhFlLQNc0JGinNZn3wH3oMiBIz2eJx09xH2K6GXb3q3AlJ5TngGNduY4qbMwSGCZEJOOHwMWk+OzxiJQyr6cmGZ1s+6Rxbpp0LOzWgN1rvQyMF5++CND4NzwJoY8nc2k2abM6rmgfFyrv7kMJL8eRyW4lTwPrxXXuYJn/FUCDJiwVQmysrt96SHU33teRf7wHAcQwQC2iAF3lYFzAMfoDN0950i40pIN1Np1lY9Q7Hk57KNx1df3DjHmOEfjrhiaEL9XZIvzNc4zMnYyr1MUqqHnKoLniOkFkqsyrGKDLtrG2W8zcf/EUJh/JHTUsBx7o9bFsxQ6zzW1bOwDIPVntAFRVgtEtoCwCUztgfHFVWzeJOO6URhc0jBzefjr1u8zAoSLd7a0mxdeY4ofiipfpawkDW7LaWY9oqPA44AT+82slIptEG6u5CmmJtTRLI0j4Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(39860400002)(376002)(346002)(366004)(136003)(8676002)(6486002)(66476007)(83380400001)(66946007)(66556008)(4326008)(478600001)(6506007)(6666004)(26005)(2906002)(6512007)(5660300002)(8936002)(186003)(1076003)(86362001)(2616005)(41300700001)(36756003)(316002)(82960400001)(38100700002)(54906003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YzFTVDVSbFVqS2tBeGxDeWJsMjJuYTc2L3dQSTZSRFloMDRaYmxpNmNwdTc1?= =?utf-8?B?dnVqMUFpSm5VMDhMSTZ1Q2ZWM3d2V29XS0lmVThKNnRRN3MwbUJ3R1VWVlli?= =?utf-8?B?MUx2RytyVXNxMy9rWlYrWTZBOUlMTDN4UmQ2SmFEWEJKT0xLd1RDdFl1UEN4?= =?utf-8?B?MHRZVEppWnIzbWF3UjdMTTRyN0lSVmk0ZTRoUDEyb2tob0ZOL1BCekJOSFJV?= =?utf-8?B?NHhhU29hSzU1THR0RVR5OGNpeGlOZXJYZEl2SEVEVTRIK01RUzRwa0tIc3lI?= =?utf-8?B?TE9KaGRNeHpidWc1ZVM2WE9RcGFkdTJlc1hzeXVsZ3lMVi9hditrald5VCth?= =?utf-8?B?QzJsWFdzRHc2bzdBbEJ6RVVaZVRIb3ZwNUxTR1lVT3liNUFoQ0Z4YlBBNXFE?= =?utf-8?B?eXp2aGwrUUNQb2dXN0ZmU0k5R3pnZnhoTjBFOFRGcGxKT3pzUTNYZ2FVQm1h?= =?utf-8?B?OGhRNkkzcys2ZlAwTURYalFTK2E4U2MvYnU1QWhFSDliZ1crZHhwTG9yMkgz?= =?utf-8?B?dDZESTFoSTdZWUZiU2RObVQxcnhKdnJLeEpTZjdYeFBvUzU0aXF1U1VXWUNU?= =?utf-8?B?c0U5ckRFSXNtMnRaSFFLbTlwUEJVMkd3TUhxbFc1MDA4L0VHN3RzRkgrbmJr?= =?utf-8?B?VEQ4WXJURGJzQTVtQUZWbDR1TW93cmozU29MQWJEMXBmZ1FkVkxWNWE3ZzNm?= =?utf-8?B?czJ3cWlTY0NEeVdSaWc4WDdTc2dxL0hrWW5wdU9iYjhTQm1ZdnpJMWM4QUtm?= =?utf-8?B?d0dxMnN0Q0lGTGxxZytHZGIzc1MzYzcrUjhXbVo2VkprRVJ3ekY1RmZucWh0?= =?utf-8?B?aTdqdWU0YnhQQVNYZ2FlL0xRdnhPajhYaWhYbjlUNEFzRHVnblZrVFVYa2VS?= =?utf-8?B?M1JDNE1Kai94QVJlV1VQajZBQXNEd3lVVVR6eitaMWRKdW5VSWVNWDZpdnds?= =?utf-8?B?OUpCWkVQQ01XK3NlWENESjgzakgyZ3gxU3ZjRlZkN1lNWGs0bDV4TVpIK3Yw?= =?utf-8?B?RkVPMFI4QXAzSm1NNHNKWHZCRU91RUdOVFoxQ0YzYnNrRnFZbGkwcjM4NEto?= =?utf-8?B?S3ZlU0duRTBCNzVsUEJhR1M3TDl6YkM2U0pDd3htTXNxR3BEQXFRT3I1UkJR?= =?utf-8?B?OVNITDhFd3pVa0JmYWJVNnJGVTlQaXRJSGZ2dE9JdTFNMWJoVy80R2hleFAz?= =?utf-8?B?TTlGVktGQmNlY1poeDA0N0p2cWEwUzVJL01mWkZKbHBadlBaQlU4SXZVNzhs?= =?utf-8?B?cjZZTDVHblZ5UnNQaVBWRkRQNC9USHpVZnRMNlpRZ3J6by9vNkRvODRkb2xD?= =?utf-8?B?TUVrMW0zSytXYXN6Wkh4T2xqdGEvM3hzVUR3T3ZxaFE2ajFPeUJoMFJWakVj?= =?utf-8?B?VnhjMEZqMnlSeWZqVjZ0ZEVMTmJPUERVUHBQNGRlYjZLOC9OY1JGK0Zla2tT?= =?utf-8?B?TFB1RW5UeUh1NVVZai9ic2E0S2VwbUduN0orRWZoOHhsTzFRdzhXREorQjhu?= =?utf-8?B?aDlOcGx6b0dGSjFCZnljcFRjamZBYlFSZGh1NlFVT2ZRLzhSdEFtWjJDWTQv?= =?utf-8?B?S1lHbUtpRkszSERhWlhMb05hcFJUSTN0Vkk5ajQ2d01kUXplSnY2M0R0Smlh?= =?utf-8?B?ZE13bjhVdjB0anBHZ3RrQTVFbVdwcExUMnJNa3g2Sm0wREsxMGF5S1U5SlM5?= =?utf-8?B?RDQvMG1qV01ndVgwTFR2a1htbUlZUytvSVBOZFcvaUluTi9Uallob2lKOGZn?= =?utf-8?B?UDZSRTJlenQvNFl1Nmo1ZG9GRmtHSndjS21oejJvRjFNc0dhY1E0VEFuMllx?= =?utf-8?B?NU1tSUhCbGtSVE4xcXp5ZE5QZ1VHenV5Z1kzNlJiZlJaQldZdHJiSFZxSVQr?= =?utf-8?B?Zm9PeUdoMlZQM28rVURxbThZUzRxMU93VDZEMHIzZ1F1eE12Zkh0cVNaUGFN?= =?utf-8?B?Y1poS1RDSGZmalE1SkZEeUI4Y3RQK0YyVXY1a0NCZG5WVE16WTE1K0g1Vmov?= =?utf-8?B?RXBkeGUrbHUrUUtSZTZReFBKYUVSN1dCWVJDVG5pR3FqYWkvaVd5Sm1vVWZr?= =?utf-8?B?dUFCK25oM2IvNGsreWhPd3ZEbVUrQ3lTT0MyRFFENm1aRUVsS2M5cjJVQ1Vs?= =?utf-8?B?UnF0cVFaazN3NlIvOXE3eWpYU1grSXlKYlJNTzhKdE43VktLeCtHN3RZSHJB?= =?utf-8?B?b2c9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 422db91c-3acb-4ce1-f6aa-08da901059be X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2022 14:01:52.7002 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Wl6KVK08Ph4uwT352Ob+KiaJs33PlK1GCFeqklP0oV03MWwPcZ6xlk946uPqY3NyYVtSixh7dEk3hKvncyJ/oFZ7gVczuu2VtcF8QuZQgCs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2804 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Having a limit of 64 DRM devices is not good enough for modern world where we have multi-GPU servers, SR-IOV virtual functions and virtual devices used for testing. Let's utilize full minor range for DRM devices. To avoid regressing the existing userspace, we're still maintaining the numbering scheme where 0-63 is used for primary, 64-127 is reserved (formerly for control) and 128-191 is used for render. For minors >=3D 192, we're allocating minors dynamically on a first-come, first-served basis. Signed-off-by: Micha=C5=82 Winiarski --- drivers/gpu/drm/drm_drv.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 8214a0b1ab7f..9432b1619602 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -122,6 +122,12 @@ static int drm_minor_alloc(struct drm_device *dev, uns= igned int type) minor->type =3D type; minor->dev =3D dev; =20 + /* + * DRM used to support 64 devices, for backwards compatibility we need to= maintain the + * minor allocation scheme where minors 0-63 are primary nodes, 64-127 ar= e control nodes, + * and 128-191 are render nodes. + * After reaching the limit, we're allocating minors dynamically - first-= come, first-serve. + */ idr_preload(GFP_KERNEL); spin_lock_irqsave(&drm_minor_lock, flags); r =3D idr_alloc(&drm_minors_idr, @@ -129,6 +135,8 @@ static int drm_minor_alloc(struct drm_device *dev, unsi= gned int type) 64 * type, 64 * (type + 1), GFP_NOWAIT); + if (r =3D=3D -ENOSPC) + r =3D idr_alloc(&drm_minors_idr, NULL, 192, 1 << MINORBITS, GFP_NOWAIT); spin_unlock_irqrestore(&drm_minor_lock, flags); idr_preload_end(); =20 --=20 2.37.3 From nobody Mon Apr 6 14:11:58 2026 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 EF1CAECAAA1 for ; Tue, 6 Sep 2022 14:45:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242238AbiIFOpZ (ORCPT ); Tue, 6 Sep 2022 10:45:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233409AbiIFOov (ORCPT ); Tue, 6 Sep 2022 10:44:51 -0400 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B8D7DE98 for ; Tue, 6 Sep 2022 07:04:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662473075; x=1694009075; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=psUf+ThGOXymqI1/AsEMN8AgIksVidwn0U3Nks4tEJc=; b=J3LnfR/m4VutsS5NGz23yO55JqnAoHb4DN0Vc297sE77AqJdjK8kMVrT 6VdEpOLUZSjE6/9Kv7DLlZkcQiv34GIA25bU3/1awLrUC3PpVDQhcuNnA Sl4HIpI7MFFHINrAOHyy7a7BIIu70mQNXc2DRQ4YhFYLzP2liwBe3j4iq NYnSkBxXGDpIum4shK8CCd7XxPEmOCDmk4nU1nu4beLOLehgGkB2OnJD3 aD4QjYNono1kQAwZhbp6pfPOqpKTCTZNbD35pHI2O4yOkZzOj3aural7E 9P8QkMEOAPF4dTaYhcW7KgGoZzzsx/uBGombvLWI6IQJkg+0b4ohlUqwr Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="296600309" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="296600309" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 07:02:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="647238386" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga001.jf.intel.com with ESMTP; 06 Sep 2022 07:02:31 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:30 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:09 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 6 Sep 2022 07:02:09 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:00 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RJPWRTSvdj4NkSJZyqsONPoG2N3i4j+mN701An3PceOt0VcgNM/NDfRJ4Snp+XcQBVD/MKp+v9ixNg9thU3v4O42m/cHNS9PSb4AEEiUbiNKEklrZjBVHlwetLKDIb1DYGImSzSshyb0zO6KLUj1TVkFbD/lkhl34ENbS38+Rj38LTJ4BrykzO6JfbsUEe/eRcCDtG/dxLh4KSAwseril1pRaItsvvCiAoPjAn5opbCrbktL4o13HMtp4Df+Y6ZmBLOjSEwlikIyane5SCKYrGFLOJyP1SVjR0f+xNjWTSDaYlQADp2pXzfTB3/iMK08+JfrS65ePq1mmRtzkYZaYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=jeLDTqdI5/oFSGwFAeyojvyf/Ks/ONn12bXtmr825A0=; b=PwMn9beGmzicW7FW6RnlqYULCqYD/uADIvxF40uRF1sbMUJjVp1alGIPf6SdfFYFpYc4uEmcyOFzcFj+aSFwVAG22RDSsnLckMge5JhA0cH0kIsoWW4ZyvF0ChvJteckjBm7Z3U/cemTUs2+ZjocmL7EO/62FUzXNuUVnv9io3YKmLCAabtLf9cmOzniiU5DsO3xWx7jcm0TPdu3iRT/mdLScFJ2b+ti8G+vuHk3CNLDF2eWMlmEOGEuwcQW08/zO6AR5botNaHyk1O3/ohTUwh6LGwXLLMN3u9y9RwkdKHBMIayRrPbNEbI+cYEMwBsbqax2UGjhAji51KXB0dMYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by BN7PR11MB2804.namprd11.prod.outlook.com (2603:10b6:406:ac::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.12; Tue, 6 Sep 2022 14:01:57 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e%9]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 14:01:57 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , CC: David Airlie , Daniel Vetter , "Maarten Lankhorst" , Maxime Ripard , Thomas Zimmermann , Simon Ser , Matthew Wilcox , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v3 2/4] drm: Introduce skip_legacy_minors modparam Date: Tue, 6 Sep 2022 16:01:15 +0200 Message-ID: <20220906140117.409852-3-michal.winiarski@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220906140117.409852-1-michal.winiarski@intel.com> References: <20220906140117.409852-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0061.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::9) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e2084f58-b029-4d6c-7988-08da90105c96 X-MS-TrafficTypeDiagnostic: BN7PR11MB2804:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /WkEhu68+WocDBBdgjd5JeWm072A6Ax0IRlp3c4OtbQxY4/M4FUj47YhpzVXH4L30DwwDuecAGh7FKqH9TQ5WWf02HY/mIiX6EaL1sntXTeNZVHICPiQVIz+NTPDbh6OmrFEGhjwzlnrClcCUY8kob3lThouHVo+ijpL9dnUzIG6o3hr1PZwrWMn2wzH7ksiCQ7JynFJ9lNbMQ9HRLlsV67wkKrQdRPYOkpjuwAo+o1BJJVtPpVuhahvDDueBRxd+cjwkCorNV7QfK5maeppwrYXuquRSJf176Vkv93vLUj67EdBkAa8ie8qaEyKrPJUg+SFYSGIVZjkOdyDSGC9cZjM/jn2OYW02Seb9eeYfZ1qe8eWGj31Tum1v95PyVehFySiyI1XMB9JF2kGOZgQpaeBqO7RR5A3Xe65EM+blL1yBlVyiu4fCae4d9Ailtg/awRV24EyyfAiqrujC3P6c+xGTXfQgJV+H7aq7SIxhr3wAgH6K12QTods7pxEuyfcpIiXDCSQtwYEWHfEROmvv6lEEtV3Cp3ZN22ZYEpnoyK8TJKazBYIMjc1s5UTmr/l15roequhDeJNinyai1G0nsZoA+NPXWShV9FECdRnsa48ukoa8DQHelEAVqDHoCrVoQ1wbUhxMVj/2gcFxTUq3ZpxF1HY6gKyXTfSe11tXXOVVEzdVn9/puhrElrE/+WkCd7ffht2g+kYbnRUjNgejg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(39860400002)(376002)(346002)(366004)(136003)(8676002)(6486002)(66476007)(83380400001)(66946007)(66556008)(4326008)(478600001)(6506007)(6666004)(26005)(2906002)(6512007)(5660300002)(8936002)(186003)(1076003)(86362001)(2616005)(41300700001)(36756003)(316002)(82960400001)(38100700002)(54906003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bDBSVnBVTWVVSXVqMEdvV2ZRU3A1ZUJGUFFJKzNxdmN3SzZtcUZYaUV5cXZq?= =?utf-8?B?Uk9qaW9jbmMyZHZtRGJ3NmU5L0xLVW4wTVNVSjFLMk12VFRlL1FvaW5qbW52?= =?utf-8?B?TnU3dlVBQ1JqRFl5YVhNTmJWUkRWZWNEdlBKSXJDTGVVa1FIVmZ5T0NXLzNl?= =?utf-8?B?UEhRMlc0WXFYOER6dGRUbm9MYmI4NngvV2I4dUVzUWhTY295cFVRNFQ1VTB6?= =?utf-8?B?dnlvc1V1dE1DUjgyNzRFZFNoYllCRmppUCtXc2pJTjhIRGNqd1V2bTQ4aHBZ?= =?utf-8?B?SGw2clVtNXh3bTZFK2JoQVdNeExiS2YxVnFCSS9JOUtCdENZWTBTaUZxV1Bt?= =?utf-8?B?S1hHMDdZOVFRWGVYaHo3ZXhlSmMzR3VxcG1mbFkzd0xjOGxDY3duZVAvRHAv?= =?utf-8?B?NDJ4TWNJenVJNmFvaHJ3VHZKMWE5S2taZVJsYVlXNFl3WUVMUVBpM1oyMEFW?= =?utf-8?B?dlFCTk9mdEQ2V09YaUs4dlo0THJBcGJEWXVoZS9Wc3R0NVRveDBCNzNVVm9S?= =?utf-8?B?N0pNOXRpdEZtNXAyRWpzQ1lWb2lzVHdUQ1NVdHh1UE1oVGZUVWVac1ZvMXBT?= =?utf-8?B?SVN0eVZVVmQ3ME45ZmVWdUZvZFNVaktOT3FwYmlkcEg4eW0yYXRkYXZ5M09K?= =?utf-8?B?Q3NYOTNmNnNEcHAydXRlQmlNS2gzT0ZBUHc1a3ppV0MvWnlzZ1lFVmovODU5?= =?utf-8?B?RkxzVy82VkRXZDBTZWEwblEyUDhDUnBjTDVGZlFtSDRUWUtFQ2NKQzhjZHFU?= =?utf-8?B?MDAzMDgyNnNDR05mN1ZoanlFcVVJSlNYOTZxSkRTM0gyR2RXSUtWcUpEYVUv?= =?utf-8?B?WGtySTJtT0tIY0o3bHhkMVdiREowWmNua1hFcWVScStVbXR2S2d5Z1I5RVFn?= =?utf-8?B?ZGVLZVB0UElqS3pObHZTL0NLZmljak5NeVhFRUJyZGhjVVduKzhjbDUxNmp2?= =?utf-8?B?WnQ4NEZMZm81ZGJpT1FhOVk3djJEY2dQbDgvdXdwSE1ocWxwUGJVT3VYWGk1?= =?utf-8?B?WE5FaEVKVGZ2SmRtaHNyaWpoa2tZTE1VTlVETEVrR011WXZzRUkvdEV5b01r?= =?utf-8?B?VGkxRXNOYnVGUDRPQXQwOEJPUmcxYmd4cmtkaEdqVGUzVFZCUW85d1lPOVVE?= =?utf-8?B?WTk1OUExZkRlTFZtY3Q4NE84UlRlU0NsRjJiNDFYOWw2STRwQmFpQjd3Q1A2?= =?utf-8?B?YWhRbzZULytWenNOaDI0a2lXdVp4MUE5OFIvVGtac3NpTG1rRmNWN3ZQS0NV?= =?utf-8?B?UW9mTFVKYUx6TUlSVnhLNVlZTW1sckJ4dUNRN2tvMlpjSVJpV2hGWW5Pdy85?= =?utf-8?B?dFNZc0RBSlNiUDVSd2FoTHkrYnlnTnhQdGhJUXVkK3BicVNpZnJ4c3U4NDNv?= =?utf-8?B?M1RoMFVKQ2pobWowTDhqM3lIc2FzUlZNTklJN05MODlVNGlaZVIvUzYwSXp5?= =?utf-8?B?S3pmY2hGdWNBSC9BcjZsdHV3L1FuaDh0UXMvcVZCV0hYakRrRzcyUzVkNHk0?= =?utf-8?B?VXpweCs1SVBTUkxaYlQvSSt4ZXFhcEZ6Y1p4R3VScFVBTEhLU21VU2s0S1R1?= =?utf-8?B?L0c1RzlyR3Rtc05kLzNnN3FkK1JCODNTemk1eWtxU3ZDdVNJQnJ6YVJmcTND?= =?utf-8?B?dTc1eXpEcXB5d25JL0U3bVYrZ2tNcVVTZlBGY3k3SzJkcWhPWUxjVjZPOFZy?= =?utf-8?B?K2V3WnRlendMM2xJaTJ2TzZldm02TkJxRXVncUh4Ulp5MkJGb0t3ZzF5UXYw?= =?utf-8?B?VVdkQ3g4T2FjaW4yRFlYZ0I1d1RvOVF5czhVV2NJdHlZaXR6Z0ltd0UrMFdL?= =?utf-8?B?c1kvUm12aDRRVlFOejlKL0o0MmZ5UThic0FFTThVZW1LK1g0aGV4QkxaZnE2?= =?utf-8?B?MFpNb0tCbUY2b0pkZzRVb3V2eUZFeVJWQ01GUDhxRnkwaW1GNStnZ3NJQUdU?= =?utf-8?B?Q3RIQ1dnL25PMHZFMHNWdU5WcFJkZ1ZMekJiR3dLR281QjZZZmNoTGNQY1Jy?= =?utf-8?B?UW1XMndBdW9YMGxMNHlVT0x0RWdCRHVxVUZLQmdTV0YwalNyZG8ydnRZL3FN?= =?utf-8?B?bXJKRXgreTh1VVBrZXkxVTRtTlJLaDc1VVZnS0Q5MWxXMDhyQ2cxdTNSNzVl?= =?utf-8?B?N3VuVVNtOFNwQmV2cXhXdG5Od2VKWnQ3Wi8vMjhSZk1oVkhPNGNBUDNhZGM4?= =?utf-8?B?d1E9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: e2084f58-b029-4d6c-7988-08da90105c96 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2022 14:01:57.4681 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2rRQFCx0kJOb4EH1DTcRSoAURwpAtGrE2Ejmz9nPHBmtMa5MZ51d55+n/V3hF2QCE+U56oK89bL+x9iUn8B5bwClrM1J4Dsfwpu0UVACFw4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2804 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While there is support for >64 DRM devices on kernel side, existing userspace may still have some hardcoded assumptions and it's possible that it will require changes to be able to use more than 64 devices. Add a modparam to simplify testing and development of >64 devices support on userspace side by allocating minors from the >=3D192 range (without the need of having >64 physical devices connected). Signed-off-by: Micha=C5=82 Winiarski --- drivers/gpu/drm/drm_drv.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 9432b1619602..0bdcca0db611 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -56,6 +56,11 @@ MODULE_LICENSE("GPL and additional rights"); static DEFINE_SPINLOCK(drm_minor_lock); static struct idr drm_minors_idr; =20 +static bool skip_legacy_minors; +module_param_unsafe(skip_legacy_minors, bool, 0400); +MODULE_PARM_DESC(skip_legacy_minors, + "Don't allocate minors in 0-192 range. This can be used for testing use= rspace support for >64 drm devices (default: false)"); + /* * If the drm core fails to init for whatever reason, * we should prevent any drivers from registering with it. @@ -113,7 +118,7 @@ static int drm_minor_alloc(struct drm_device *dev, unsi= gned int type) { struct drm_minor *minor; unsigned long flags; - int r; + int r =3D -ENOSPC; =20 minor =3D drmm_kzalloc(dev, sizeof(*minor), GFP_KERNEL); if (!minor) @@ -130,11 +135,12 @@ static int drm_minor_alloc(struct drm_device *dev, un= signed int type) */ idr_preload(GFP_KERNEL); spin_lock_irqsave(&drm_minor_lock, flags); - r =3D idr_alloc(&drm_minors_idr, - NULL, - 64 * type, - 64 * (type + 1), - GFP_NOWAIT); + if (!skip_legacy_minors) + r =3D idr_alloc(&drm_minors_idr, + NULL, + 64 * type, + 64 * (type + 1), + GFP_NOWAIT); if (r =3D=3D -ENOSPC) r =3D idr_alloc(&drm_minors_idr, NULL, 192, 1 << MINORBITS, GFP_NOWAIT); spin_unlock_irqrestore(&drm_minor_lock, flags); --=20 2.37.3 From nobody Mon Apr 6 14:11:58 2026 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 630A4ECAAD5 for ; Tue, 6 Sep 2022 14:49:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238107AbiIFOtZ (ORCPT ); Tue, 6 Sep 2022 10:49:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57090 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242208AbiIFOse (ORCPT ); Tue, 6 Sep 2022 10:48:34 -0400 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C6969FA91 for ; Tue, 6 Sep 2022 07:06:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662473175; x=1694009175; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=vMIJX1UBynw7Ha4VY5WZDYe3peWRfDrobTP0piIBxFs=; b=KYCS/wt3So+JaCbIVWCxZ83M/H/khk0KqDFKAoa4wbnJoPr+JyPwt2pv ZsSZhl7SuxesFnBV9DkIZzE/c006cgorA5Q4/2rW+tBwXIbOZy6kGux0R 68cy9Hwue3X3l+NQc6DRKr65lEyaaUoDl+X8hRHEvu6mE5xECF+SX/Md0 EGYX9w8OAT64r2z391Zoui0Y0zqR2632i0gMXelYjMxb89+P6IT6ToGtp DGxkAjI0svDKfYy4txu3wD57s5Gwh6+mpF6iFSSmx7LZ3NdMrz4HtB6yi fXpGaYS58I7r2m47HBa5wdSLlYbNsT9OxEEjW3FSmjwuMlXYKHA3r2mqF w==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="297384042" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="297384042" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 07:02:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="565102655" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 06 Sep 2022 07:02:45 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:30 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:13 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 6 Sep 2022 07:02:13 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mSd4oQsxmjdRa6sNOElEfiLkhom8CqqAxqYf/x8QDreZ4pXAdS7e5KaLe65Yi5KGR/AmxF3gb6HwUDN751aNZka2UqiAvcTpF/fHNIPEdhwA5q0bdLtRjztI1k63wzPHCfzQwLLpzmGIeefDeOSa/7qOkuGk/1Fy6hgQ0gNmsrLpDUWHC9+62dPiXdBENStUquBjDYGH1tMdF6YO8RHogvAJf9Y/HXKzLiWSF08d8+PghHIVs9QYcnBRDMV/3HkeL7hrZ2Unq2MFqdCjOVywlwSIj97Ivup3QaCYfh7xEIfVs1GxoU2WC+txvpcHDfGbqzL251FWafkgk8+7d01YYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NYOAh+HRzPR1RguwnzYFDJF0KN1PjzPw3ElTv5xcPDk=; b=dezpkBcb6BRQBVluagoOSc44IJj0U4etV47OEA8lrmEpG4EQnxFEYATadz6fpjCLqLhiMWTGeBsvzRisj2UD91Fir/p5oKZ957udBFfMgSJQ0IkI+jXBi1+wCzv+j/Ln8jO7IgquKpckYe6ZZa1lRG6kVmJ74CKAdbCnGDoyGtEBrdh/6Z2e+dRDJrdWJDBXzVAsTsXLkBe/RLvtIOlR8Fkhzxf5d2uQWpZjt312X4VEipbqIjR6qtubM9eto75YGMGbWFz0YjFTE/+OMEqzKEW7oUdmg+PVpwi6rSBOK/0b7sBAtfxujitetlrsdiAUnl83mc7febrWh8Mfs655HA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by BN7PR11MB2804.namprd11.prod.outlook.com (2603:10b6:406:ac::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.12; Tue, 6 Sep 2022 14:02:02 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e%9]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 14:02:02 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , CC: David Airlie , Daniel Vetter , "Maarten Lankhorst" , Maxime Ripard , Thomas Zimmermann , Simon Ser , Matthew Wilcox , =?UTF-8?q?Micha=C5=82=20Winiarski?= , "Daniel Vetter" Subject: [PATCH v3 3/4] drm: Use mutex for minors Date: Tue, 6 Sep 2022 16:01:16 +0200 Message-ID: <20220906140117.409852-4-michal.winiarski@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220906140117.409852-1-michal.winiarski@intel.com> References: <20220906140117.409852-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS8P189CA0036.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:458::29) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bdce2cd5-bebb-4d0d-1022-08da90105f38 X-MS-TrafficTypeDiagnostic: BN7PR11MB2804:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0WDQEilDopzCmOnlKCgjno7wKw1V1M4SlsbRqZvl3N5EHuagJ1WaMPXt6R9D5hFNBT/hlOFzdQox7NpBBxrgsiFecWuu4OznHhixltU0PPTzfT6hKG/Z0PbM0esXQVi5WbJS4MAaTs+WVGRzigkJ658t2qKw9eF3La1YXYrmz8CtCgsbW4jDxIJ5POTGc3nAOnEPTFetHh8m+kQMmFyaQUE7qz80U/1OqRx7l+v8Wz3sbOrAjWHbIINOh9gBS7AJaVp4OW5fz+4QaD2LF5bKDiE7Cjmu6sKeux2R3YLmUcizNaPjOXlJntX6wJv1K0DugXj6Oq3apEnqsnlCcVftPR1hY2e5Pe3zyiwnSdjreX7iwJjcBW2iRwG6y0IaDlgJVZqCnCLYmTOY0+tEcViJuMpkCIVBhKTcHa+vCQCHtpk9YAhvPAF0X7rOoBIvu0Woaq/KibchKGKdfOWcyzFU/XnpIFJTxN2gJm1gRGvLbm/WckXIcuCiftAugZALRAwSY1KHSEcVsBnYDQWM0V+/TWNBVsaJofMrnWmOkTsQDbKbTEgt3D0eukJ09LdMVzGxxPk3TmWQsm8PdBEi8DTsAtLBsrTdk50jy9wO5czhtCOrsm+15ZMnOWTVHVw9A1zljbKBEY9eBJRJP5xokRqU9hurX4pWy1NDkUutymrrvCIsYjta6Le4p//uBBBu5f2oCr3JBiqhHtvN6CdwDYN4oQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(39860400002)(376002)(346002)(366004)(136003)(8676002)(6486002)(66476007)(83380400001)(66946007)(66556008)(4326008)(478600001)(6506007)(6666004)(26005)(2906002)(6512007)(5660300002)(8936002)(186003)(1076003)(86362001)(7416002)(2616005)(41300700001)(36756003)(316002)(82960400001)(38100700002)(54906003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?V3V4TDBjd3dEeWtOenFlQlNleG1aNmMxazJXcmpUV1hVczdGai9MTmlWc1RC?= =?utf-8?B?VC9Rdk0ySm95SlppdWhmVjJwSkJ0cG9zNWZ0RUVkS3p2TlBWL21pYWhXc3lR?= =?utf-8?B?WlZ5TEJEbStCSGJnSS9qRnozc1ZkUE9LNDB4RXd2SFh4eWo0MkdIVW9NNmVK?= =?utf-8?B?ZXZXWkx4QzM5VE5LVm5BeER0Z0R3aFNRRjZhQlhmMFQrWW1nVHUrcWwrYjZB?= =?utf-8?B?VFlpKy9Fc3M0TklhWUNqMmFUaXl5WlJMSkNzWlhvSUpHamJxb0RRU1AzelFP?= =?utf-8?B?NGJNWm9xTXdrMmM4L1VaRTB4NVFaeXhrdXd0OXZMY3AwR0dBOUIvMisvTzIx?= =?utf-8?B?R015bzRsYWxscm52N25DQThlcCtFSFNSdEdtbnRMM0RXb0xiZks4UmtLQXpy?= =?utf-8?B?cU5kYVpTdTl0U1pJQ0d2ZHdEUjd5bzU1OVlZU0Q0dWhGY3AvSUlGQjRNb244?= =?utf-8?B?OVVndGVEVWxhSFkwVUtmNDRYS0NoeXA3cU9NWjNEakdaUDdMMS9tUnhyZ3cv?= =?utf-8?B?Y1FOOC9qeFpQdjhKOUJGSE5OT0VGUjJyejlvZll1OHFaZE9oR1dkSGMrYlhZ?= =?utf-8?B?MXAvSGJFQ1NpS0RmVkZnbit2MnRpV2Q3M243R2QvNndyMnBsUkZsekd3WjRa?= =?utf-8?B?am1CWnNOUXpHM3R4V1I0ekJMTFlvVVFoYVljYjdvUjJWSGY0SWg0djFSVHBh?= =?utf-8?B?bk9FKzRzVXJyeUpUNGxKWjBuajM4QVdzMDFJVkRSYU1wMTdRT2hvZEtISThV?= =?utf-8?B?d2p1Zi9sYmp1NzI5a093amZBYU5VN2VzU1BJWFNSOHpRWHVZOGxUbVYydmNG?= =?utf-8?B?TGcrcVdmaktpWmxLYURVckdxYitxRmhNL1Z0TG5WL2RoWHpvdzFJNHQrODhL?= =?utf-8?B?RDhYQ3BKZk5sV3lTMWUyZEhnVTRFS050NWFZT2h2ZWNPRGlseWNpU2hnQmI3?= =?utf-8?B?OGR2SW5qOGFMZ3cwdGFEV3RzaVZVWDN5YS9IVndmV2laY2NoU0lDQkx3SnZ1?= =?utf-8?B?aDlmbldWcG5VSklTbVN2UmtlY1ZMYkgwSWNZaUtxUERFbFB0SCtIdnpVU010?= =?utf-8?B?RkFhSGJYSndtNWkweXZaQSt3WWlCY2JtU0V3aGJNTUwyNEhFdjhJeWlUWG1M?= =?utf-8?B?TXZYblFnWWJLZFRwQlNyRi9OdDVPeGFKbFozc3JZMFkzMjFwbFQ4U0l3RXJR?= =?utf-8?B?b3Z5dHNTOTlkelpVaXpLcHZHZkpSUVpha243L0NMcnhpZEtEekcvenhvZGtm?= =?utf-8?B?dTZJclp5a2xIbnJUWWEvUkFZVDFNMmNRZ2I5NFhCbWdaMTdRK0dsT3hYQnh5?= =?utf-8?B?TG1MOTZRdC9CT2JuWWd6WkNlVDhldTBHaXdVRVpkdjB1NFlCMCtVVkhQdUk0?= =?utf-8?B?UmI2aUFISFQ0WGpoN0JsNUFxSFcrTmFoT0FTREFXSUpwcm9pOGxRRjNhVVlX?= =?utf-8?B?a1paNnRacmFUa1pkVEhhRWlSaE9WY1RWS0lZOGk3bFRBVnR6TEFXaXhUSE1I?= =?utf-8?B?ZWdMVmI1YlE5MTRTN0pWU1RmeFMyTVJtM3ArT21zeVFqRzVLZHNrc2N4bDJB?= =?utf-8?B?YUdBRTgrNHlGaWpsQVhIQktvRitaellBZmQ3RHJoWmlWUml2YUVFZUF0MHhC?= =?utf-8?B?OExzcjc4MWhtazhXV3NocUttYitxQWI0UWRzYU5Xb0pwSUw4eWNoRkpwNzlt?= =?utf-8?B?QStNdEdCZGVNNzV0UEJnZlJ5N1Evb2Z3TDV3bEpJN2dCM0VCdUY4SHVNNysv?= =?utf-8?B?SzZMenIrWDFwUHFSeThtdEZwTURXeWZEOEdZMW9TQjFHeWdpZjR4YUhSZWlE?= =?utf-8?B?Q055TzdpMDYzcXdXVEVIZHpMT1lmZ1l1QjNlVExDc3IwWHEvazZZWCs4aWd4?= =?utf-8?B?L2gyc011R3ZFdjB6eXgxZnNSanJsT3NCRDloSHhsbVpXZGpXTUl6WGZab0Mz?= =?utf-8?B?clhQbjJMNGZuMncxcWpJSWFUK0N6WlU4NmdnTXJEYVQ5bFNEV3pVNEtPY1gv?= =?utf-8?B?cTdheW5qemVqd05ua0FRT0NJUm1mNmJMeU5ZclVrZi9xT1hhcnIySTFVWkw5?= =?utf-8?B?SWZIdS9qdnA4VHlVTFltQTBxY3NuYnR6MHl2SmgzMTNsSzhXMEtzWlNzdjNn?= =?utf-8?B?bzUxWGxXRDdwMUZzNjM0c2ZObGZRSVhCVCtra1ZPTitXL3VwZS9Wemo3WUVD?= =?utf-8?B?UEE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: bdce2cd5-bebb-4d0d-1022-08da90105f38 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2022 14:02:01.8982 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: uptTkggN357Kt71bfS2a6HsX++2u8iD0GFBP0I4hzx4wCKB9DQzheRVHNjWim4uaqwMMSm9yCrh3ixAzgwq8+AtkhCbJ7gcHN8JKwfRDxM0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2804 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Operating on drm minor is not done in IRQ context, which means that we could safely downgrade to regular non-irq spinlock. But we can also go further and drop the idr_preload tricks by just using a mutex. Signed-off-by: Micha=C5=82 Winiarski Reviewed-by: Daniel Vetter --- drivers/gpu/drm/drm_drv.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 0bdcca0db611..f66904527256 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -53,7 +53,7 @@ MODULE_AUTHOR("Gareth Hughes, Leif Delgass, Jos=C3=A9 Fon= seca, Jon Smirl"); MODULE_DESCRIPTION("DRM shared core routines"); MODULE_LICENSE("GPL and additional rights"); =20 -static DEFINE_SPINLOCK(drm_minor_lock); +static DEFINE_MUTEX(drm_minor_lock); static struct idr drm_minors_idr; =20 static bool skip_legacy_minors; @@ -103,21 +103,19 @@ static struct drm_minor **drm_minor_get_slot(struct d= rm_device *dev, static void drm_minor_alloc_release(struct drm_device *dev, void *data) { struct drm_minor *minor =3D data; - unsigned long flags; =20 WARN_ON(dev !=3D minor->dev); =20 put_device(minor->kdev); =20 - spin_lock_irqsave(&drm_minor_lock, flags); + mutex_lock(&drm_minor_lock); idr_remove(&drm_minors_idr, minor->index); - spin_unlock_irqrestore(&drm_minor_lock, flags); + mutex_unlock(&drm_minor_lock); } =20 static int drm_minor_alloc(struct drm_device *dev, unsigned int type) { struct drm_minor *minor; - unsigned long flags; int r =3D -ENOSPC; =20 minor =3D drmm_kzalloc(dev, sizeof(*minor), GFP_KERNEL); @@ -133,18 +131,16 @@ static int drm_minor_alloc(struct drm_device *dev, un= signed int type) * and 128-191 are render nodes. * After reaching the limit, we're allocating minors dynamically - first-= come, first-serve. */ - idr_preload(GFP_KERNEL); - spin_lock_irqsave(&drm_minor_lock, flags); + mutex_lock(&drm_minor_lock); if (!skip_legacy_minors) r =3D idr_alloc(&drm_minors_idr, NULL, 64 * type, 64 * (type + 1), - GFP_NOWAIT); + GFP_KERNEL); if (r =3D=3D -ENOSPC) - r =3D idr_alloc(&drm_minors_idr, NULL, 192, 1 << MINORBITS, GFP_NOWAIT); - spin_unlock_irqrestore(&drm_minor_lock, flags); - idr_preload_end(); + r =3D idr_alloc(&drm_minors_idr, NULL, 192, 1 << MINORBITS, GFP_KERNEL); + mutex_unlock(&drm_minor_lock); =20 if (r < 0) return r; @@ -166,7 +162,6 @@ static int drm_minor_alloc(struct drm_device *dev, unsi= gned int type) static int drm_minor_register(struct drm_device *dev, unsigned int type) { struct drm_minor *minor; - unsigned long flags; int ret; =20 DRM_DEBUG("\n"); @@ -186,9 +181,9 @@ static int drm_minor_register(struct drm_device *dev, u= nsigned int type) goto err_debugfs; =20 /* replace NULL with @minor so lookups will succeed from now on */ - spin_lock_irqsave(&drm_minor_lock, flags); + mutex_lock(&drm_minor_lock); idr_replace(&drm_minors_idr, minor, minor->index); - spin_unlock_irqrestore(&drm_minor_lock, flags); + mutex_unlock(&drm_minor_lock); =20 DRM_DEBUG("new minor registered %d\n", minor->index); return 0; @@ -201,16 +196,15 @@ static int drm_minor_register(struct drm_device *dev,= unsigned int type) static void drm_minor_unregister(struct drm_device *dev, unsigned int type) { struct drm_minor *minor; - unsigned long flags; =20 minor =3D *drm_minor_get_slot(dev, type); if (!minor || !device_is_registered(minor->kdev)) return; =20 /* replace @minor with NULL so lookups will fail from now on */ - spin_lock_irqsave(&drm_minor_lock, flags); + mutex_lock(&drm_minor_lock); idr_replace(&drm_minors_idr, NULL, minor->index); - spin_unlock_irqrestore(&drm_minor_lock, flags); + mutex_unlock(&drm_minor_lock); =20 device_del(minor->kdev); dev_set_drvdata(minor->kdev, NULL); /* safety belt */ @@ -229,13 +223,12 @@ static void drm_minor_unregister(struct drm_device *d= ev, unsigned int type) struct drm_minor *drm_minor_acquire(unsigned int minor_id) { struct drm_minor *minor; - unsigned long flags; =20 - spin_lock_irqsave(&drm_minor_lock, flags); + mutex_lock(&drm_minor_lock); minor =3D idr_find(&drm_minors_idr, minor_id); if (minor) drm_dev_get(minor->dev); - spin_unlock_irqrestore(&drm_minor_lock, flags); + mutex_unlock(&drm_minor_lock); =20 if (!minor) { return ERR_PTR(-ENODEV); --=20 2.37.3 From nobody Mon Apr 6 14:11:58 2026 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 55DFBECAAD5 for ; Tue, 6 Sep 2022 14:46:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242249AbiIFOqL (ORCPT ); Tue, 6 Sep 2022 10:46:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40330 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238565AbiIFOpl (ORCPT ); Tue, 6 Sep 2022 10:45:41 -0400 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FE7C31DCF for ; Tue, 6 Sep 2022 07:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662473091; x=1694009091; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=MX00ssXpjtJYQ+spFhg74wUjSQVQbcT6XTXrrHchVl8=; b=ST2hjEcisXZGK8WTF6krWe1zfL7nkDNDEz2XY3TYpmeiFHihXFogaqpb fIeW7mYXb/JdKgf9mn7nXGE/tjO8rUtD8xiubCPg48VaianXx4wYUVzmU lend6Y+VRqa0Xzb9VJTiuX9KXeziml02tLF/GJCyfF2mZRlDiqYqzaBSd MF+pGC5HbLgf6BVUNI7KRlTQ+2B36QVxNH5KIv0oX0z12J8u/v8VL8i+T 1mhT1m5upAm96oROgThUensL9yiguW3VoaMtyaugx8GebJdKmYVimVOj7 Xu8gXkJfygnSZQkg0+7CUqbf0YgPCqA58cQn0iawQ1mlYv26W5YogX+w8 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="360548184" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="360548184" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 07:03:40 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="565103127" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 06 Sep 2022 07:03:40 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:38 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:18 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 6 Sep 2022 07:02:18 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 6 Sep 2022 07:02:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dZv0dR1SCKpojHf1hKIeZP+6roxfyRGFJjSI+IIEDtBgr22OpNZE/Y9EYNATe9lUlv06a5lnHwRlHWa5/tN305r23KXyJHkiHl2O8wz/4VW6yyEDdTMy0q5ywdWEjuDJOjoIScMp6Mfl2UDTPsT4EyI2/mOk4BLMBGblXE0DE5z33jNEjtcMXgyRhYNoltVBWADn5MVReJES+Z7FaySfbdMMP0z3Nuelzg1kwD3c1JoKfx5QGY3DgYXuUTHIyfkIiwbuOp/g3JLkbMKZv5ls+heVVPFNfV1ZmJXyqtzPeTxE8fljElEmoA92I5CIJAYjzvHgcMhDdFCNFZeNPM1nYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ntgjhyZkcPlUOgVX+RHpm2ndX81emlXdtqwkMjmHFDc=; b=HcMIJ8cIU9nMrNfLIgVKREvFA/dIZbg7izF6aDRPpN3B+1rFNwsGA+/7ezbql+LWTW3veCs62Aefhj4fl5a0oyO+Qyi9nHvGIvolr78fpyL6u6KcUC5N8WKlQnwX3dMlDVxMiZkLbbRDGqXSgzjoVLCLK9xnbnL+snFk+F7XCW87VPI/AjjLHrDqP05BAwWOSoWBTd7NGWjyoddk/w8JpuUGO577zDjP+UBrCcjC20ySOjniJSivoAy/T8TDR2CSKZNJ0YhWRQlgPo6Gnz0SSMrpmkLx7l6dRiSPLDOaoR98zthWS92Drk/BVMUqbNjdPgCMDy87m5VASI6rjRalvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by BN7PR11MB2804.namprd11.prod.outlook.com (2603:10b6:406:ac::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.12; Tue, 6 Sep 2022 14:02:06 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::b04c:807c:4ea0:c62e%9]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 14:02:06 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , CC: David Airlie , Daniel Vetter , "Maarten Lankhorst" , Maxime Ripard , Thomas Zimmermann , Simon Ser , Matthew Wilcox , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v3 4/4] idr: Add might_alloc() annotation Date: Tue, 6 Sep 2022 16:01:17 +0200 Message-ID: <20220906140117.409852-5-michal.winiarski@intel.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20220906140117.409852-1-michal.winiarski@intel.com> References: <20220906140117.409852-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR3P281CA0124.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:94::15) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 25b75f90-7b2a-4e6a-b4af-08da9010620d X-MS-TrafficTypeDiagnostic: BN7PR11MB2804:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kwniUQfwOQ9yshVepnUR0FxkXN+BxV8FfoF/t1+3G9CZ1+Zcv9w+7a3tgy7RSFcgTSFA8XqMaRpv5BLAdzpao1bjHcwPZOAiOo8cwEGEjy0JaI0y1n30IdPd827YSM9az1yOWaOh1R+4oSVWXLkTpOgHL8xd55da9ujOvKy/jx07qQtYXxrIfcGQZ1Z8lT7g7Nuj6QtnPDASVXVkfMsA88Qa5KU4OIJKvVoacWAUBrUZdsJX84S57v9B4St1wwC6stIfPxnREKMR6Peyg88dSAymma2HWngdI2T3mxhkZ/n1WiJanszXcBR7QP5CJTlCqmrSJiLmK7squoXc9BR+b+iEYVCBLPdhfT9SAmMUNIUEoCGVsPW+q65Oox30t6rQY7sllFUEU4Wc/J2vrap7xZSY5BY9KGq6r6uIazKw83uuiITW1tCSqf/EwGiGV3sEqiwqcpUembs/cxN+Zso6FDg2FD94Uln+NemDHGHOYSiw/QDfc/otUppjvJbTUDRleCaFgjrIybhuwBk38QfbGUIs1ePTkkXZ5LBMYLvtlZvWDXjyzSLzBazgouH12jsyzul2JhXhYB0mPLQZu7kxK/3i5vPSd5M+INfEpVSfRhGfmardRWtgmKxoHCZKogm6reXL3GAQ/AAhUDgf5kyTpyaY+t7LSp+JwJrxlEColobluaC+sZTCUkzzMMpHy9HpxoRBrGbaRH6SKPy/TmKq8g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(396003)(39860400002)(376002)(346002)(366004)(136003)(4744005)(8676002)(6486002)(66476007)(83380400001)(66946007)(66556008)(4326008)(478600001)(6506007)(6666004)(26005)(2906002)(6512007)(5660300002)(8936002)(186003)(1076003)(86362001)(2616005)(41300700001)(36756003)(316002)(82960400001)(38100700002)(54906003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aVJsY1M3TkNQUXRyejVzSHR5SjlCOVZlM2E2aTlYbTV3eDF0MTJ1K2VlR2xp?= =?utf-8?B?VGcvUm10Z2JoYlhMMzZHZXFNVGVFUFBWRkVLbm1QK0NnTnZjQkR6U3p1d2I1?= =?utf-8?B?a1Yyc3BSUjdpSTRVWllwc0hGRDUwNC9odnhvTVppUU1sMDdPUnJkdXlUMVNS?= =?utf-8?B?OWZPNTY1dWpKTzFUdkQxSzc1RXcySmVLZG94WWMwaUxUUUpOcXpJVnBrNHkr?= =?utf-8?B?VTE1RVlRRnZzSitpd1RnNHZLNFpMOFpGOVo0YitiUFJPWXhMeG1lbXlISnB2?= =?utf-8?B?ZFhaN0JTeDMwV3B5K09KZUxDY212VGRVUUNSV0lLNGZ2ck1UZ2pSaVNXWFJr?= =?utf-8?B?TExiTXcxMTlXaGNHNmIzMzBrejlrSjdMVE1DMlZSOXNEYVNBcklmK0doeUg3?= =?utf-8?B?aURQOE1WL2ExM0NGUkVzcWVVSHJqZk1MWFdrV1NGek5NRG16WWc4NmFmL2Fj?= =?utf-8?B?QU11R0JRWWZsZDhsTHJTdUFOdncwRExxUFRVVkNGNVRUMm9KN3A4Qkd6SzBz?= =?utf-8?B?aEZpZm9tVnZobEdEWnhqeDFmSVdKU2RobDlVY2tqRGxVelJuMFl5Q0RYQ3JO?= =?utf-8?B?ZWsrcVYvc0lXZkd3Tms2WnZ1cTlqc2JRK3ZxMkFuVVNWclpyM0daVHZmajlH?= =?utf-8?B?RGtmZEdEQ2dQZzQrNzZrbXlsWDZSUVpSbm1wWHJCUlpZZnJXUWFoNktJVlhQ?= =?utf-8?B?YVRKVlFja0l0enNlcEptbStRZitZYmlpVHpjajBxbUJIdUNaTUhHdlY3WUhh?= =?utf-8?B?cmw0V0w2VGpkekkzbFQ0aUxEa0dGMGJTUUNMNG0zOXRTbDRlSXc2VVI2OXQ5?= =?utf-8?B?V1pEa2hXUUdDRWp1SlVOY1E4dzRaMXM2bWJhMTBWdTBpdXJ0VlZ4bDBqNkVG?= =?utf-8?B?NklhVTFqL1M5OW9oRStqaHM1MzJxMXdvL0VZQVF2NzBEQVpjZGp2Q21MQ3JS?= =?utf-8?B?YVRJS0FZaEZvZHduc3JXRFl1WlBEdjZHSXYydkFoMCsxNU9MOS9Gell4UzdN?= =?utf-8?B?bmc3RlZLOFFLVlV5VEZEWENvUU1XOGdVY0xPLy9qMFRUc0xuS3FxOCtmaHdH?= =?utf-8?B?K1FhQmhHYnZUVXgyUEFsY21pV2RTNkQrV1E0VG5na3JrSzRPWGlkbVRJY1Ux?= =?utf-8?B?Uldqc3NGMVlZakV5SXJBTHFjV1k2N0IwcUR0di9rN1ZjRjJqNGs2em1LdjlD?= =?utf-8?B?OTE3dGRLZzhEMXRUUnFKQzg3UGs1MkNJeC9WeU9yTnZYRTRXaWxOUUxTb1M5?= =?utf-8?B?bmVSR244bkJqZWNLQjVhcmdRODk1Szlwd0lXOFlYcnZ2amxGTWFBWDNld2hU?= =?utf-8?B?TWhOZm5HNklCRkFsTTNFLzZKcEtCZko2eW1nblVEOUtiY2VscHg2ZnFxTjNH?= =?utf-8?B?K0RjSmdUbHEwNG9mS1NpK0xnZm05cEQ0Z0E0WTQwRnZ0b3hBN2t2OEJaeVEy?= =?utf-8?B?NCtOVHBWMnV6TFFNazhLb0duYkxVZ2IyNEMrQlFvaHpyZVY0NEVXcmpZUmJY?= =?utf-8?B?ZERZSnBQRVFLWGJYdHoyNmRTVUJoWFdSaFdVZUx1UGhjTWg3ZkpiMThnK0l6?= =?utf-8?B?QVU2SnZHeFVwazVjaGFyem1JblFjM0dsdFdVYUVVcmt3MEgyVlNQWXIvZWxJ?= =?utf-8?B?ZVc1UHh4bUEyZFpuZ0ZwcHhEU09aYWpkaHo1TGhMWll6SHF2ZnRXdk9CYW52?= =?utf-8?B?UkdKNGlONVJQRFZ6aW5LSlQvZDBKeURvSUJ2RjZQWk53WnpRSnpYVWEwQ1Zl?= =?utf-8?B?ajVFRlpsTVNqRWkvR1FHNVYxanQwajJkR2VSd2xKb3pHNUJQbWE0NHVDTHo3?= =?utf-8?B?dXFPMkFJeTJqUDVDL1UvcVFrbnZqdFJvOVhEU3BubXBSejQvNWdJVWhhQWwr?= =?utf-8?B?SDk5eFNzc1dWdE5zMWNOQ2RXTXMzL1NEeTQzNmhNMFU0eHVwQVI5MUUxVnN5?= =?utf-8?B?dkQvTzgvTHptK2ZRaWJIVUxVWHZWVCtqS2JUSGVYUmM2UzQ1SWthMmxjWEJW?= =?utf-8?B?QnBXQmpKUEk2ZENEb01KVUxxTUdZY3cvQk1rL3U5YWg5MHkrRFYweUxRVk9q?= =?utf-8?B?bkpSQVhVMFg5cFpQMDN4QjJVS0s1T0pXR01xQndTSVlhSk9TU29oR3ZzcHpE?= =?utf-8?B?YjdSRUJheTlwZ3RvWm9MRytteGtEM093aEplUzk0QUJNY3JCakp2aTJUYXJh?= =?utf-8?B?ckE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 25b75f90-7b2a-4e6a-b4af-08da9010620d X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2022 14:02:06.6839 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 99ESf6xA4T4oAKjTb1Daz9R0taG5cSe0oUYiqfwremDf8IF+U29x00pTiOrvYBOQ0BW9Ec/3+ikrWJbDupwAB2ZDxwPcfFeI+6jkNmEF3Fk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2804 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Using might_alloc() lets us catch problems in a deterministic manner, even if we end up not allocating anything. Signed-off-by: Micha=C5=82 Winiarski --- lib/radix-tree.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/radix-tree.c b/lib/radix-tree.c index 3c78e1e8b2ad..787ab01001de 100644 --- a/lib/radix-tree.c +++ b/lib/radix-tree.c @@ -23,6 +23,7 @@ #include /* in_interrupt() */ #include #include +#include #include #include #include @@ -1481,6 +1482,8 @@ void __rcu **idr_get_free(struct radix_tree_root *roo= t, unsigned long maxindex, start =3D iter->next_index; unsigned int shift, offset =3D 0; =20 + might_alloc(gfp); + grow: shift =3D radix_tree_load_root(root, &child, &maxindex); if (!radix_tree_tagged(root, IDR_FREE)) --=20 2.37.3