mtd: sh_flctl: Use memcpy() instead of using a loop
authorBastian Hecht <hechtb@googlemail.com>
Thu, 5 Jul 2012 10:41:01 +0000 (12:41 +0200)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Sat, 29 Sep 2012 13:48:58 +0000 (14:48 +0100)
Elements have been copied "manually" in a loop. Better use memcpy().

Signed-off-by: Bastian Hecht <hechtb@gmail.com>
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/sh_flctl.c

index ed03ed2355de2e60b5d1eb87234e3b62591c9ca4..1343315b37bad2027c3db52d94eb7ec2a716612f 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/nand.h>
@@ -746,10 +747,9 @@ static void flctl_select_chip(struct mtd_info *mtd, int chipnr)
 static void flctl_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len)
 {
        struct sh_flctl *flctl = mtd_to_flctl(mtd);
-       int i, index = flctl->index;
+       int index = flctl->index;
 
-       for (i = 0; i < len; i++)
-               flctl->done_buff[index + i] = buf[i];
+       memcpy(&flctl->done_buff[index], buf, len);
        flctl->index += len;
 }
 
@@ -778,10 +778,11 @@ static uint16_t flctl_read_word(struct mtd_info *mtd)
 
 static void flctl_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
 {
-       int i;
+       struct sh_flctl *flctl = mtd_to_flctl(mtd);
+       int index = flctl->index;
 
-       for (i = 0; i < len; i++)
-               buf[i] = flctl_read_byte(mtd);
+       memcpy(buf, &flctl->done_buff[index], len);
+       flctl->index += len;
 }
 
 static int flctl_verify_buf(struct mtd_info *mtd, const u_char *buf, int len)