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

diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c
index b6ce68e..3e34c2e 100644
--- a/drivers/staging/et131x/et131x.c
+++ b/drivers/staging/et131x/et131x.c
@@ -2505,8 +2505,12 @@ static void nic_return_rfd(struct et131x_adapter 
*adapter, struct rfd *rfd)
         * need to clean up OOB data
         */
        if (buff_index < rx_local->fbr[ring_index]->num_entries) {
+               u32 free_buff_ring;
                u32 __iomem *offset;
                struct fbr_desc *next;
+               struct fbr_lookup *fbr;
+
+               fbr = rx_local->fbr[ring_index];
 
                spin_lock_irqsave(&adapter->fbr_lock, flags);
 
@@ -2515,22 +2519,20 @@ static void nic_return_rfd(struct et131x_adapter 
*adapter, struct rfd *rfd)
                else
                        offset = &rx_dma->fbr1_full_offset;
 
-               next = (struct fbr_desc *)
-                          (rx_local->fbr[ring_index]->ring_virtaddr) +
-                               INDEX10(rx_local->fbr[ring_index]->local_full);
+               next = (struct fbr_desc *)(fbr->ring_virtaddr) +
+                      INDEX10(fbr->local_full);
 
                /* Handle the Free Buffer Ring advancement here. Write
                 * the PA / Buffer Index for the returned buffer into
                 * the oldest (next to be freed)FBR entry
                 */
-               next->addr_hi = rx_local->fbr[ring_index]->bus_high[buff_index];
-               next->addr_lo = rx_local->fbr[ring_index]->bus_low[buff_index];
+               next->addr_hi = fbr->bus_high[buff_index];
+               next->addr_lo = fbr->bus_low[buff_index];
                next->word2 = buff_index;
 
-               writel(bump_free_buff_ring(
-                                 &rx_local->fbr[ring_index]->local_full,
-                                 rx_local->fbr[ring_index]->num_entries - 1),
-                      offset);
+               free_buff_ring = bump_free_buff_ring(&fbr->local_full,
+                                                    fbr->num_entries - 1);
+               writel(free_buff_ring, offset);
 
                spin_unlock_irqrestore(&adapter->fbr_lock, flags);
        } else {
-- 
1.8.3.1

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

Reply via email to