diff options
author | Rabin Vincent <rabin.vincent@stericsson.com> | 2012-02-19 12:06:37 +0530 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@linaro.org> | 2012-03-19 09:03:02 +0100 |
commit | 025ddfad021effc8ea256d8aa09ddf3b1b8972e6 (patch) | |
tree | 36c7a185f6ff7f5cc3d85ea380d105f9bd5a6689 | |
parent | 64619c48c2f1cfb7974b0f764a2ac863195cc053 (diff) |
[ANDROID] logger: hold mutex while removing reader
The readers list is traversed under the log->mutex lock
(for example from fix_up_readers()), but the deletion of
elements from this list is not being done under this lock.
ST-Ericsson ID: 418270
ST-Ericsson Linux next: NA
ST-Ericsson FOSS-OUT ID: NA
Change-Id: Ib99f2e02b211c17fe54c035e37e648d28be516bb
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/49546
Reviewed-by: Bibek BASU <bibek.basu@stericsson.com>
Tested-by: Bibek BASU <bibek.basu@stericsson.com>
-rw-r--r-- | drivers/staging/android/logger.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/staging/android/logger.c b/drivers/staging/android/logger.c index ffc2d043dd8..a45c3b04fc5 100644 --- a/drivers/staging/android/logger.c +++ b/drivers/staging/android/logger.c @@ -432,7 +432,12 @@ static int logger_release(struct inode *ignored, struct file *file) { if (file->f_mode & FMODE_READ) { struct logger_reader *reader = file->private_data; + struct logger_log *log = reader->log; + + mutex_lock(&log->mutex); list_del(&reader->list); + mutex_unlock(&log->mutex); + kfree(reader); } |