[Intel-wired-lan] [PATCH] ixgbe: add array bounds check

Alexander Duyck alexander.duyck at gmail.com
Tue Oct 24 16:19:58 UTC 2017


On Mon, Oct 23, 2017 at 8:21 AM, Paul Greenwalt
<paul.greenwalt at intel.com> wrote:
> Add bounds check for index fcoe_i of rx_ring array.
>
> Signed-off-by: Paul Greenwalt <paul.greenwalt at intel.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
> index a23c2b5..5772fe2 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c
> @@ -698,6 +698,8 @@ void ixgbe_configure_fcoe(struct ixgbe_adapter *adapter)
>                 }
>
>                 fcoe_i = fcoe->offset + (i % fcoe->indices);
> +               if (fcoe_i >= MAX_RX_QUEUES)
> +                       fcoe_i = MAX_RX_QUEUES - 1;

Instead of using MAX_RX_QUEUES why use fcoe->limit? If I am not
mistake the upper limit is either 8 or 32 for the FCoE redirection
table anyway so odds are you can't even use 64 queues if you wanted
to. From what I can tell the only advantage of the approach you are
using now is that you don't potentially zero out the value when it
gets hit with the mask below.

>                 fcoe_i &= IXGBE_FCRETA_ENTRY_MASK;
>                 fcoe_q = adapter->rx_ring[fcoe_i]->reg_idx;
>                 fcoe_q |= fcoe_q_h;
> --
> 2.7.4
>
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan at osuosl.org
> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan


More information about the Intel-wired-lan mailing list