Commit 566865a2a4791c9290155f651ee0c2c606db0b1d

Authored by David Woodhouse
1 parent 3e67fe4543

[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

... ... @@ -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))
... ... @@ -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 /*