| Newer kernel headers renamed mtd mode defines and no longer support |
| MEMSETOOBSEL. Allow code to work with both older and newer kernel |
| versions. |
| |
| Signed-off-by: Paul B. Henson <henson@acm.org> |
| Signed-off-by: Sergey Alyoshin <alyoshin.s@gmail.com> |
| |
| diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.c kobs-ng-3.0.35-4.0.0/src/mtd.c |
| --- kobs-ng-3.0.35-4.0.0-orig/src/mtd.c 2012-12-17 22:37:40.000000000 -0800 |
| +++ kobs-ng-3.0.35-4.0.0/src/mtd.c 2013-07-28 19:39:59.000000000 -0700 |
| @@ -852,8 +852,11 @@ |
| mp = &md->part[i]; |
| |
| if (mp->fd != -1) { |
| +/* Newer kernels dropped MEMSETOOBSEL */ |
| +#ifdef MEMSETOOBSEL |
| (void)ioctl(mp->fd, MEMSETOOBSEL, |
| &mp->old_oobinfo); |
| +#endif |
| close(mp->fd); |
| } |
| |
| @@ -896,6 +899,8 @@ |
| continue; |
| } |
| |
| +/* Newer kernels dropped MEMSETOOBSEL */ |
| +#ifdef MEMSETOOBSEL |
| if (r == -ENOTTY) { |
| r = ioctl(mp->fd, MEMSETOOBSEL, &mp->old_oobinfo); |
| if (r != 0) { |
| @@ -904,6 +909,7 @@ |
| } |
| mp->oobinfochanged = 0; |
| } |
| +#endif |
| } else { |
| r = ioctl(mp->fd, MTDFILEMODE, (void *)MTD_MODE_RAW); |
| if (r != 0 && r != -ENOTTY) { |
| @@ -911,6 +917,8 @@ |
| continue; |
| } |
| |
| +/* Newer kernels dropped MEMSETOOBSEL */ |
| +#ifdef MEMSETOOBSEL |
| if (r == -ENOTTY) { |
| r = ioctl(mp->fd, MEMSETOOBSEL, &none_oobinfo); |
| if (r != 0) { |
| @@ -920,6 +928,7 @@ |
| mp->oobinfochanged = 1; |
| } else |
| mp->oobinfochanged = 2; |
| +#endif |
| } |
| |
| mp->ecc = ecc; |
| diff -u -r kobs-ng-3.0.35-4.0.0-orig/src/mtd.h kobs-ng-3.0.35-4.0.0/src/mtd.h |
| --- kobs-ng-3.0.35-4.0.0-orig/src/mtd.h 2012-12-17 22:37:40.000000000 -0800 |
| +++ kobs-ng-3.0.35-4.0.0/src/mtd.h 2013-07-28 19:33:57.000000000 -0700 |
| @@ -31,6 +31,13 @@ |
| #include "BootControlBlocks.h" |
| #include "rom_nand_hamming_code_ecc.h" |
| |
| +// Newer kernel headers renamed define |
| +#include <linux/version.h> |
| +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) |
| +# define MTD_MODE_NORMAL MTD_FILE_MODE_NORMAL |
| +# define MTD_MODE_RAW MTD_FILE_MODE_RAW |
| +#endif |
| + |
| //------------------------------------------------------------------------------ |
| // Re-definitions of true and false, because the standard ones aren't good |
| // enough? |