}
 EXPORT_SYMBOL(seq_escape);
 
+void seq_escape_mem_ascii(struct seq_file *m, const char *src, size_t isz)
+{
+       char *buf;
+       size_t size = seq_get_buf(m, &buf);
+       int ret;
+
+       ret = string_escape_mem_ascii(src, isz, buf, size);
+       seq_commit(m, ret < size ? ret : -1);
+}
+EXPORT_SYMBOL(seq_escape_mem_ascii);
+
 void seq_vprintf(struct seq_file *m, const char *f, va_list args)
 {
        int len;
 
                    unsigned long long v, unsigned int width);
 
 void seq_escape(struct seq_file *m, const char *s, const char *esc);
+void seq_escape_mem_ascii(struct seq_file *m, const char *src, size_t isz);
 
 void seq_hex_dump(struct seq_file *m, const char *prefix_str, int prefix_type,
                  int rowsize, int groupsize, const void *buf, size_t len,
 
 int string_escape_mem(const char *src, size_t isz, char *dst, size_t osz,
                unsigned int flags, const char *only);
 
+int string_escape_mem_ascii(const char *src, size_t isz, char *dst,
+                                       size_t osz);
+
 static inline int string_escape_mem_any_np(const char *src, size_t isz,
                char *dst, size_t osz, const char *only)
 {
 
 }
 EXPORT_SYMBOL(string_escape_mem);
 
+int string_escape_mem_ascii(const char *src, size_t isz, char *dst,
+                                       size_t osz)
+{
+       char *p = dst;
+       char *end = p + osz;
+
+       while (isz--) {
+               unsigned char c = *src++;
+
+               if (!isprint(c) || !isascii(c) || c == '"' || c == '\\')
+                       escape_hex(c, &p, end);
+               else
+                       escape_passthrough(c, &p, end);
+       }
+
+       return p - dst;
+}
+EXPORT_SYMBOL(string_escape_mem_ascii);
+
 /*
  * Return an allocated string that has been escaped of special characters
  * and double quotes, making it safe to log in quotes.