Re: [PATCH 1/2] libsas: remove irq save in sas_ata_qc_issue()

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

 



On 30/05/2018 11:16, Sebastian Andrzej Siewior wrote:
On 2018-05-30 10:34:12 [+0100], John Garry wrote:
Sorry, but personally I don't see much value in this change. I think it's
better for safety to be consistent in how we lock & unlock the spinlock,
i.e. use irqsave variant (or similar).

The lock should do irqsave() and unlock irqrestore(). This
local_irqsave() + unlock() is not correct.


Aren't they the same, i.e. local_irq_save()+spin_lock() = spin_lock_irqsave()? Both give state of lock held, interrupts and preemption disabled.

And even if we have audited the callers to know the irqstate when this
function is called, since sas_ata_qc_issue() is a callback for
ata_port_operations.qc_issue, then it should be documented that interrupts
should always be disabled for this callback.

If the lock has been acquired without disabling the interrupts then it
was already wrong. This is just duct tape and does not fix the
problematic caller. Lockdep will yell.


John


Sebastian

.






[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