> + /* > + * Wait for any in process SPEC_I_PT=1 or REGISTER_AND_MOVE > + * PR operation to complete. > + */ > + while (atomic_read(&deve->pr_ref_count) != 0) > + cpu_relax(); A busy loop under an irq disabling spinlock is fairly nasty. Can we just remove the pointer to the entry from the device list array, then unlock and then have the busy loop? > enum transport_lunflags_table { > TRANSPORT_LUNFLAGS_NO_ACCESS = 0x00, > - TRANSPORT_LUNFLAGS_INITIATOR_ACCESS = 0x01, > - TRANSPORT_LUNFLAGS_READ_ONLY = 0x02, > - TRANSPORT_LUNFLAGS_READ_WRITE = 0x04, > + TRANSPORT_LUNFLAGS_READ_ONLY = 0x01, > + TRANSPORT_LUNFLAGS_READ_WRITE = 0x02, Not something for this patch, but having the read only and read/write flags is silly. Having one of them should be enough, either a rdonly or a writeable one would do it. -- 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