summaryrefslogtreecommitdiff
path: root/packages/linux/nslu2-kernel/2.6.15/mtd-unaligned-read-fix
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/nslu2-kernel/2.6.15/mtd-unaligned-read-fix')
-rw-r--r--packages/linux/nslu2-kernel/2.6.15/mtd-unaligned-read-fix40
1 files changed, 0 insertions, 40 deletions
diff --git a/packages/linux/nslu2-kernel/2.6.15/mtd-unaligned-read-fix b/packages/linux/nslu2-kernel/2.6.15/mtd-unaligned-read-fix
deleted file mode 100644
index f4f468ce85..0000000000
--- a/packages/linux/nslu2-kernel/2.6.15/mtd-unaligned-read-fix
+++ /dev/null
@@ -1,40 +0,0 @@
-diff -u linux-2.6-working/drivers/mtd/maps/ixp4xx.c linux-2.6-working/drivers/mtd/maps/ixp4xx.c
---- linux-2.6.15/drivers/mtd/maps/ixp4xx.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/mtd/maps/ixp4xx.c 1970-01-01 00:00:00.000000000 +0000
-@@ -53,19 +53,28 @@
- static void ixp4xx_copy_from(struct map_info *map, void *to,
- unsigned long from, ssize_t len)
- {
-- int i;
- u8 *dest = (u8 *) to;
- void __iomem *src = map->virt + from;
-- u16 data;
-
-- for (i = 0; i < (len / 2); i++) {
-- data = le16_to_cpu(readw(src + 2*i));
-- dest[i * 2] = BYTE0(data);
-- dest[i * 2 + 1] = BYTE1(data);
-+ if (len <= 0)
-+ return;
-+
-+ if (from & 1) {
-+ *dest++ = BYTE1(le16_to_cpu(readw(src)));
-+ src++;
-+ --len;
-+ }
-+
-+ while (len >= 2) {
-+ u16 data = le16_to_cpu(readw(src));
-+ *dest++ = BYTE0(data);
-+ *dest++ = BYTE1(data);
-+ src += 2;
-+ len -= 2;
- }
-
-- if (len & 1)
-- dest[len - 1] = BYTE0(le16_to_cpu(readw(src + 2*i)));
-+ if (len > 0)
-+ *dest++ = BYTE0(le16_to_cpu(readw(src)));
- }
-
- /*