Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
[deliverable/linux.git] / drivers / net / ethernet / intel / fm10k / fm10k_main.c
index a9ccc1eb3ea4e31c188787cf2e2d2c0e3a6fe749..e9767b6366a83b2860c21c57a529c833298feac3 100644 (file)
@@ -28,7 +28,7 @@
 
 #include "fm10k.h"
 
-#define DRV_VERSION    "0.19.3-k"
+#define DRV_VERSION    "0.21.2-k"
 #define DRV_SUMMARY    "Intel(R) Ethernet Switch Host Interface Driver"
 const char fm10k_driver_version[] = DRV_VERSION;
 char fm10k_driver_name[] = "fm10k";
@@ -1128,11 +1128,13 @@ static u64 fm10k_get_tx_completed(struct fm10k_ring *ring)
        return ring->stats.packets;
 }
 
-static u64 fm10k_get_tx_pending(struct fm10k_ring *ring)
+u64 fm10k_get_tx_pending(struct fm10k_ring *ring)
 {
-       /* use SW head and tail until we have real hardware */
-       u32 head = ring->next_to_clean;
-       u32 tail = ring->next_to_use;
+       struct fm10k_intfc *interface = ring->q_vector->interface;
+       struct fm10k_hw *hw = &interface->hw;
+
+       u32 head = fm10k_read_reg(hw, FM10K_TDH(ring->reg_idx));
+       u32 tail = fm10k_read_reg(hw, FM10K_TDT(ring->reg_idx));
 
        return ((head <= tail) ? tail : tail + ring->count) - head;
 }
@@ -1856,7 +1858,7 @@ static int fm10k_init_msix_capability(struct fm10k_intfc *interface)
        if (v_budget < 0) {
                kfree(interface->msix_entries);
                interface->msix_entries = NULL;
-               return -ENOMEM;
+               return v_budget;
        }
 
        /* record the number of queues available for q_vectors */
This page took 0.038724 seconds and 5 git commands to generate.