On Wed, 2016-12-21 at 13:57 -0800, Himanshu Madhani wrote: > @@ -676,6 +688,18 @@ static inline void (*qla27xx_read_vector(uint width))(void __iomem*, void *, ulo > count++; > } > } > + } else if (QLA_TGT_MODE_ENABLED() && > + ent->t274.queue_type == T274_QUEUE_TYPE_ATIO_SHAD) { > + struct qla_hw_data *ha = vha->hw; > + struct atio *atr = ha->tgt.atio_ring_ptr; > + > + if (atr || !buf) { > + qla27xx_insert16(0, buf, len); > + qla27xx_insert16(1, buf, len); > + qla27xx_insert32(ha->tgt.atio_q_in ? > + *ha->tgt.atio_q_in : 0, buf, len); > + count++; > + } > } else { > ql_dbg(ql_dbg_misc, vha, 0xd02f, > "%s: unknown queue %x\n", __func__, ent->t274.queue_type); Hello Himanshu, This patch introduces a new sparse warning for *ha->tgt.atio_q_in: drivers/scsi/qla2xxx/qla_tmpl.c:700:37: warning: dereference of noderef expression Sparse reports this because the atio_q_in pointer is declared as uint32_t __iomem*. Does this perhaps mean that a readl() call is missing? Bart.��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f