Signed-off-by: ZHAO Gang <gamer...@gmail.com>
---
 drivers/staging/et131x/et131x.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c
index 3e34c2e..8d75a3f 100644
--- a/drivers/staging/et131x/et131x.c
+++ b/drivers/staging/et131x/et131x.c
@@ -2577,6 +2577,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter 
*adapter)
        u32 word0;
        u32 word1;
        struct sk_buff *skb;
+       struct fbr_lookup *fbr;
 
        /* RX Status block is written by the DMA engine prior to every
         * interrupt. It contains the next to be used entry in the Packet
@@ -2598,6 +2599,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter 
*adapter)
         */
        len = psr->word1 & 0xFFFF;
        ring_index = (psr->word1 >> 26) & 0x03;
+       fbr = rx_local->fbr[ring_index];
        buff_index = (psr->word1 >> 16) & 0x3FF;
        word0 = psr->word0;
 
@@ -2613,8 +2615,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter 
*adapter)
 
        writel(rx_local->local_psr_full, &adapter->regs->rxdma.psr_full_offset);
 
-       if (ring_index > 1 ||
-                   buff_index > rx_local->fbr[ring_index]->num_entries - 1) {
+       if (ring_index > 1 || buff_index > fbr->num_entries - 1) {
                /* Illegal buffer or ring index cannot be used by S/W*/
                dev_err(&adapter->pdev->dev,
                        "NICRxPkts PSR Entry %d indicates length of %d and/or 
bad bi(%d)\n",
@@ -2667,7 +2668,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter 
*adapter)
                   && !(adapter->packet_filter & ET131X_PACKET_TYPE_PROMISCUOUS)
                   && !(adapter->packet_filter &
                                        ET131X_PACKET_TYPE_ALL_MULTICAST)) {
-                       buf = rx_local->fbr[ring_index]->virt[buff_index];
+                       buf = fbr->virt[buff_index];
 
                        /* Loop through our list to see if the destination
                         * address of this packet matches one in our list.
@@ -2720,9 +2721,7 @@ static struct rfd *nic_rx_pkts(struct et131x_adapter 
*adapter)
 
        adapter->net_stats.rx_bytes += rfd->len;
 
-       memcpy(skb_put(skb, rfd->len),
-              rx_local->fbr[ring_index]->virt[buff_index],
-              rfd->len);
+       memcpy(skb_put(skb, rfd->len), fbr->virt[buff_index], rfd->len);
 
        skb->protocol = eth_type_trans(skb, adapter->netdev);
        skb->ip_summed = CHECKSUM_NONE;
-- 
1.8.3.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to