SDOCM00108149 Incorrect index computation in NotifySetup for v7M and v7A 3.22.01.07_eng
authorRamsey Harris <ramsey@ti.com>
Wed, 4 Jun 2014 18:54:42 +0000 (11:54 -0700)
committerRobert Tivy <rtivy@ti.com>
Wed, 4 Jun 2014 20:36:52 +0000 (13:36 -0700)
When computing the mailbox table index in NotifySetup_plugHwi, the local
MultiProcID was used. It should have been using the local virtual ID. The
same bug was in NotifySetup_unplugHwi.

packages/ti/sdo/ipc/family/vayu/NotifySetup.c

index 72e60bdc54f9a410e32648c55b411858ddf9de80..603efa3b952c9937620d2cef1d1c480a666b6c53 100644 (file)
@@ -483,7 +483,7 @@ Void NotifySetup_plugHwi(UInt16 remoteProcId, Int cpuIntrNum,
     || defined(xdc_target__isaCompatible_v7A)
 
     /* compute table index for given source and destination */
     || defined(xdc_target__isaCompatible_v7A)
 
     /* compute table index for given source and destination */
-    idx = (srcVirtId * NotifySetup_NUM_CORES) + MultiProc_self();
+    idx = (srcVirtId * NotifySetup_NUM_CORES) + VIRTID(MultiProc_self());
 
     /* compute mailbox index */
     mbxIdx = MBX_BASEADDR_IDX(idx);
 
     /* compute mailbox index */
     mbxIdx = MBX_BASEADDR_IDX(idx);
@@ -583,7 +583,7 @@ Void NotifySetup_unplugHwi(UInt16 remoteProcId, Int cpuIntrNum)
     || defined(xdc_target__isaCompatible_v7A)
 
     /* decrement plug count */
     || defined(xdc_target__isaCompatible_v7A)
 
     /* decrement plug count */
-    idx = (srcVirtId * NotifySetup_NUM_CORES) + MultiProc_self();
+    idx = (srcVirtId * NotifySetup_NUM_CORES) + VIRTID(MultiProc_self());
     mbxIdx = MBX_BASEADDR_IDX(idx);
     NotifySetup_module->numPlugged[mbxIdx]--;
 
     mbxIdx = MBX_BASEADDR_IDX(idx);
     NotifySetup_module->numPlugged[mbxIdx]--;