From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F0A43C76AF for ; Tue, 16 Jun 2026 17:53:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781632438; cv=none; b=jhYySTflAQHw74dFMjHaK7g04UbuYskMVSPm88gTTPk0Pwb/8Bnk6XEE+xuWex+AvWqdE0hJYr6LYfTGLH+jb3wlhMywfd8jzpXITngXTVzvCA47jsVYewpkQRG+TZJ+94Felqp+TDe2RvWXHskPfOqhJa1jzdMX59HCvqo7SKg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781632438; c=relaxed/simple; bh=C8ChaZ66bdrateev50mFlxLUjw6L5U9t0aXKNYpXjuo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=j4HioCTA7hTVF4RCfmDNvuQqFYLj6Rz2KXcP7Eg/yCEmjk6DOQu9lr25w2UiZVJWWDikW/EHArqFjc8HX7ChPXXc3FQ3ehsVhOEWeOTJxcTkmOzHu0QbjQtks2Ab0TqrXkG01tuYlR5Pm0suOqmPBKDaZPzy6zkkE30/E9k31Jc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=sRI2diHm; arc=none smtp.client-ip=209.85.216.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="sRI2diHm" Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-36d9794d82aso3125460a91.0 for ; Tue, 16 Jun 2026 10:53:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781632436; x=1782237236; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=kBiGMhL9iAW4G08PgbMI1w2cxnDcNJXiR2EsZ3eCJ3g=; b=sRI2diHmWyXSiJdlLC80+RVNAkQpmV2yfW3Dd6U2YzlffYPy5bxq5fYuZ8XLV4FLsx ZiG/qM/tRzsctY4DcGJsf9y7eTiBHmzPLyc5JnhQqvyx7k0sLGjJnGjZ/nvMnLDms1S9 bY6wB4UWWyROO2kzPo9hmQrhgkCZ63zzX3dIP9Ye5vFSBXJJPfKapfxEHJh3PdmbWoTC M8H8S2OpAWuV6ugWecC+lfzZt0yGxgHjCIzTiLOrKYlibTWEaoS5KoY2/HMsCP0RR7vR 7pXAlPTgfRBUBXAWJuJXfhTlv4r0JVRkWtcNzlV7WWfWDgYdP5WRoATa6wiAI7UbBybb qTBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781632436; x=1782237236; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=kBiGMhL9iAW4G08PgbMI1w2cxnDcNJXiR2EsZ3eCJ3g=; b=YfpAS4QxAeasr6rBGcokhrCauk5G6gm+6hbIgyjBoHM5mTmkHWfs+S54yZBbEA7v10 z2Kb+JMfFDmHdwnmjV6PimvputdJuNpErsQbZ4IPCQiLn619l3HrxFL0hv4fAp2O0Aa9 lfPQC8KqWkloE0QjuZX63H/QYW48XrNE8EGFEEo9reBi5MEsnQ53N+B7zFOA8ixElW5O 7f4zes2KVnPVmeFDC+gv/+2uUfeVXenVnepu9vvSPELb4L795f5t3GR60yVm+0IrRNhD 1Erk49KNsav1amsq9mmSS+ZVyhisyTIJ1uC43TwIBy0fzgqzbCVXPuMR786ptcjy5iiW zciQ== X-Gm-Message-State: AOJu0YyVlkka46slAj0Ci1Sl5N1o1QyBt5CDsk9vDQ0Gcyy66flvvQcE 6ABIUKlNVaadjW60EqVuIKqkgTKDq3OxME4sLvZKd29Z9gxtDn11mg0c X-Gm-Gg: AfdE7cmpxJEpaws2906BkLoNrOU45FLv6ze3WLlpdVo96R375qZRZxgIhpAthFgydkU LyQjiF5CA2MrfQsC7LZkJPpR0i5OS7Cv5R05DUg6vpiGXY41+J4ojg3DfW4eaREyCH6vQDIJm9L iIIrt6/pf67hD8A33kchh8tuFaqWJ7I/Lx/HQTlQdFwTvbyRqv9bVC7aksgE6bmwLrC1bk8iwpC hUWOC9bISn03CAyn8bb7sZsMySCXDU3lXUZci1mgAj1NaSaHM8LyDaWRKz7Otd741jt/NEPPO1Y MfHiAxZ93JxoxYUygPZFLPqA2I+A/k/s0CwYnE08dBsISoieiEY7ltio6BuOUmIH65aO4xrmRJF DzPo0qRdG+mq0jAjteDuR7vpBWjwRb/MTfiKWUUKqVmdQs+ELk/j0haRXOu+NOooAYdVVlN6uia MQvQgWqG7phldLa2TZARwLi4K/SxlQ19eGqMk2DEGGK4zOHuAcEUQb X-Received: by 2002:a17:90b:5704:b0:369:a9e8:dbf5 with SMTP id 98e67ed59e1d1-37c9da75145mr91449a91.3.1781632436343; Tue, 16 Jun 2026 10:53:56 -0700 (PDT) Received: from localhost.localdomain ([49.207.217.37]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37c5208fd0fsm3441696a91.0.2026.06.16.10.53.52 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 16 Jun 2026 10:53:55 -0700 (PDT) From: Biren Pandya To: gregkh@linuxfoundation.org, arve@android.com, tkjos@android.com, brauner@kernel.org, cmllamas@google.com, aliceryhl@google.com Cc: linux-kernel@vger.kernel.org, Biren Pandya Subject: [PATCH] android: binderfs: drop manual unlock via scoped_guard() Date: Tue, 16 Jun 2026 23:23:41 +0530 Message-ID: <20260616175340.60355-2-birenpandya@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The device_create function manually protects the minor number allocation with binderfs_minors_mutex and relies on multiple manual unlocks on success and error paths. This is error-prone and adds boilerplate. Refactor the critical section to use the modern scoped_guard(mutex) macro. This strictly binds the lock lifecycle to the scope block, completely eliminating the manual unlocks and guaranteeing lock safety against future code modifications. Signed-off-by: Biren Pandya --- drivers/android/binderfs.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/drivers/android/binderfs.c b/drivers/android/binderfs.c index 361d69f756f5..ad5d9439ff87 100644 --- a/drivers/android/binderfs.c +++ b/drivers/android/binderfs.c @@ -129,20 +129,19 @@ static int binderfs_binder_device_create(struct inode *ref_inode, #endif /* Reserve new minor number for the new device. */ - mutex_lock(&binderfs_minors_mutex); - if (++info->device_count <= info->mount_opts.max) - minor = ida_alloc_max(&binderfs_minors, - use_reserve ? BINDERFS_MAX_MINOR - 1 : - BINDERFS_MAX_MINOR_CAPPED - 1, - GFP_KERNEL); - else - minor = -ENOSPC; - if (minor < 0) { - --info->device_count; - mutex_unlock(&binderfs_minors_mutex); - return minor; + scoped_guard(mutex, &binderfs_minors_mutex) { + if (++info->device_count <= info->mount_opts.max) + minor = ida_alloc_max(&binderfs_minors, + use_reserve ? BINDERFS_MAX_MINOR - 1 : + BINDERFS_MAX_MINOR_CAPPED - 1, + GFP_KERNEL); + else + minor = -ENOSPC; + if (minor < 0) { + --info->device_count; + return minor; + } } - mutex_unlock(&binderfs_minors_mutex); ret = -ENOMEM; device = kzalloc_obj(*device); base-commit: 64d712aa31f30a125291e7c47209ef7ebd3285a3 -- 2.50.1 (Apple Git-155)