qlge: pull NULL check ahead of dereference
Dan Carpenter [Thu, 19 Aug 2010 08:52:44 +0000 (08:52 +0000)]
There was a dereference before NULL check issue introduced in 1e213303d
"qlge: Add tx multiqueue support."  I've pulled the NULL check of
"net_rsp" forward a couple lines to avoid that.

Also Ron Mercer says that the early exit should be above the index
write.  ql_write_cq_idx(rx_ring);

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

drivers/net/qlge/qlge_main.c

index 8d63f69..c9f9754 100644 (file)
@@ -2222,10 +2222,11 @@ static int ql_clean_outbound_rx_ring(struct rx_ring *rx_ring)
                ql_update_cq(rx_ring);
                prod = ql_read_sh_reg(rx_ring->prod_idx_sh_reg);
        }
+       if (!net_rsp)
+               return 0;
        ql_write_cq_idx(rx_ring);
        tx_ring = &qdev->tx_ring[net_rsp->txq_idx];
-       if (__netif_subqueue_stopped(qdev->ndev, tx_ring->wq_id) &&
-                                       net_rsp != NULL) {
+       if (__netif_subqueue_stopped(qdev->ndev, tx_ring->wq_id)) {
                if (atomic_read(&tx_ring->queue_stopped) &&
                    (atomic_read(&tx_ring->tx_count) > (tx_ring->wq_len / 4)))
                        /*