Re: Question about scsi_qla_host_t.fcports list protection (qla2xxx)

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

 



Andrew Vasquez wrote:
On Tue, 15 Aug 2006, Vladislav Bolkhovitin wrote:


Looking at the qla2xxx driver source code I noticed that scsi_qla_host_t.fcports is used without any protection. For instance, qla2x00_loop_reset() walks over this list. This function is called from qla2xxx_eh_bus_reset(), which could be called at any time. What does protect fcports from being changed, eg, by some async loop event during the walking and eventually oops'ing? Do I miss something? There are many such unprotected fcports list usages in the driver.


Nothing is ever removed from the fcports list during driver execution.
fcports are also only added from a single context (post init-time)
within the DPC thread.  We are safe here.

Sorry, I don't think so. For lockless iterating over a list concurrently with the addition to it you need to use *_rcu() list functions and do some RCU locking or, at least, disable preemption. Otherwise it is not safe.

Also, I don't think that keeping dead FC ports entries forever is a good idea. What does prevent you from deleting them, for instance, after fc_remote_port_delete() call?

Vlad
-
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