binderfs: add extended_error feature entry
authorCarlos Llamas <cmllamas@google.com>
Fri, 29 Apr 2022 23:56:42 +0000 (23:56 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 May 2022 13:43:24 +0000 (15:43 +0200)
Add extended_error to the binderfs feature list, to help userspace
determine whether the BINDER_GET_EXTENDED_ERROR ioctl is supported by
the binder driver.

Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Acked-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Link: https://lore.kernel.org/r/20220429235644.697372-4-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/android/binderfs.c
tools/testing/selftests/filesystems/binderfs/binderfs_test.c

index e3605cd..6c5e94f 100644 (file)
@@ -60,6 +60,7 @@ enum binderfs_stats_mode {
 
 struct binder_features {
        bool oneway_spam_detection;
+       bool extended_error;
 };
 
 static const struct constant_table binderfs_param_stats[] = {
@@ -75,6 +76,7 @@ static const struct fs_parameter_spec binderfs_fs_parameters[] = {
 
 static struct binder_features binder_features = {
        .oneway_spam_detection = true,
+       .extended_error = true,
 };
 
 static inline struct binderfs_info *BINDERFS_SB(const struct super_block *sb)
@@ -615,6 +617,12 @@ static int init_binder_features(struct super_block *sb)
        if (IS_ERR(dentry))
                return PTR_ERR(dentry);
 
+       dentry = binderfs_create_file(dir, "extended_error",
+                                     &binder_features_fops,
+                                     &binder_features.extended_error);
+       if (IS_ERR(dentry))
+               return PTR_ERR(dentry);
+
        return 0;
 }
 
index 0315955..9409bb1 100644 (file)
@@ -64,6 +64,7 @@ static int __do_binderfs_test(struct __test_metadata *_metadata)
                device_path[sizeof(P_tmpdir "/binderfs_XXXXXX/") + BINDERFS_MAX_NAME];
        static const char * const binder_features[] = {
                "oneway_spam_detection",
+               "extended_error",
        };
 
        change_mountns(_metadata);