|
@@ -358,7 +358,8 @@ static int kcov_ioctl_locked(struct kcov *kcov, unsigned int cmd,
|
|
|
*/
|
|
|
if (kcov->mode != KCOV_MODE_INIT || !kcov->area)
|
|
|
return -EINVAL;
|
|
|
- if (kcov->t != NULL)
|
|
|
+ t = current;
|
|
|
+ if (kcov->t != NULL || t->kcov != NULL)
|
|
|
return -EBUSY;
|
|
|
if (arg == KCOV_TRACE_PC)
|
|
|
kcov->mode = KCOV_MODE_TRACE_PC;
|
|
@@ -370,7 +371,6 @@ static int kcov_ioctl_locked(struct kcov *kcov, unsigned int cmd,
|
|
|
#endif
|
|
|
else
|
|
|
return -EINVAL;
|
|
|
- t = current;
|
|
|
/* Cache in task struct for performance. */
|
|
|
t->kcov_size = kcov->size;
|
|
|
t->kcov_area = kcov->area;
|