From nobody Mon Feb 9 21:03:30 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 03B941FC11F for ; Wed, 18 Dec 2024 21:29:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557387; cv=none; b=OxFT93Hsw+qy0oYLGYEkx4q9q3KUE8wO1qD1/WhSKf33xNcuIDgw3w3QRtR10LXHDjZCc4I+abce1kIWmIMs/zE+ez3Id04J/P3fmgi2101RkE36PZR4QjinkWEPpj//W5aKFe/WFc9u5te1Ovtyq7bXyFnJ+CACMqKvjyNXFBE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734557387; c=relaxed/simple; bh=8tcZxhWcZygS7/RIPssR7Fug0TVf2r/WdlbveaQ9jm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=JDqpjj0MeHU3WUQwyEVJYcburDBkNgYDLSkSvzZuHSUJ5J2XK6gXieQBRP4UAGVK9iTI3fWoWZee+6cpAX/W7BRbWpZXZgiqcbrgrD9nb2YRtQkN+EzyiUfi0fVyiYKMfX5vzgY6mVrgi0ek/qi+M7KviNUzj2o4ZN2jZmGSI3g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Napi8/Zp; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Napi8/Zp" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-21661be2c2dso1167395ad.1 for ; Wed, 18 Dec 2024 13:29:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1734557384; x=1735162184; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Xt/KivLNHAmnWSoTGp/wlEAy9HXZLD1WAOHB1I7E5r8=; b=Napi8/ZpSEFWsNHoQdXPIqMH2DGnTiwDSqlGi+2SF+/QT3bRDQJqr2zRTjSkgQGJWd WvsLZAD7RwEynRZ3//+zht50RMro6japUzb9ByzQYeMkC7GM6xCSO3DZPUyp02aPyx7C Aw8TTJkDcTKNPkVCo9BImVq0wl7ee597Cnz8k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734557384; x=1735162184; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Xt/KivLNHAmnWSoTGp/wlEAy9HXZLD1WAOHB1I7E5r8=; b=hGJG/4WJQU/m3SWKLda9so+8X+yWmABsfVflX7FKKYtUlT3EsW9h3rotilzj31pjh5 DMFb3lP+iryc/KYyqaw7fy2X4YZ7SvH56y/WjIKZtcsmQgNToAoLiv0w8FTRhY6H0VBS kdeWj6KL4DbTGf+cFhkPCeEFzeiQ64+ot8M/sISN8cJUI3RXDfXMTBKpQ/y15UYuq/qc ErgzaZYOwh9JdOLmS7IsftLXRVeEk7JDTgixFjWp+wwZP9C6BJGfHEfRk0MUfTEdzQ2b 6zKi4PWyyu+ZUNtS+zLhtz1MAVzB3hrlO4iF+Y/CqGBnAexiVCeemgVL6D8qwoZWLbRa b94A== X-Forwarded-Encrypted: i=1; AJvYcCX3Brh+Eh+o2vosIe5KIniL2CY26ixfp+MLgy6ZYQaTHFD75e3TZc5cepEFTDsxHPMO4PxbJaCxGTz0izY=@vger.kernel.org X-Gm-Message-State: AOJu0YycJZM4kKlXFyxHPIEDMZViWuZ1/kbNyvsQ3y7++Uxp8iej7V71 q1QTdP9HFxMSZ3uQBh9BhlLJkZaxa+HVSU++OqjWG5bbvRYu+H5x8wQXm3i84A== X-Gm-Gg: ASbGncu4k1d1P4W9ARdSka2zpQ9G9cAg63h9NbcBjlO4ATzCQJgebjg47pbSTUD6Ymz iEk9yoVASB8FdtCH5DPaXNTJq8ho2W9QN2E7bkJW4ndjAicbehJBsg6LB1WWqWZ2Et82uxUVaZh CuLEAbEfvRHFkeZQEgzR4/lKDt33+TKPICBy6k2VwA52q5Fln2aqhByceJ3QRuF830oq3GAagnP vVbvV0EN18u6ha3eVW3BOJXGRtuJFn+SeLJdJcuOYUDSjgnuAqITNilJGLI35AXyqpk4GUIVARm 71fO5AK416zKDFAEEGt7BCM9VyMw1/lHev+Ua4ja5khYww== X-Google-Smtp-Source: AGHT+IH6vrFAj3IOk0b9NS9oSsCUv7IWVvGa6vyL9CDd/qOIIcWgVO6fANyY0NBZxuvfiOjsRm4YAg== X-Received: by 2002:a17:903:283:b0:215:83e1:99ff with SMTP id d9443c01a7336-219d9649cdamr12749075ad.27.1734557384391; Wed, 18 Dec 2024 13:29:44 -0800 (PST) Received: from li-cloudtop.c.googlers.com.com (200.23.125.34.bc.googleusercontent.com. [34.125.23.200]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-218a1e50455sm80506145ad.159.2024.12.18.13.29.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Dec 2024 13:29:44 -0800 (PST) From: Li Li To: dualli@google.com, corbet@lwn.net, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, donald.hunter@gmail.com, gregkh@linuxfoundation.org, arve@android.com, tkjos@android.com, maco@android.com, joel@joelfernandes.org, brauner@kernel.org, cmllamas@google.com, surenb@google.com, arnd@arndb.de, masahiroy@kernel.org, bagasdotme@gmail.com, horms@kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, netdev@vger.kernel.org, hridya@google.com, smoreland@google.com Cc: kernel-team@android.com Subject: [PATCH v12 1/2] binderfs: add new binder devices to binder_devices Date: Wed, 18 Dec 2024 13:29:34 -0800 Message-ID: <20241218212935.4162907-2-dualli@chromium.org> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog In-Reply-To: <20241218212935.4162907-1-dualli@chromium.org> References: <20241218212935.4162907-1-dualli@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Li Li When binderfs is not enabled, the binder driver parses the kernel config to create all binder devices. All of the new binder devices are stored in the list binder_devices. When binderfs is enabled, the binder driver creates new binder devices dynamically when userspace applications call BINDER_CTL_ADD ioctl. But the devices created in this way are not stored in the same list. This patch fixes that. Signed-off-by: Li Li Acked-by: Carlos Llamas --- drivers/android/binder.c | 5 +++++ drivers/android/binder_internal.h | 11 +++++++++-- drivers/android/binderfs.c | 2 ++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/android/binder.c b/drivers/android/binder.c index ef353ca13c35..0a16acd29653 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -6928,6 +6928,11 @@ const struct binder_debugfs_entry binder_debugfs_ent= ries[] =3D { {} /* terminator */ }; =20 +void binder_add_device(struct binder_device *device) +{ + hlist_add_head(&device->hlist, &binder_devices); +} + static int __init init_binder_device(const char *name) { int ret; diff --git a/drivers/android/binder_internal.h b/drivers/android/binder_int= ernal.h index f8d6be682f23..e4eb8357989c 100644 --- a/drivers/android/binder_internal.h +++ b/drivers/android/binder_internal.h @@ -25,8 +25,7 @@ struct binder_context { =20 /** * struct binder_device - information about a binder device node - * @hlist: list of binder devices (only used for devices requeste= d via - * CONFIG_ANDROID_BINDER_DEVICES) + * @hlist: list of binder devices * @miscdev: information about a binder character device node * @context: binder context information * @binderfs_inode: This is the inode of the root dentry of the super block @@ -582,4 +581,12 @@ struct binder_object { }; }; =20 +/** + * Add a binder device to binder_devices + * @device: the new binder device to add to the global list + * + * Not reentrant as the list is not protected by any locks + */ +void binder_add_device(struct binder_device *device); + #endif /* _LINUX_BINDER_INTERNAL_H */ diff --git a/drivers/android/binderfs.c b/drivers/android/binderfs.c index ad1fa7abc323..bc6bae76ccaf 100644 --- a/drivers/android/binderfs.c +++ b/drivers/android/binderfs.c @@ -207,6 +207,8 @@ static int binderfs_binder_device_create(struct inode *= ref_inode, fsnotify_create(root->d_inode, dentry); inode_unlock(d_inode(root)); =20 + binder_add_device(device); + return 0; =20 err: --=20 2.47.1.613.gc27f4b7a9f-goog