Commit 566865a2a4791c9290155f651ee0c2c606db0b1d
1 parent
3e67fe4543
Exists in
master
and in
7 other branches
[JFFS2] Fix cross-endian build.
When compiling a LE-capable JFFS2 on PowerPC, wbuf.c fails to compile: fs/jffs2/wbuf.c:973: error: braced-group within expression allowed only inside a function fs/jffs2/wbuf.c:973: error: initializer element is not constant fs/jffs2/wbuf.c:973: error: (near initialization for ‘oob_cleanmarker.magic’) fs/jffs2/wbuf.c:974: error: braced-group within expression allowed only inside a function fs/jffs2/wbuf.c:974: error: initializer element is not constant fs/jffs2/wbuf.c:974: error: (near initialization for ‘oob_cleanmarker.nodetype’) fs/jffs2/wbuf.c:975: error: braced-group within expression allowed only inside a function fs/jffs2/wbuf.c:976: error: initializer element is not constant fs/jffs2/wbuf.c:976: error: (near initialization for ‘oob_cleanmarker.totlen’) Provide constant_cpu_to_je{16,32} functions, and use them for initialising the offending structure. Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Showing 2 changed files with 12 additions and 3 deletions Side-by-side Diff
fs/jffs2/nodelist.h
... | ... | @@ -40,6 +40,9 @@ |
40 | 40 | #define cpu_to_je32(x) ((jint32_t){x}) |
41 | 41 | #define cpu_to_jemode(x) ((jmode_t){os_to_jffs2_mode(x)}) |
42 | 42 | |
43 | +#define constant_cpu_to_je16(x) ((jint16_t){x}) | |
44 | +#define constant_cpu_to_je32(x) ((jint32_t){x}) | |
45 | + | |
43 | 46 | #define je16_to_cpu(x) ((x).v16) |
44 | 47 | #define je32_to_cpu(x) ((x).v32) |
45 | 48 | #define jemode_to_cpu(x) (jffs2_to_os_mode((x).m)) |
... | ... | @@ -48,6 +51,9 @@ |
48 | 51 | #define cpu_to_je32(x) ((jint32_t){cpu_to_be32(x)}) |
49 | 52 | #define cpu_to_jemode(x) ((jmode_t){cpu_to_be32(os_to_jffs2_mode(x))}) |
50 | 53 | |
54 | +#define constant_cpu_to_je16(x) ((jint16_t){__constant_cpu_to_be16(x)}) | |
55 | +#define constant_cpu_to_je32(x) ((jint32_t){__constant_cpu_to_be32(x)}) | |
56 | + | |
51 | 57 | #define je16_to_cpu(x) (be16_to_cpu(x.v16)) |
52 | 58 | #define je32_to_cpu(x) (be32_to_cpu(x.v32)) |
53 | 59 | #define jemode_to_cpu(x) (be32_to_cpu(jffs2_to_os_mode((x).m))) |
... | ... | @@ -55,6 +61,9 @@ |
55 | 61 | #define cpu_to_je16(x) ((jint16_t){cpu_to_le16(x)}) |
56 | 62 | #define cpu_to_je32(x) ((jint32_t){cpu_to_le32(x)}) |
57 | 63 | #define cpu_to_jemode(x) ((jmode_t){cpu_to_le32(os_to_jffs2_mode(x))}) |
64 | + | |
65 | +#define constant_cpu_to_je16(x) ((jint16_t){__constant_cpu_to_le16(x)}) | |
66 | +#define constant_cpu_to_je32(x) ((jint32_t){__constant_cpu_to_le32(x)}) | |
58 | 67 | |
59 | 68 | #define je16_to_cpu(x) (le16_to_cpu(x.v16)) |
60 | 69 | #define je32_to_cpu(x) (le32_to_cpu(x.v32)) |
fs/jffs2/wbuf.c
... | ... | @@ -970,9 +970,9 @@ |
970 | 970 | |
971 | 971 | static const struct jffs2_unknown_node oob_cleanmarker = |
972 | 972 | { |
973 | - .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK), | |
974 | - .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER), | |
975 | - .totlen = cpu_to_je32(8) | |
973 | + .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK), | |
974 | + .nodetype = constant_cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER), | |
975 | + .totlen = constant_cpu_to_je32(8) | |
976 | 976 | }; |
977 | 977 | |
978 | 978 | /* |