summaryrefslogtreecommitdiff
path: root/drivers/staging/tidspbridge
diff options
context:
space:
mode:
authorJulia Lawall <Julia.Lawall@lip6.fr>2014-06-04 13:07:54 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-19 02:23:05 +0400
commitcc0be81f00472d782804293766ddd9d1c2b4ebd1 (patch)
treea7db573768301109dc3f49123f34416c21b432ea /drivers/staging/tidspbridge
parentcee49b3cfb4be8da81b346c9ed405cc5bae056c6 (diff)
downloadlinux-cc0be81f00472d782804293766ddd9d1c2b4ebd1.tar.xz
staging: tidspbridge: use safer test on the result of find_first_zero_bit
Find_first_zero_bit considers BITS_PER_LONG bits at a time, and thus may return a larger number than the maximum position argument if that position is not a multiple of BITS_PER_LONG. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @@ expression e1,e2,e3; statement S1,S2; @@ e1 = find_first_zero_bit(e2,e3) ... if (e1 - == + >= e3) S1 else S2 // </smpl> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/tidspbridge')
-rw-r--r--drivers/staging/tidspbridge/rmgr/node.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/tidspbridge/rmgr/node.c b/drivers/staging/tidspbridge/rmgr/node.c
index 9d3044a384ee..305f3a60db71 100644
--- a/drivers/staging/tidspbridge/rmgr/node.c
+++ b/drivers/staging/tidspbridge/rmgr/node.c
@@ -935,7 +935,7 @@ int node_connect(struct node_object *node1, u32 stream1,
node2_type == NODE_DAISSOCKET)) {
/* Find available pipe */
pipe_id = find_first_zero_bit(hnode_mgr->pipe_map, MAXPIPES);
- if (pipe_id == MAXPIPES) {
+ if (pipe_id >= MAXPIPES) {
status = -ECONNREFUSED;
goto out_unlock;
}
@@ -1008,7 +1008,7 @@ int node_connect(struct node_object *node1, u32 stream1,
status = -EINVAL;
goto out_unlock;
}
- if (chnl_id == CHNL_MAXCHANNELS) {
+ if (chnl_id >= CHNL_MAXCHANNELS) {
status = -ECONNREFUSED;
goto out_unlock;
}