Re: [PATCH 2/2] qla2xxx: remove irq save in qla2x00_poll()

2018-06-18 Thread Martin K. Petersen


Himanshu,

>> In commit d2ba5675d899 ("[SCSI] qla2xxx: Disable local-interrupts while
>> polling for RISC status.") added a local_irq_disable() before invoking
>> the ->intr_handler callback. The function, which was used in this
>> callback, did not disable interrupts while acquiring the spin_lock so a
>> deadlock was possible and this change was one possible solution.

Applied to 4.19/scsi-queue. Thanks!

-- 
Martin K. Petersen  Oracle Linux Engineering


Re: [PATCH 2/2] qla2xxx: remove irq save in qla2x00_poll()

2018-06-18 Thread Madhani, Himanshu


> On May 4, 2018, at 7:50 AM, Sebastian Andrzej Siewior  
> wrote:
> 
> In commit d2ba5675d899 ("[SCSI] qla2xxx: Disable local-interrupts while
> polling for RISC status.") added a local_irq_disable() before invoking
> the ->intr_handler callback. The function, which was used in this
> callback, did not disable interrupts while acquiring the spin_lock so a
> deadlock was possible and this change was one possible solution.
> 
> The function in question was qla2300_intr_handler() and is using
> spin_lock_irqsave() since commit 43fac4d97a1a ("[SCSI] qla2xxx: Resolve
> a performance issue in interrupt").
> I checked all other ->intr_handler callbacks and all of them use the
> irqsave variant so it is safe to remove the local_irq_save() block now.
> 
> Signed-off-by: Sebastian Andrzej Siewior 
> ---
> drivers/scsi/qla2xxx/qla_inline.h | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/scsi/qla2xxx/qla_inline.h 
> b/drivers/scsi/qla2xxx/qla_inline.h
> index 37ae0f6d8ae5..bcbdf28bd7b9 100644
> --- a/drivers/scsi/qla2xxx/qla_inline.h
> +++ b/drivers/scsi/qla2xxx/qla_inline.h
> @@ -58,14 +58,12 @@ qla2x00_debounce_register(volatile uint16_t __iomem *addr)
> static inline void
> qla2x00_poll(struct rsp_que *rsp)
> {
> - unsigned long flags;
>   struct qla_hw_data *ha = rsp->hw;
> - local_irq_save(flags);
> +
>   if (IS_P3P_TYPE(ha))
>   qla82xx_poll(0, rsp);
>   else
>   ha->isp_ops->intr_handler(0, rsp);
> - local_irq_restore(flags);
> }
> 
> static inline uint8_t *
> -- 
> 2.17.0
> 

Looks good

Acked-by: Himanshu Madhani 

Thanks,
- Himanshu



Re: [PATCH 2/2] qla2xxx: remove irq save in qla2x00_poll()

2018-06-15 Thread Sebastian Andrzej Siewior
On 2018-06-11 16:56:35 [+0200], Johannes Thumshirn wrote:
> Looks good,
> Reviewed-by: Johannes Thumshirn 

Martin, what about this one?

Sebastian


Re: [PATCH 2/2] qla2xxx: remove irq save in qla2x00_poll()

2018-06-11 Thread Johannes Thumshirn
Looks good,
Reviewed-by: Johannes Thumshirn 
-- 
Johannes Thumshirn  Storage
jthumsh...@suse.de+49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850