aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorManish Chopra <manish.chopra@qlogic.com>2014-01-28 11:55:27 -0500
committerDavid S. Miller <davem@davemloft.net>2014-01-28 14:59:30 -0500
commit462bed4870a813bb3ab33254de70757a92d0dc69 (patch)
tree87254d559c318d48ae446015a228983089b097ae /drivers/net
parentd922e1cb1ea17ac7f0a5c3c2be98d4bd80d055b8 (diff)
qlcnic: Correct off-by-one errors in bounds checks
o Bound checks should be >= instead of > for number of receive descriptors and number of receive rings. Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
index 30874cda8476..19e1a93bac67 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
@@ -1150,13 +1150,13 @@ qlcnic_process_lro(struct qlcnic_adapter *adapter,
1150 u16 lro_length, length, data_offset, t_vid, vid = 0xffff; 1150 u16 lro_length, length, data_offset, t_vid, vid = 0xffff;
1151 u32 seq_number; 1151 u32 seq_number;
1152 1152
1153 if (unlikely(ring > adapter->max_rds_rings)) 1153 if (unlikely(ring >= adapter->max_rds_rings))
1154 return NULL; 1154 return NULL;
1155 1155
1156 rds_ring = &recv_ctx->rds_rings[ring]; 1156 rds_ring = &recv_ctx->rds_rings[ring];
1157 1157
1158 index = qlcnic_get_lro_sts_refhandle(sts_data0); 1158 index = qlcnic_get_lro_sts_refhandle(sts_data0);
1159 if (unlikely(index > rds_ring->num_desc)) 1159 if (unlikely(index >= rds_ring->num_desc))
1160 return NULL; 1160 return NULL;
1161 1161
1162 buffer = &rds_ring->rx_buf_arr[index]; 1162 buffer = &rds_ring->rx_buf_arr[index];
@@ -1662,13 +1662,13 @@ qlcnic_83xx_process_lro(struct qlcnic_adapter *adapter,
1662 u16 vid = 0xffff; 1662 u16 vid = 0xffff;
1663 int err; 1663 int err;
1664 1664
1665 if (unlikely(ring > adapter->max_rds_rings)) 1665 if (unlikely(ring >= adapter->max_rds_rings))
1666 return NULL; 1666 return NULL;
1667 1667
1668 rds_ring = &recv_ctx->rds_rings[ring]; 1668 rds_ring = &recv_ctx->rds_rings[ring];
1669 1669
1670 index = qlcnic_83xx_hndl(sts_data[0]); 1670 index = qlcnic_83xx_hndl(sts_data[0]);
1671 if (unlikely(index > rds_ring->num_desc)) 1671 if (unlikely(index >= rds_ring->num_desc))
1672 return NULL; 1672 return NULL;
1673 1673
1674 buffer = &rds_ring->rx_buf_arr[index]; 1674 buffer = &rds_ring->rx_buf_arr[index];