We can store this function pointer directly in the bin_attribute
structure's private field. Do this to save one global pointer.

Cc: Wei-Ning Huang <wnhu...@chromium.org>
Cc: Julius Werner <jwer...@chromium.org>
Cc: Brian Norris <briannor...@chromium.org>
Cc: Samuel Holland <sam...@sholland.org>
Cc: Guenter Roeck <gro...@chromium.org>
Signed-off-by: Stephen Boyd <swb...@chromium.org>
---
 drivers/firmware/google/memconsole.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/firmware/google/memconsole.c 
b/drivers/firmware/google/memconsole.c
index 166f07c68c02..968135025e4f 100644
--- a/drivers/firmware/google/memconsole.c
+++ b/drivers/firmware/google/memconsole.c
@@ -22,14 +22,16 @@
 
 #include "memconsole.h"
 
-static ssize_t (*memconsole_read_func)(char *, loff_t, size_t);
-
 static ssize_t memconsole_read(struct file *filp, struct kobject *kobp,
                               struct bin_attribute *bin_attr, char *buf,
                               loff_t pos, size_t count)
 {
+       ssize_t (*memconsole_read_func)(char *, loff_t, size_t);
+
+       memconsole_read_func = bin_attr->private;
        if (WARN_ON_ONCE(!memconsole_read_func))
                return -EIO;
+
        return memconsole_read_func(buf, pos, count);
 }
 
@@ -40,7 +42,7 @@ static struct bin_attribute memconsole_bin_attr = {
 
 void memconsole_setup(ssize_t (*read_func)(char *, loff_t, size_t))
 {
-       memconsole_read_func = read_func;
+       memconsole_bin_attr.private = read_func;
 }
 EXPORT_SYMBOL(memconsole_setup);
 
-- 
Sent by a computer through tubes

Reply via email to