On Tue, May 01 2018 at 10:42 -0600, Doug Anderson wrote:
Hi,

On Tue, May 1, 2018 at 9:10 AM, Lina Iyer <il...@codeaurora.org> 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

True. Will fix it in the next spin correctly.

--Lina



Reply via email to