mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Vaibhav Jain <vaibhav@linux.ibm.com>
To: linux-kernel@vger.kernel.org
Cc: Vaibhav Jain <vaibhav@linux.ibm.com>,
	"Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>,
	Michael Ellerman <ellerman@au1.ibm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Piotr Maziarz <piotrx.maziarz@linux.intel.com>,
	Cezary Rojewski <cezary.rojewski@intel.com>,
	Borislav Petkov <bp@alien8.de>
Subject: [RFC] seq_buf: Export symbols to external modules
Date: Thu, 16 Apr 2020 09:21:24 +0530	[thread overview]
Message-ID: <20200416035124.549067-1-vaibhav@linux.ibm.com> (raw)

'seq_buf' provides a very useful abstraction for writing to a string
buffer without needing to worry about it over-flowing. However even
though the API has been stable for couple of years now its stills not
exported to external modules limiting its usage.

Hence this patch proposes update to 'seq_buf.c' to mark all functions
seq_buf_X() which are part of the seq_seq API to be exported to
external GPL modules.

Earlier work:
There was an earlier proposal by Borislav Petkov <bp@alien8.de> to
export seq_buf_printf() to modules at [1], as part of his EDAC
patch-set "EDAC, mce_amd: Add a tracepoint for the decoded
error". However the proposed patch was never merged and its fate is
unknown as I couldn't locate any subsequent discussion as to why patch
in [1] was dropped.

References:
[1]: https://lore.kernel.org/lkml/20170825102411.8682-5-bp@alien8.de/
[2]: https://lore.kernel.org/lkml/20170825092757.434f1eda@gandalf.local.home/

Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Piotr Maziarz <piotrx.maziarz@linux.intel.com>
Cc: Cezary Rojewski <cezary.rojewski@intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com>
---
 lib/seq_buf.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/seq_buf.c b/lib/seq_buf.c
index 4e865d42ab03..3aaa685e902d 100644
--- a/lib/seq_buf.c
+++ b/lib/seq_buf.c
@@ -43,6 +43,7 @@ int seq_buf_print_seq(struct seq_file *m, struct seq_buf *s)
 
 	return seq_write(m, s->buffer, len);
 }
+EXPORT_SYMBOL_GPL(seq_buf_print_seq);
 
 /**
  * seq_buf_vprintf - sequence printing of information.
@@ -70,6 +71,7 @@ int seq_buf_vprintf(struct seq_buf *s, const char *fmt, va_list args)
 	seq_buf_set_overflow(s);
 	return -1;
 }
+EXPORT_SYMBOL_GPL(seq_buf_vprintf);
 
 /**
  * seq_buf_printf - sequence printing of information
@@ -91,6 +93,7 @@ int seq_buf_printf(struct seq_buf *s, const char *fmt, ...)
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(seq_buf_printf);
 
 #ifdef CONFIG_BINARY_PRINTF
 /**
@@ -127,6 +130,7 @@ int seq_buf_bprintf(struct seq_buf *s, const char *fmt, const u32 *binary)
 	seq_buf_set_overflow(s);
 	return -1;
 }
+EXPORT_SYMBOL_GPL(seq_buf_bprintf);
 #endif /* CONFIG_BINARY_PRINTF */
 
 /**
@@ -156,6 +160,7 @@ int seq_buf_puts(struct seq_buf *s, const char *str)
 	seq_buf_set_overflow(s);
 	return -1;
 }
+EXPORT_SYMBOL_GPL(seq_buf_puts);
 
 /**
  * seq_buf_putc - sequence printing of simple character
@@ -177,6 +182,7 @@ int seq_buf_putc(struct seq_buf *s, unsigned char c)
 	seq_buf_set_overflow(s);
 	return -1;
 }
+EXPORT_SYMBOL_GPL(seq_buf_putc);
 
 /**
  * seq_buf_putmem - write raw data into the sequenc buffer
@@ -202,6 +208,7 @@ int seq_buf_putmem(struct seq_buf *s, const void *mem, unsigned int len)
 	seq_buf_set_overflow(s);
 	return -1;
 }
+EXPORT_SYMBOL_GPL(seq_buf_putmem);
 
 #define MAX_MEMHEX_BYTES	8U
 #define HEX_CHARS		(MAX_MEMHEX_BYTES*2 + 1)
@@ -251,6 +258,7 @@ int seq_buf_putmem_hex(struct seq_buf *s, const void *mem,
 	}
 	return 0;
 }
+EXPORT_SYMBOL_GPL(seq_buf_putmem_hex);
 
 /**
  * seq_buf_path - copy a path into the sequence buffer
@@ -282,6 +290,7 @@ int seq_buf_path(struct seq_buf *s, const struct path *path, const char *esc)
 
 	return res;
 }
+EXPORT_SYMBOL_GPL(seq_buf_path);
 
 /**
  * seq_buf_to_user - copy the squence buffer to user space
@@ -328,6 +337,7 @@ int seq_buf_to_user(struct seq_buf *s, char __user *ubuf, int cnt)
 	s->readpos += cnt;
 	return cnt;
 }
+EXPORT_SYMBOL_GPL(seq_buf_to_user);
 
 /**
  * seq_buf_hex_dump - print formatted hex dump into the sequence buffer
@@ -390,3 +400,4 @@ int seq_buf_hex_dump(struct seq_buf *s, const char *prefix_str, int prefix_type,
 	}
 	return 0;
 }
+EXPORT_SYMBOL_GPL(seq_buf_hex_dump);
-- 
2.25.2


             reply	other threads:[~2020-04-16  3:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-16  3:51 Vaibhav Jain [this message]
2020-04-16 13:09 ` Steven Rostedt
2020-04-17  9:17   ` Vaibhav Jain
2020-04-20 19:20     ` Steven Rostedt
2020-05-08 10:54       ` Vaibhav Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200416035124.549067-1-vaibhav@linux.ibm.com \
    --to=vaibhav@linux.ibm.com \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=bp@alien8.de \
    --cc=cezary.rojewski@intel.com \
    --cc=ellerman@au1.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=piotrx.maziarz@linux.intel.com \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®