commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=534e97b56128667ab7dbedb648de78320775d5b8
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk

Signed-off-by: Steven Miao <[email protected]>
---
 drivers/staging/icc/core/protocol.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/icc/core/protocol.c b/drivers/staging/icc/core/protocol.c
index 6b99dec..b1e134d 100644
--- a/drivers/staging/icc/core/protocol.c
+++ b/drivers/staging/icc/core/protocol.c
@@ -806,12 +806,13 @@ icc_release(struct inode *inode, struct file *file)
 	struct sm_session_table *table = icc_info->sessions_table;
 	int used;
 	int i;
+	pid_t pid = current->pid;
 	table->refcnt--;
-	if (table->refcnt == 0) {
-		used = MAX_ENDPOINTS - table->nfree;
-		for (i = 0; i < used; i++)
+	for (i = 0; i < MAX_ENDPOINTS; i++) {
+		if (table->sessions[i].pid == pid)
 			sm_free_session(i, table);
 	}
+
 	WARN_ON(table->nfree != MAX_ENDPOINTS);
 	return ret;
 }
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to