net/enic: fix crash on error interrupt
authorNelson Escobar <neescoba@cisco.com>
Thu, 14 Jul 2016 01:09:17 +0000 (18:09 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 15 Jul 2016 21:37:13 +0000 (23:37 +0200)
When enic's interrupt handler is called indicating an error, it scans
through the receive queues (RQs) on the adapter looking for errors.
But since the inclusion of rx scatter, some of the RQs may not be in
use, and you shouldn't check them for errors.

Fixes: 856d7ba7ed22 ("net/enic: support scattered Rx")

Signed-off-by: Nelson Escobar <neescoba@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
drivers/net/enic/enic_main.c

index 329559a..542f095 100644 (file)
@@ -123,6 +123,8 @@ static void enic_log_q_error(struct enic *enic)
        }
 
        for (i = 0; i < enic_vnic_rq_count(enic); i++) {
+               if (!enic->rq[i].in_use)
+                       continue;
                error_status = vnic_rq_error_status(&enic->rq[i]);
                if (error_status)
                        dev_err(enic, "RQ[%d] error_status %d\n", i,