|
@@ -181,7 +181,8 @@ err_unlock_dev:
|
|
|
struct nfp_resource *
|
|
|
nfp_resource_acquire(struct nfp_cpp *cpp, const char *name)
|
|
|
{
|
|
|
- unsigned long warn_at = jiffies + 15 * HZ;
|
|
|
+ unsigned long warn_at = jiffies + NFP_MUTEX_WAIT_FIRST_WARN * HZ;
|
|
|
+ unsigned long err_at = jiffies + NFP_MUTEX_WAIT_ERROR * HZ;
|
|
|
struct nfp_cpp_mutex *dev_mutex;
|
|
|
struct nfp_resource *res;
|
|
|
int err;
|
|
@@ -214,10 +215,15 @@ nfp_resource_acquire(struct nfp_cpp *cpp, const char *name)
|
|
|
}
|
|
|
|
|
|
if (time_is_before_eq_jiffies(warn_at)) {
|
|
|
- warn_at = jiffies + 60 * HZ;
|
|
|
+ warn_at = jiffies + NFP_MUTEX_WAIT_NEXT_WARN * HZ;
|
|
|
nfp_warn(cpp, "Warning: waiting for NFP resource %s\n",
|
|
|
name);
|
|
|
}
|
|
|
+ if (time_is_before_eq_jiffies(err_at)) {
|
|
|
+ nfp_err(cpp, "Error: resource %s timed out\n", name);
|
|
|
+ err = -EBUSY;
|
|
|
+ goto err_free;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
nfp_cpp_mutex_free(dev_mutex);
|