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�����r��y����b�X��ǧv�^�){.n�+����{���"�{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�m��������zZ+�����ݢj"��!�i