Message ID | 20241212224114.888373-2-dualli@chromium.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | binder: report txn errors via generic netlink | expand |
On Thu, 12 Dec 2024 14:41:13 -0800 Li Li wrote: > +/** > + * Add a binder device to binder_devices nit: kdoc is missing function name > + * @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); To be clear we do not intend to apply these patches to net-next, looks like binder patches are mostly handled by Greg KH. Please drop the net-next from the subject on future revisions to avoid confusion.
On Sun, Dec 15, 2024 at 2:27 PM Jakub Kicinski <kuba@kernel.org> wrote: > > On Thu, 12 Dec 2024 14:41:13 -0800 Li Li wrote: > > +/** > > + * Add a binder device to binder_devices > > nit: kdoc is missing function name > > > + * @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); > > To be clear we do not intend to apply these patches to net-next, > looks like binder patches are mostly handled by Greg KH. Please > drop the net-next from the subject on future revisions to avoid > confusion. Got it. I'll modify the subject accordingly. Meanwhile, Greg KH did say we need netlink experts to review the netlink code. Please let me know if you have any more comments about the netlink part of this patch so that I can fix them in the next revision. Thank you!
On Thu, Dec 12, 2024 at 02:41:13PM -0800, Li Li wrote: > From: Li Li <dualli@google.com> > > 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 <dualli@google.com> > --- > drivers/android/binder.c | 5 +++++ > drivers/android/binder_internal.h | 8 ++++++++ > drivers/android/binderfs.c | 2 ++ > 3 files changed, 15 insertions(+) > > 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_entries[] = { > {} /* terminator */ > }; > > +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_internal.h nit: I believe you the following hunk should be in this patch no? /** * struct binder_device - information about a binder device node - * @hlist: list of binder devices (only used for devices requested 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 > index f8d6be682f23..1f21ad3963b1 100644 > --- a/drivers/android/binder_internal.h > +++ b/drivers/android/binder_internal.h > @@ -582,4 +582,12 @@ struct binder_object { > }; > }; > > +/** > + * 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)); > > + binder_add_device(device); > + > return 0; > > err: > -- > 2.47.1.613.gc27f4b7a9f-goog > Other than the comment above it LGTM. Feel free to add: Acked-by: Carlos Llamas <cmllamas@google.com>
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_entries[] = { {} /* terminator */ }; +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_internal.h index f8d6be682f23..1f21ad3963b1 100644 --- a/drivers/android/binder_internal.h +++ b/drivers/android/binder_internal.h @@ -582,4 +582,12 @@ struct binder_object { }; }; +/** + * 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)); + binder_add_device(device); + return 0; err: