]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Can: PduId was cleared before calling callback
authormahi <devnull@localhost>
Sun, 13 May 2012 11:53:50 +0000 (13:53 +0200)
committermahi <devnull@localhost>
Sun, 13 May 2012 11:53:50 +0000 (13:53 +0200)
arch/ppc/mpc55xx/drivers/Can.c

index 0d9f070bf5965ced6242f0a8d316079bfeb3d77c..ce26f65c548e92fd8145e7400f8402bdc13f62d9 100644 (file)
@@ -497,6 +497,8 @@ static void Can_Isr_Tx(Can_UnitType *uPtr)
 {\r
     uint8 mbNr;\r
     flexcan_t *canHw;\r
+    PduIdType pduId;\r
+\r
 \r
     canHw = uPtr->hwPtr;\r
 \r
@@ -514,6 +516,7 @@ static void Can_Isr_Tx(Can_UnitType *uPtr)
     for (; mbMask; mbMask &= ~(1ull << mbNr)) {\r
         mbNr = ilog2_64(mbMask);\r
 \r
+        pduId = uPtr->cfgCtrlPtr->Can_Arc_TxPduHandles[mbNr-uPtr->cfgCtrlPtr->Can_Arc_TxMailboxStart];\r
         uPtr->cfgCtrlPtr->Can_Arc_TxPduHandles[mbNr-uPtr->cfgCtrlPtr->Can_Arc_TxMailboxStart] = 0;\r
 \r
         // Clear interrupt and mark txBox as Free\r
@@ -521,7 +524,7 @@ static void Can_Isr_Tx(Can_UnitType *uPtr)
         uPtr->mbTxFree |= (1ull << mbNr);\r
 \r
         if (GET_CALLBACKS()->TxConfirmation != NULL) {\r
-            GET_CALLBACKS()->TxConfirmation(uPtr->cfgCtrlPtr->Can_Arc_TxPduHandles[mbNr-uPtr->cfgCtrlPtr->Can_Arc_TxMailboxStart]);\r
+            GET_CALLBACKS()->TxConfirmation(pduId);\r
         }\r
     }\r
 }\r