Hi,True. Will fix it in the next spin correctly.
On Tue, May 1, 2018 at 9:10 AM, Lina Iyer <ilina@xxxxxxxxxxxxxx> wrote:
Yes, this is incorrect in its current form. This is what it should be -
static int find_match(const struct tcs_group *tcs, const struct tcs_cmd
*cmd,
int len)
{
int i, j;
/* Check for already cached commands */
for_each_set_bit(i, tcs->slots, MAX_TCS_SLOTS) {
if (tcs->cmd_cache[i] != cmd[0].addr)
continue;
for (j = 0; j < len; j++) {
WARN(tcs->cmd_cache[i + j] != cmd[j].addr,
"Message does not match previous sequence.\n");
return -EINVAL;
}
If len > 0, won't the above always return -EINVAL?
if (j == len - 1)
return i;
Care to explain how you could get here and the test "if (j == len -
1)" could be false? ;-P