commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=8aafd1f9b6076b82378a557225bf4fcacfd8c245
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/2011R1

Signed-off-by: Steven Miao <[email protected]>
Signed-off-by: Sonic Zhang <[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