[Intel-wired-lan] [PATCH] ixgbevf: Correct parameter sent to LED function

Alexander Duyck alexander.duyck at gmail.com
Thu Jun 30 18:17:46 UTC 2016


On Fri, Jun 17, 2016 at 2:10 PM, Donald C Skidmore
<donald.c.skidmore at intel.com> wrote:
> The second parameter of these functions is the index to the led we
> are interested in affecting.  However we were mistakingly passing
> the offset in the register.  This patch corrects that and adds some
> bonds checking which would hopefully make bugs like this more noticeable
> in the future.
>
> Signed-off-by: Don Skidmore <donald.c.skidmore at intel.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_common.c  | 12 ++++++++++++
>  drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c |  4 ++--
>  2 files changed, 14 insertions(+), 2 deletions(-)

So the patch description says ixgbevf, but this looks like it is an
ixgbe patch.  You might want to get the title updated.

- Alex

> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> index f8defc7..ce881a7 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> @@ -763,6 +763,9 @@ s32 ixgbe_led_on_generic(struct ixgbe_hw *hw, u32 index)
>  {
>         u32 led_reg = IXGBE_READ_REG(hw, IXGBE_LEDCTL);
>
> +       if (index > 3)
> +               return IXGBE_ERR_PARAM;
> +
>         /* To turn on the LED, set mode to ON. */
>         led_reg &= ~IXGBE_LED_MODE_MASK(index);
>         led_reg |= IXGBE_LED_ON << IXGBE_LED_MODE_SHIFT(index);
> @@ -781,6 +784,9 @@ s32 ixgbe_led_off_generic(struct ixgbe_hw *hw, u32 index)
>  {
>         u32 led_reg = IXGBE_READ_REG(hw, IXGBE_LEDCTL);
>
> +       if (index > 3)
> +               return IXGBE_ERR_PARAM;
> +
>         /* To turn off the LED, set mode to OFF. */
>         led_reg &= ~IXGBE_LED_MODE_MASK(index);
>         led_reg |= IXGBE_LED_OFF << IXGBE_LED_MODE_SHIFT(index);
> @@ -2698,6 +2704,9 @@ s32 ixgbe_blink_led_start_generic(struct ixgbe_hw *hw, u32 index)
>         bool locked = false;
>         s32 ret_val;
>
> +       if (index > 3)
> +               return IXGBE_ERR_PARAM;
> +
>         /*
>          * Link must be up to auto-blink the LEDs;
>          * Force it if link is down.
> @@ -2741,6 +2750,9 @@ s32 ixgbe_blink_led_stop_generic(struct ixgbe_hw *hw, u32 index)
>         bool locked = false;
>         s32 ret_val;
>
> +       if (index > 3)
> +               return IXGBE_ERR_PARAM;
> +
>         ret_val = hw->mac.ops.prot_autoc_read(hw, &locked, &autoc_reg);
>         if (ret_val)
>                 return ret_val;
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> index 716e643..9547191 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> @@ -2206,11 +2206,11 @@ static int ixgbe_set_phys_id(struct net_device *netdev,
>                 return 2;
>
>         case ETHTOOL_ID_ON:
> -               hw->mac.ops.led_on(hw, IXGBE_LED_ON);
> +               hw->mac.ops.led_on(hw, hw->bus.func);
>                 break;
>
>         case ETHTOOL_ID_OFF:
> -               hw->mac.ops.led_off(hw, IXGBE_LED_ON);
> +               hw->mac.ops.led_off(hw, hw->bus.func);
>                 break;
>
>         case ETHTOOL_ID_INACTIVE:
> --
> 2.4.3
>
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan at lists.osuosl.org
> http://lists.osuosl.org/mailman/listinfo/intel-wired-lan


More information about the Intel-wired-lan mailing list