Erez Zilber <[EMAIL PROTECTED]> writes:

> Arne Redlich wrote:
>> The iteration through the list of "iser_device"s during device
>> lookup/creation is broken - it might result in an infinite loop if more
>> than 1 HCA is used with iSER. Use list_for_each_entry() instead of the
>> custom, flawed list iteration code.
>> 
>> Signed-off-by: Arne Redlich <[EMAIL PROTECTED]>
>> ---
>>  drivers/infiniband/ulp/iser/iser_verbs.c |   36 
>> ++++++++++++-----------------
>>  1 files changed, 15 insertions(+), 21 deletions(-)
>> 
>> diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c 
>> b/drivers/infiniband/ulp/iser/iser_verbs.c
>> index 714b8db..1c0f968 100644
>> --- a/drivers/infiniband/ulp/iser/iser_verbs.c
>> +++ b/drivers/infiniband/ulp/iser/iser_verbs.c
>> @@ -237,33 +237,27 @@ static int iser_free_ib_conn_res(struct iser_conn 
>> *ib_conn)
>>  static
>>  struct iser_device *iser_device_find_by_ib_device(struct rdma_cm_id *cma_id)
>>  {
>> -    struct list_head    *p_list;
>> -    struct iser_device  *device = NULL;
>> +    struct iser_device *device;
>>  
>>      mutex_lock(&ig.device_list_mutex);
>>  
>> -    p_list = ig.device_list.next;
>> -    while (p_list != &ig.device_list) {
>> -            device = list_entry(p_list, struct iser_device, ig_list);
>> -            /* find if there's a match using the node GUID */
>> +    list_for_each_entry(device, &ig.device_list, ig_list)
>
> I've just added the original comments that are missing in your patch.

Ah well, I probably should've mentioned in the patch description that I
intentionally removed those comments as I think they're really
redundant, stating the obvious. But of course I won't insist. :)

Thanks,
Arne
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to