]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
i40e/i40evf: save aq writeback for future inspection
authorShannon Nelson <shannon.nelson@intel.com>
Thu, 27 Aug 2015 15:42:42 +0000 (11:42 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Fri, 18 Sep 2015 00:40:00 +0000 (17:40 -0700)
Add the ability to save the AdminQ write back descriptor if a
caller supplies a buffer for it to be saved into.

Change-ID: I3d1301d26360b39a2d66dc8569e851f54133a3af
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_adminq.c
drivers/net/ethernet/intel/i40e/i40e_adminq.h
drivers/net/ethernet/intel/i40evf/i40e_adminq.c
drivers/net/ethernet/intel/i40evf/i40e_adminq.h

index 3e0d20037675e84164ae9da793ddc080737e1d81..8a77f59f57aa8070e64ad4d691d4d9f428d25ab1 100644 (file)
@@ -889,6 +889,10 @@ i40e_status i40e_asq_send_command(struct i40e_hw *hw,
                   "AQTX: desc and buffer writeback:\n");
        i40e_debug_aq(hw, I40E_DEBUG_AQ_COMMAND, (void *)desc, buff, buff_size);
 
+       /* save writeback aq if requested */
+       if (details->wb_desc)
+               *details->wb_desc = *desc_on_ring;
+
        /* update the error if time out occurred */
        if ((!cmd_completed) &&
            (!details->async && !details->postpone)) {
index 28e519a50de4063edcae851c6e94fce88687203b..b67b34c3553320f513ca62148993d5274a121543 100644 (file)
@@ -69,6 +69,7 @@ struct i40e_asq_cmd_details {
        u16 flags_dis;
        bool async;
        bool postpone;
+       struct i40e_aq_desc *wb_desc;
 };
 
 #define I40E_ADMINQ_DETAILS(R, i)   \
index f08450b907745afefcdd6da766f7a32ae3aa57c2..15c8ac8927047b609753153779d98401ec66c494 100644 (file)
@@ -830,6 +830,10 @@ i40e_status i40evf_asq_send_command(struct i40e_hw *hw,
        i40evf_debug_aq(hw, I40E_DEBUG_AQ_COMMAND, (void *)desc, buff,
                        buff_size);
 
+       /* save writeback aq if requested */
+       if (details->wb_desc)
+               *details->wb_desc = *desc_on_ring;
+
        /* update the error if time out occurred */
        if ((!cmd_completed) &&
            (!details->async && !details->postpone)) {
index ef43d68f67b30632b504962f1fd627799f16dd7f..547b79b81ffe29ed257202d6d5c2f26e73238e51 100644 (file)
@@ -69,6 +69,7 @@ struct i40e_asq_cmd_details {
        u16 flags_dis;
        bool async;
        bool postpone;
+       struct i40e_aq_desc *wb_desc;
 };
 
 #define I40E_ADMINQ_DETAILS(R, i)   \