Re: [PATCH] qla4xx: a small loop fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/01/2011 07:10 PM, Mike Christie wrote:
> On 11/01/2011 11:46 AM, Tomas Henzl wrote:
>> From: Tomas Henzl <thenzl@xxxxxxxxxx>
>>
>> When the qla4xxx_get_fwddb_entry returns QLA_ERROR
>> the nex_idx is not updated, 
>>       for (idx = 0; idx < max_ddbs; idx = next_idx) {
>>                 ret = qla4xxx_get_fwddb_entry(ha, idx, NULL, 0, NULL,
>>                                               &next_idx, &state, &conn_err,
>>                                                 NULL, NULL);
>>                 if (ret == QLA_ERROR)
>>                         continue;
>>  
>> This means there is a risk that the 'idx < max_ddbs' condition will never
>> met and the loop will loop forever.
>> Fix this by explicitly increasing the next_idx in the error condition.
>>
>> Maybe a break instead of continue is more appropriate, leaving the decision
>> on the qlogic maintainer.
>>
>> Signed-off-by: Tomas Henzl <thenzl@xxxxxxxxxx>
>>
>> diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c
>> index 3075fba..17acb17 100644
>> --- a/drivers/scsi/qla4xxx/ql4_init.c
>> +++ b/drivers/scsi/qla4xxx/ql4_init.c
>> @@ -787,8 +787,10 @@ static void qla4xxx_free_ddb_index(struct scsi_qla_host *ha)
>>  		ret = qla4xxx_get_fwddb_entry(ha, idx, NULL, 0, NULL,
>>  					      &next_idx, &state, &conn_err,
>>  						NULL, NULL);
>> -		if (ret == QLA_ERROR)
>> +		if (ret == QLA_ERROR) {
>> +			next_idx++;
>>  			continue;
>> +		}
>>  		if (state == DDB_DS_NO_CONNECTION_ACTIVE ||
>>  		    state == DDB_DS_SESSION_FAILED) {
>>  			DEBUG2(ql4_printk(KERN_INFO, ha,
> Patch looks correct.
>
> James, this is a patch for something that is not yet upstream. I will
> just merge this patch with the patch I was going to send upstream, so do
> not worry about it.
It's created on top of scsi-misc (99a700bcc75429ba84a672d04f0b650dcc5b3042 [SCSI] mv_sas: OCZ RevoDrive3 & zDrive R4 support)
it looks like being created on top of the not yet posted patch, but it isn't so :)
To the method how this gets accepted i don't care.

> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux