From: Sonic Zhang <[email protected]> Rather than call probe_kernel_write() one byte at a time, process the whole buffer locally and pass the entire result in one go. This way, arches that need to do special handling based on the length can do so, or we only end up calling memcpy() once.
Signed-off-by: Sonic Zhang <[email protected]> Signed-off-by: Mike Frysinger <[email protected]> --- kernel/kgdb.c | 19 +++++++------------ 1 files changed, 7 insertions(+), 12 deletions(-) diff --git a/kernel/kgdb.c b/kernel/kgdb.c index 2eb517e..180a1d0 100644 --- a/kernel/kgdb.c +++ b/kernel/kgdb.c @@ -396,22 +396,17 @@ int kgdb_mem2hex(char *mem, char *buf, int count) */ static int kgdb_ebin2mem(char *buf, char *mem, int count) { - int err = 0; - char c; + int size = 0; + char *c = buf; while (count-- > 0) { - c = *buf++; - if (c == 0x7d) - c = *buf++ ^ 0x20; - - err = probe_kernel_write(mem, &c, 1); - if (err) - break; - - mem++; + if (c[size] == 0x7d) + c[size] = *buf++ ^ 0x20; + buf++; + size++; } - return err; + return probe_kernel_write(mem, c, size); } /* -- 1.6.6 ------------------------------------------------------------------------------ Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev _______________________________________________ Kgdb-bugreport mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport
