ipmi: Don't leave holes in the I2C address list in the ssif driver

The algorithm to populate the I2C address list would leave holes
in the list on duplicates.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
This commit is contained in:
Corey Minyard 2018-08-30 13:14:59 -05:00
parent 060e8fb53f
commit c75c5075e5
1 changed files with 5 additions and 6 deletions

View File

@ -1739,7 +1739,7 @@ static void free_ssif_clients(void)
static unsigned short *ssif_address_list(void)
{
struct ssif_addr_info *info;
unsigned int count = 0, i;
unsigned int count = 0, i = 0;
unsigned short *address_list;
list_for_each_entry(info, &ssif_infos, link)
@ -1750,18 +1750,17 @@ static unsigned short *ssif_address_list(void)
if (!address_list)
return NULL;
i = 0;
list_for_each_entry(info, &ssif_infos, link) {
unsigned short addr = info->binfo.addr;
int j;
for (j = 0; j < i; j++) {
if (address_list[j] == addr)
goto skip_addr;
/* Found a dup. */
break;
}
address_list[i] = addr;
skip_addr:
i++;
if (j == i) /* Didn't find it in the list. */
address_list[i++] = addr;
}
address_list[i] = I2C_CLIENT_END;