/* If EST is enabled, disabled it before adjust ptp time. */
        if (priv->plat->est && priv->plat->est->enable) {
                est_rst = true;
-               mutex_lock(&priv->plat->est->lock);
+               mutex_lock(&priv->est_lock);
                priv->plat->est->enable = false;
                stmmac_est_configure(priv, priv, priv->plat->est,
                                     priv->plat->clk_ptp_rate);
-               mutex_unlock(&priv->plat->est->lock);
+               mutex_unlock(&priv->est_lock);
        }
 
        write_lock_irqsave(&priv->ptp_lock, flags);
                ktime_t current_time_ns, basetime;
                u64 cycle_time;
 
-               mutex_lock(&priv->plat->est->lock);
+               mutex_lock(&priv->est_lock);
                priv->ptp_clock_ops.gettime64(&priv->ptp_clock_ops, ¤t_time);
                current_time_ns = timespec64_to_ktime(current_time);
                time.tv_nsec = priv->plat->est->btr_reserve[0];
                priv->plat->est->enable = true;
                ret = stmmac_est_configure(priv, priv, priv->plat->est,
                                           priv->plat->clk_ptp_rate);
-               mutex_unlock(&priv->plat->est->lock);
+               mutex_unlock(&priv->est_lock);
                if (ret)
                        netdev_err(priv->dev, "failed to configure EST\n");
        }
 
                if (!plat->est)
                        return -ENOMEM;
 
-               mutex_init(&priv->plat->est->lock);
+               mutex_init(&priv->est_lock);
        } else {
+               mutex_lock(&priv->est_lock);
                memset(plat->est, 0, sizeof(*plat->est));
+               mutex_unlock(&priv->est_lock);
        }
 
        size = qopt->num_entries;
 
-       mutex_lock(&priv->plat->est->lock);
+       mutex_lock(&priv->est_lock);
        priv->plat->est->gcl_size = size;
        priv->plat->est->enable = qopt->cmd == TAPRIO_CMD_REPLACE;
-       mutex_unlock(&priv->plat->est->lock);
+       mutex_unlock(&priv->est_lock);
 
        for (i = 0; i < size; i++) {
                s64 delta_ns = qopt->entries[i].interval;
                priv->plat->est->gcl[i] = delta_ns | (gates << wid);
        }
 
-       mutex_lock(&priv->plat->est->lock);
+       mutex_lock(&priv->est_lock);
        /* Adjust for real system time */
        priv->ptp_clock_ops.gettime64(&priv->ptp_clock_ops, ¤t_time);
        current_time_ns = timespec64_to_ktime(current_time);
        tc_taprio_map_maxsdu_txq(priv, qopt);
 
        if (fpe && !priv->dma_cap.fpesel) {
-               mutex_unlock(&priv->plat->est->lock);
+               mutex_unlock(&priv->est_lock);
                return -EOPNOTSUPP;
        }
 
 
        ret = stmmac_est_configure(priv, priv, priv->plat->est,
                                   priv->plat->clk_ptp_rate);
-       mutex_unlock(&priv->plat->est->lock);
+       mutex_unlock(&priv->est_lock);
        if (ret) {
                netdev_err(priv->dev, "failed to configure EST\n");
                goto disable;
 
 disable:
        if (priv->plat->est) {
-               mutex_lock(&priv->plat->est->lock);
+               mutex_lock(&priv->est_lock);
                priv->plat->est->enable = false;
                stmmac_est_configure(priv, priv, priv->plat->est,
                                     priv->plat->clk_ptp_rate);
                        priv->xstats.max_sdu_txq_drop[i] = 0;
                        priv->xstats.mtl_est_txq_hlbf[i] = 0;
                }
-               mutex_unlock(&priv->plat->est->lock);
+               mutex_unlock(&priv->est_lock);
        }
 
        priv->plat->fpe_cfg->enable = false;