Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8cb649a1 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "diag: Do not open diag node for same client again"

parents 92c6d10b 8537da1b
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -306,6 +306,14 @@ static int diagchar_open(struct inode *inode, struct file *file)
	if (driver) {
		mutex_lock(&driver->diagchar_mutex);

		for (i = 0; i < driver->num_clients; i++) {
			if (driver->client_map[i].pid == current->tgid) {
				pr_err_ratelimited("diag: Client already present current->tgid: %d\n",
					current->tgid);
				mutex_unlock(&driver->diagchar_mutex);
				return -EEXIST;
			}
		}
		for (i = 0; i < driver->num_clients; i++)
			if (driver->client_map[i].pid == 0)
				break;
@@ -3623,9 +3631,12 @@ static ssize_t diagchar_read(struct file *file, char __user *buf, size_t count,
	int proc = 0;

	mutex_lock(&driver->diagchar_mutex);
	for (i = 0; i < driver->num_clients; i++)
		if (driver->client_map[i].pid == current->tgid)
	for (i = 0; i < driver->num_clients; i++) {
		if (driver->client_map[i].pid == current->tgid) {
			index = i;
			break;
		}
	}
	mutex_unlock(&driver->diagchar_mutex);

	if (index == -1) {