OSDN Git Service

ice: Change type for queue counts
authorPawel Kaminski <pawel.kaminski@intel.com>
Thu, 25 Jul 2019 08:55:40 +0000 (01:55 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 20 Aug 2019 21:42:35 +0000 (14:42 -0700)
These queue variables are being assigned values that are type u16.
Change the local variables to match these types. Since these
represent queue counts, they should never be negative.

Signed-off-by: Pawel Kaminski <pawel.kaminski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c

index 8a5bf97..61cf1c5 100644 (file)
@@ -2337,11 +2337,11 @@ static int ice_vc_request_qs_msg(struct ice_vf *vf, u8 *msg)
        enum virtchnl_status_code v_ret = VIRTCHNL_STATUS_SUCCESS;
        struct virtchnl_vf_res_request *vfres =
                (struct virtchnl_vf_res_request *)msg;
-       int req_queues = vfres->num_queue_pairs;
+       u16 req_queues = vfres->num_queue_pairs;
        struct ice_pf *pf = vf->pf;
-       int max_allowed_vf_queues;
-       int tx_rx_queue_left;
-       int cur_queues;
+       u16 max_allowed_vf_queues;
+       u16 tx_rx_queue_left;
+       u16 cur_queues;
 
        if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) {
                v_ret = VIRTCHNL_STATUS_ERR_PARAM;
@@ -2349,29 +2349,30 @@ static int ice_vc_request_qs_msg(struct ice_vf *vf, u8 *msg)
        }
 
        cur_queues = vf->num_vf_qs;
-       tx_rx_queue_left = min_t(int, pf->q_left_tx, pf->q_left_rx);
+       tx_rx_queue_left = min_t(u16, pf->q_left_tx, pf->q_left_rx);
        max_allowed_vf_queues = tx_rx_queue_left + cur_queues;
-       if (req_queues <= 0) {
+       if (!req_queues) {
                dev_err(&pf->pdev->dev,
-                       "VF %d tried to request %d queues. Ignoring.\n",
-                       vf->vf_id, req_queues);
+                       "VF %d tried to request 0 queues. Ignoring.\n",
+                       vf->vf_id);
        } else if (req_queues > ICE_MAX_BASE_QS_PER_VF) {
                dev_err(&pf->pdev->dev,
                        "VF %d tried to request more than %d queues.\n",
                        vf->vf_id, ICE_MAX_BASE_QS_PER_VF);
                vfres->num_queue_pairs = ICE_MAX_BASE_QS_PER_VF;
-       } else if (req_queues - cur_queues > tx_rx_queue_left) {
+       } else if (req_queues > cur_queues &&
+                  req_queues - cur_queues > tx_rx_queue_left) {
                dev_warn(&pf->pdev->dev,
-                        "VF %d requested %d more queues, but only %d left.\n",
+                        "VF %d requested %u more queues, but only %u left.\n",
                         vf->vf_id, req_queues - cur_queues, tx_rx_queue_left);
-               vfres->num_queue_pairs = min_t(int, max_allowed_vf_queues,
+               vfres->num_queue_pairs = min_t(u16, max_allowed_vf_queues,
                                               ICE_MAX_BASE_QS_PER_VF);
        } else {
                /* request is successful, then reset VF */
                vf->num_req_qs = req_queues;
                ice_vc_dis_vf(vf);
                dev_info(&pf->pdev->dev,
-                        "VF %d granted request of %d queues.\n",
+                        "VF %d granted request of %u queues.\n",
                         vf->vf_id, req_queues);
                return 0;
        }