am e4d3c945: Merge "Add support for target-customized NFC stack configuration"

* commit 'e4d3c945777c912ba71e79ac99cb11190cf8f90a':
  Add support for target-customized NFC stack configuration
diff --git a/Linux_x86/phOsalNfc.c b/Linux_x86/phOsalNfc.c
index a158415..e906b0d 100644
--- a/Linux_x86/phOsalNfc.c
+++ b/Linux_x86/phOsalNfc.c
@@ -144,6 +144,7 @@
 {
     if(eExceptionType == phOsalNfc_e_UnrecovFirmwareErr)
     {
+        ALOGE("HCI Timeout - Exception raised - Force restart of NFC service");
         phLibNfc_Mgt_Recovery();
         abort();
     } else {
diff --git a/src/phFriNfc_OvrHal.c b/src/phFriNfc_OvrHal.c
index 539210e..9efff94 100644
--- a/src/phFriNfc_OvrHal.c
+++ b/src/phFriNfc_OvrHal.c
@@ -323,7 +323,10 @@
         if(NULL != pRecvdata && OvrHal->TranceiveInfo.sRecvData.buffer != NULL && pRecvdata->buffer != NULL)
         {
            /* Work-around for the NFCIP Tranceive API */
-            memcpy(OvrHal->TranceiveInfo.sRecvData.buffer, pRecvdata->buffer, pRecvdata->length);
+            if (OvrHal->TranceiveInfo.sRecvData.buffer != pRecvdata->buffer)
+            {
+                memcpy(OvrHal->TranceiveInfo.sRecvData.buffer, pRecvdata->buffer, pRecvdata->length);
+            }
             if (OvrHal->pndef_recv_length != NULL)
             {
                *OvrHal->pndef_recv_length = (uint16_t) pRecvdata->length;
diff --git a/src/phHal4Nfc_ADD.c b/src/phHal4Nfc_ADD.c
index 0a3303c..727b7c4 100644
--- a/src/phHal4Nfc_ADD.c
+++ b/src/phHal4Nfc_ADD.c
@@ -671,11 +671,14 @@
                     if(phHal_eNfcIP1_Target == 
                         Hal4Ctxt->rem_dev_list[Count-1]->RemDevType)
                     {
-                        (void)memcpy(
-                            (void *)Hal4Ctxt->rem_dev_list[0],
-                            (void *)Hal4Ctxt->rem_dev_list[Count-1],
-                                    sizeof(phHal_sRemoteDevInformation_t)
-                                    );      
+                        if (Count != 1)
+                        {
+                            (void)memcpy(
+                                (void *)Hal4Ctxt->rem_dev_list[0],
+                                (void *)Hal4Ctxt->rem_dev_list[Count-1],
+                                        sizeof(phHal_sRemoteDevInformation_t)
+                                        );
+                        }
                         NfcIpDeviceCount = 1;                       
                         break;
                     }