powerpc/pseries: Pack update_props_workarea to map correctly to rtas buffer header
authorTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Thu, 15 Aug 2013 05:23:47 +0000 (22:23 -0700)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 27 Aug 2013 04:45:12 +0000 (14:45 +1000)
The work area buffer returned by the ibm,update-properties rtas call contains
20 bytes of header information prior to the property value descriptor data.
Currently update_dt_node tries to advance over this header using sizeof(upwa).
The update_props_workarea struct contains 20 bytes worth of fields, that map
to the relevant header data, but the sizeof the structure is 24 bytes due to
4 bytes of padding at the end of the structure. Packing the structure ensures
that we don't advance too far over the rtas buffer.

Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/pseries/mobility.c

index aaae85d..023e354 100644 (file)
@@ -28,7 +28,7 @@ struct update_props_workarea {
        u32 state;
        u64 reserved;
        u32 nprops;
-};
+} __packed;
 
 #define NODE_ACTION_MASK       0xff000000
 #define NODE_COUNT_MASK                0x00ffffff