Remove xsputn small copy optimization.
authorDavid S. Miller <davem@davemloft.net>
Thu, 29 Mar 2012 21:38:27 +0000 (14:38 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 29 Mar 2012 21:38:27 +0000 (14:38 -0700)
* libio/fileops.c (_IO_new_file_xsputn): Don't try to optimize
small copies by hand.

ChangeLog
libio/fileops.c

index 165a178..ec22026 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-29  David S. Miller  <davem@davemloft.net>
+
+       * libio/fileops.c (_IO_new_file_xsputn): Don't try to optimize
+       small copies by hand.
+
 2012-03-28  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
        [BZ #13761]
index 95e09b4..a2e8dac 100644 (file)
@@ -1341,24 +1341,13 @@ _IO_new_file_xsputn (f, data, n)
     {
       if (count > to_do)
        count = to_do;
-      if (count > 20)
-       {
 #ifdef _LIBC
-         f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count);
+      f->_IO_write_ptr = __mempcpy (f->_IO_write_ptr, s, count);
 #else
-         memcpy (f->_IO_write_ptr, s, count);
-         f->_IO_write_ptr += count;
+      memcpy (f->_IO_write_ptr, s, count);
+      f->_IO_write_ptr += count;
 #endif
-         s += count;
-       }
-      else
-       {
-         register char *p = f->_IO_write_ptr;
-         register int i = (int) count;
-         while (--i >= 0)
-           *p++ = *s++;
-         f->_IO_write_ptr = p;
-       }
+      s += count;
       to_do -= count;
     }
   if (to_do + must_flush > 0)