On Tue,  5 Jun 2018 01:30:15 +0300, Igor Russkikh wrote:
> @@ -158,6 +158,8 @@ static void aq_nic_service_timer_cb(struct timer_list *t)
>       int ctimer = AQ_CFG_SERVICE_TIMER_INTERVAL;
>       int err = 0;
>  
> +     mutex_lock(&self->aq_mutex);
> +
>       if (aq_utils_obj_test(&self->flags, AQ_NIC_FLAGS_IS_NOT_READY))
>               goto err_exit;
>  
> @@ -175,6 +177,7 @@ static void aq_nic_service_timer_cb(struct timer_list *t)
>               ctimer = max(ctimer / 2, 1);
>  
>  err_exit:
> +     mutex_unlock(&self->aq_mutex);
>       mod_timer(&self->service_timer, jiffies + ctimer);
>  }
>  

This looks like a timer callback from the prototype, I don't think you
can take mutexes in timer callbacks.

Reply via email to