diff options
author | Manish Chopra <manish.chopra@qlogic.com> | 2014-01-28 11:55:27 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-28 14:59:30 -0500 |
commit | 462bed4870a813bb3ab33254de70757a92d0dc69 (patch) | |
tree | 87254d559c318d48ae446015a228983089b097ae /drivers/net | |
parent | d922e1cb1ea17ac7f0a5c3c2be98d4bd80d055b8 (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.c | 8 |
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]; |