200-mtd_fixes.patch 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. --- a/drivers/mtd/ar7part.c
  2. +++ b/drivers/mtd/ar7part.c
  3. @@ -34,6 +34,10 @@
  4. #define LOADER_MAGIC1 le32_to_cpu(0xfeedfa42)
  5. #define LOADER_MAGIC2 le32_to_cpu(0xfeed1281)
  6. +#ifndef SQUASHFS_MAGIC
  7. +#define SQUASHFS_MAGIC 0x73717368
  8. +#endif
  9. +
  10. struct ar7_bin_rec {
  11. unsigned int checksum;
  12. unsigned int length;
  13. @@ -47,7 +51,8 @@
  14. unsigned long origin)
  15. {
  16. struct ar7_bin_rec header;
  17. - unsigned int offset, len;
  18. + unsigned int offset;
  19. + size_t len;
  20. unsigned int pre_size = master->erasesize, post_size = 0;
  21. unsigned int root_offset = ROOT_OFFSET;
  22. @@ -66,7 +71,7 @@
  23. do { /* Try 10 blocks starting from master->erasesize */
  24. offset = pre_size;
  25. master->read(master, offset,
  26. - sizeof(header), &len, (u8 *)&header);
  27. + sizeof(header), &len, (uint8_t *)&header);
  28. if (!strncmp((char *)&header, "TIENV0.8", 8))
  29. ar7_parts[1].offset = pre_size;
  30. if (header.checksum == LOADER_MAGIC1)
  31. @@ -88,7 +93,7 @@
  32. while (header.length) {
  33. offset += sizeof(header) + header.length;
  34. master->read(master, offset, sizeof(header),
  35. - &len, (u8 *)&header);
  36. + &len, (uint8_t *)&header);
  37. }
  38. root_offset = offset + sizeof(header) + 4;
  39. break;
  40. @@ -96,10 +101,10 @@
  41. while (header.length) {
  42. offset += sizeof(header) + header.length;
  43. master->read(master, offset, sizeof(header),
  44. - &len, (u8 *)&header);
  45. + &len, (uint8_t *)&header);
  46. }
  47. root_offset = offset + sizeof(header) + 4 + 0xff;
  48. - root_offset &= ~(u32)0xff;
  49. + root_offset &= ~(uint32_t)0xff;
  50. break;
  51. default:
  52. printk(KERN_WARNING "Unknown magic: %08x\n", header.checksum);