diag: Increment data ready only if it is first update
Increment data ready only if it is not incremented earlier. Change-Id: Ia61e638bcf18e17dfe4bef15fc8ed4168b4c1891 Signed-off-by: Sreelakshmi Gownipalli <sgownipa@codeaurora.org> Signed-off-by: Hardik Arya <harya@codeaurora.org>
This commit is contained in:
parent
315f137385
commit
170f5f103e
|
@ -178,8 +178,10 @@ int diag_md_write(int id, unsigned char *buf, int len, int ctx)
|
|||
continue;
|
||||
}
|
||||
found = 1;
|
||||
driver->data_ready[i] |= USER_SPACE_DATA_TYPE;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
if (!(driver->data_ready[i] & USER_SPACE_DATA_TYPE)) {
|
||||
driver->data_ready[i] |= USER_SPACE_DATA_TYPE;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
}
|
||||
pr_debug("diag: wake up logging process\n");
|
||||
wake_up_interruptible(&driver->wait_q);
|
||||
}
|
||||
|
|
|
@ -1436,9 +1436,10 @@ static int diag_ioctl_lsm_deinit(void)
|
|||
mutex_unlock(&driver->diagchar_mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
driver->data_ready[i] |= DEINIT_TYPE;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
if (!(driver->data_ready[i] & DEINIT_TYPE)) {
|
||||
driver->data_ready[i] |= DEINIT_TYPE;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
}
|
||||
mutex_unlock(&driver->diagchar_mutex);
|
||||
wake_up_interruptible(&driver->wait_q);
|
||||
|
||||
|
|
|
@ -429,7 +429,8 @@ void diag_update_userspace_clients(unsigned int type)
|
|||
|
||||
mutex_lock(&driver->diagchar_mutex);
|
||||
for (i = 0; i < driver->num_clients; i++)
|
||||
if (driver->client_map[i].pid != 0) {
|
||||
if (driver->client_map[i].pid != 0 &&
|
||||
!(driver->data_ready[i] & type)) {
|
||||
driver->data_ready[i] |= type;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
}
|
||||
|
@ -444,8 +445,10 @@ void diag_update_sleeping_process(int process_id, int data_type)
|
|||
mutex_lock(&driver->diagchar_mutex);
|
||||
for (i = 0; i < driver->num_clients; i++)
|
||||
if (driver->client_map[i].pid == process_id) {
|
||||
driver->data_ready[i] |= data_type;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
if (!(driver->data_ready[i] & data_type)) {
|
||||
driver->data_ready[i] |= data_type;
|
||||
atomic_inc(&driver->data_ready_notif[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
wake_up_interruptible(&driver->wait_q);
|
||||
|
|
Loading…
Reference in New Issue