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

Commit 4d09599f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "diag: Fix for possible dci error notification"

parents ae66a42a f63a08b1
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -1380,11 +1380,20 @@ void diag_dci_notify_client(int peripheral_mask, int data, int proc)
			continue;
		if (entry->client_info.notification_list & peripheral_mask) {
			info.si_signo = entry->client_info.signal_type;
			stat = send_sig_info(entry->client_info.signal_type,
			if (entry->client &&
				entry->tgid == entry->client->tgid) {
				DIAG_LOG(DIAG_DEBUG_DCI,
					"entry tgid = %d, dci client tgid = %d\n",
					entry->tgid, entry->client->tgid);
				stat = send_sig_info(
					entry->client_info.signal_type,
					&info, entry->client);
				if (stat)
					pr_err("diag: Err sending dci signal to client, signal data: 0x%x, stat: %d\n",
							info.si_int, stat);
			} else
				pr_err("diag: client data is corrupted, signal data: 0x%x, stat: %d\n",
						info.si_int, stat);
		}
	}
	mutex_unlock(&driver->dci_mutex);
@@ -2698,6 +2707,7 @@ int diag_dci_register_client(struct diag_dci_reg_tbl_t *reg_entry)
	mutex_lock(&driver->dci_mutex);

	new_entry->client = current;
	new_entry->tgid = current->tgid;
	new_entry->client_info.notification_list =
				reg_entry->notification_list;
	new_entry->client_info.signal_type =
+2 −1
Original line number Diff line number Diff line
/* Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -141,6 +141,7 @@ struct diag_dci_buf_peripheral_t {
};

struct diag_dci_client_tbl {
	int tgid;
	struct diag_dci_reg_tbl_t client_info;
	struct task_struct *client;
	unsigned char *dci_log_mask;