OSDN Git Service

sap-u8500: Fix build errors due to unaligned memory access
authorSzymon Janc <szymon.janc@tieto.com>
Fri, 23 Nov 2012 10:09:11 +0000 (11:09 +0100)
committerJohan Hedberg <johan.hedberg@intel.com>
Tue, 11 Dec 2012 05:41:07 +0000 (07:41 +0200)
This fix following compilation error on ARM.

  CC     profiles/sap/sap-u8500.o
profiles/sap/sap-u8500.c: In function recv_card_status:
profiles/sap/sap-u8500.c:323:16: error: cast increases required
alignment of target type [-Werror=cast-align]
profiles/sap/sap-u8500.c: In function recv_response:
profiles/sap/sap-u8500.c:423:12: error: cast increases required
alignment of target type [-Werror=cast-align]
cc1: all warnings being treated as errors

profiles/sap/sap-u8500.c

index f07209d..b1aee57 100644 (file)
@@ -313,16 +313,16 @@ static void recv_status(uint32_t status)
 
 static void recv_card_status(uint32_t status, uint8_t *param)
 {
-       uint32_t *card_status;
+       uint32_t card_status;
        uint8_t result;
        uint8_t iccrs;
 
        if (status != STE_STATUS_OK)
                return;
 
-       card_status = (uint32_t *)param;
+       memcpy(&card_status, param, sizeof(card_status));
 
-       if (get_sap_reader_status(*card_status, &iccrs) < 0)
+       if (get_sap_reader_status(card_status, &iccrs) < 0)
                result = SAP_RESULT_ERROR_NO_REASON;
        else
                result = get_sap_result(STE_GET_STATUS_MSG, status);
@@ -420,7 +420,7 @@ static void recv_response(struct ste_message *msg)
        }
 
        param = msg->payload;
-       status = *(uint32_t *)param;
+       memcpy(&status, param, sizeof(status));
        param += sizeof(status);
 
        SAP_VDBG("status 0x%x", status);