[IA64] pci_br, fix infinite loop in find_free_ate()
When * there is almost out of ates * one asks for more than one ate * there are some available at the end of ate array then the inner for loop will end without incrementing 'index'. This means the outer loop will start at the same point finding it's available and runs the inner loop again from the same index. This repeats forever. Hence make sure we check we were at the end of ate array and return an error in such case. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Found-by: Jeff Mahoney <jeffm@novell.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
0cced40e7c
commit
9b6b93998a
|
@ -54,6 +54,8 @@ static int find_free_ate(struct ate_resource *ate_resource, int start,
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (i >= ate_resource->num_ate)
|
||||
return -1;
|
||||
} else
|
||||
index++; /* Try next ate */
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue