Uploaded image for project: 'Driver Ethernet'
  1. Driver Ethernet
  2. PSDRVETH-111

Ordering of link change events and related problem with debouncing of MAU type changes

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: V1.6.1.0
    • Fix Version/s: V1.6.2.0
    • Component/s: None
    • Labels:
      None
    • Account:
      SPC Driver Ethernet (SPCDRIVERE)

      Description

      HAL Adapters call DrvEth_EventInd(ETH_EVENT_LINK_CHANGED) for each link change event from the HAL. In this function, we defer into a (lower priority) worker context as follows:

      PS_JOB_T *ptJob = &(ptPhy->tLinkChangeJob);
      ptJob->pfnFunc = DrvEth_Event_LinkChanged_job;

      if (!DrvEth_QueueJob(ptDrvEth, ptJob))
      {
        ptJob->pfnFunc(ptJob);
      }

      The last block is thought as a fallback if no worker was passed to DrvEth during component startup. Unfortunately, if two or more link change events are indicated in rapid succession, or if the lower priority worker is busy, this can cause a wrong ordering of the job invocations.


      Please rewrite this logic (no worker available -> synchronous call, worker available -> asynchronous call)

        Attachments

          Issue Links

            Expenses

              Activity

                Status Description

                  People

                  • Reporter:
                    MBommert Marc Bommert
                  • Votes:
                    0 Vote for this issue
                    Watchers:
                    0 Start watching this issue

                    Dates

                    • Created:
                      Updated:
                      Resolved: