Loading drivers/char/diag/diag_memorydevice.c +4 −2 Original line number Diff line number Diff line Loading @@ -209,8 +209,10 @@ int diag_md_write(int id, unsigned char *buf, int len, int ctx) continue; found = 1; 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); } Loading drivers/char/diag/diagchar_core.c +4 −3 Original line number Diff line number Diff line Loading @@ -1841,9 +1841,10 @@ static int diag_ioctl_lsm_deinit(void) mutex_unlock(&driver->diagchar_mutex); return -EINVAL; } 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); Loading drivers/char/diag/diagfwd.c +10 −5 Original line number Diff line number Diff line Loading @@ -457,7 +457,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]); } Loading @@ -477,9 +478,11 @@ void diag_update_md_clients(unsigned int type) if (driver->client_map[j].pid != 0 && driver->client_map[j].pid == driver->md_session_map[i]->pid) { if (!(driver->data_ready[i] & type)) { driver->data_ready[j] |= type; atomic_inc( &driver->data_ready_notif[j]); } break; } } Loading @@ -495,8 +498,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) { 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 Loading
drivers/char/diag/diag_memorydevice.c +4 −2 Original line number Diff line number Diff line Loading @@ -209,8 +209,10 @@ int diag_md_write(int id, unsigned char *buf, int len, int ctx) continue; found = 1; 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); } Loading
drivers/char/diag/diagchar_core.c +4 −3 Original line number Diff line number Diff line Loading @@ -1841,9 +1841,10 @@ static int diag_ioctl_lsm_deinit(void) mutex_unlock(&driver->diagchar_mutex); return -EINVAL; } 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); Loading
drivers/char/diag/diagfwd.c +10 −5 Original line number Diff line number Diff line Loading @@ -457,7 +457,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]); } Loading @@ -477,9 +478,11 @@ void diag_update_md_clients(unsigned int type) if (driver->client_map[j].pid != 0 && driver->client_map[j].pid == driver->md_session_map[i]->pid) { if (!(driver->data_ready[i] & type)) { driver->data_ready[j] |= type; atomic_inc( &driver->data_ready_notif[j]); } break; } } Loading @@ -495,8 +498,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) { 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